Lines Matching defs:bcm_clk
51 static bool clk_requires_trigger(struct kona_clk *bcm_clk)
53 struct peri_clk_data *peri = bcm_clk->u.peri;
57 if (bcm_clk->type != bcm_clk_peri)
77 static bool peri_clk_data_offsets_valid(struct kona_clk *bcm_clk)
90 BUG_ON(bcm_clk->type != bcm_clk_peri);
91 peri = bcm_clk->u.peri;
92 name = bcm_clk->init_data.name;
93 range = bcm_clk->ccu->range;
368 static bool kona_dividers_valid(struct kona_clk *bcm_clk)
370 struct peri_clk_data *peri = bcm_clk->u.peri;
375 BUG_ON(bcm_clk->type != bcm_clk_peri);
400 peri_clk_data_valid(struct kona_clk *bcm_clk)
412 BUG_ON(bcm_clk->type != bcm_clk_peri);
419 if (!peri_clk_data_offsets_valid(bcm_clk))
422 peri = bcm_clk->u.peri;
423 name = bcm_clk->init_data.name;
474 if (!clk_requires_trigger(bcm_clk)) {
483 } else if (clk_requires_trigger(bcm_clk)) {
489 return kona_dividers_valid(bcm_clk);
492 static bool kona_clk_valid(struct kona_clk *bcm_clk)
494 switch (bcm_clk->type) {
496 if (!peri_clk_data_valid(bcm_clk))
501 (int)bcm_clk->type);
681 static void bcm_clk_teardown(struct kona_clk *bcm_clk)
683 switch (bcm_clk->type) {
685 peri_clk_teardown(bcm_clk->u.data, &bcm_clk->init_data);
690 bcm_clk->u.data = NULL;
691 bcm_clk->type = bcm_clk_none;
696 struct kona_clk *bcm_clk;
703 bcm_clk = to_kona_clk(hw);
704 bcm_clk_teardown(bcm_clk);
707 static int kona_clk_setup(struct kona_clk *bcm_clk)
710 struct clk_init_data *init_data = &bcm_clk->init_data;
712 switch (bcm_clk->type) {
714 ret = peri_clk_setup(bcm_clk->u.data, init_data);
720 (int)bcm_clk->type, init_data->name);
725 if (!kona_clk_valid(bcm_clk)) {
732 bcm_clk->hw.init = init_data;
733 ret = clk_hw_register(NULL, &bcm_clk->hw);
742 bcm_clk_teardown(bcm_clk);