Lines Matching refs:bcm_clk
53 static bool clk_requires_trigger(struct kona_clk *bcm_clk) in clk_requires_trigger() argument
55 struct peri_clk_data *peri = bcm_clk->u.peri; in clk_requires_trigger()
59 if (bcm_clk->type != bcm_clk_peri) in clk_requires_trigger()
79 static bool peri_clk_data_offsets_valid(struct kona_clk *bcm_clk) in peri_clk_data_offsets_valid() argument
92 BUG_ON(bcm_clk->type != bcm_clk_peri); in peri_clk_data_offsets_valid()
93 peri = bcm_clk->u.peri; in peri_clk_data_offsets_valid()
94 name = bcm_clk->init_data.name; in peri_clk_data_offsets_valid()
95 range = bcm_clk->ccu->range; in peri_clk_data_offsets_valid()
370 static bool kona_dividers_valid(struct kona_clk *bcm_clk) in kona_dividers_valid() argument
372 struct peri_clk_data *peri = bcm_clk->u.peri; in kona_dividers_valid()
377 BUG_ON(bcm_clk->type != bcm_clk_peri); in kona_dividers_valid()
402 peri_clk_data_valid(struct kona_clk *bcm_clk) in peri_clk_data_valid() argument
414 BUG_ON(bcm_clk->type != bcm_clk_peri); in peri_clk_data_valid()
421 if (!peri_clk_data_offsets_valid(bcm_clk)) in peri_clk_data_valid()
424 peri = bcm_clk->u.peri; in peri_clk_data_valid()
425 name = bcm_clk->init_data.name; in peri_clk_data_valid()
476 if (!clk_requires_trigger(bcm_clk)) { in peri_clk_data_valid()
485 } else if (clk_requires_trigger(bcm_clk)) { in peri_clk_data_valid()
491 return kona_dividers_valid(bcm_clk); in peri_clk_data_valid()
494 static bool kona_clk_valid(struct kona_clk *bcm_clk) in kona_clk_valid() argument
496 switch (bcm_clk->type) { in kona_clk_valid()
498 if (!peri_clk_data_valid(bcm_clk)) in kona_clk_valid()
503 (int)bcm_clk->type); in kona_clk_valid()
687 static void bcm_clk_teardown(struct kona_clk *bcm_clk) in bcm_clk_teardown() argument
689 switch (bcm_clk->type) { in bcm_clk_teardown()
691 peri_clk_teardown(bcm_clk->u.data, &bcm_clk->init_data); in bcm_clk_teardown()
696 bcm_clk->u.data = NULL; in bcm_clk_teardown()
697 bcm_clk->type = bcm_clk_none; in bcm_clk_teardown()
703 struct kona_clk *bcm_clk; in kona_clk_teardown() local
715 bcm_clk = to_kona_clk(hw); in kona_clk_teardown()
716 bcm_clk_teardown(bcm_clk); in kona_clk_teardown()
719 struct clk *kona_clk_setup(struct kona_clk *bcm_clk) in kona_clk_setup() argument
721 struct clk_init_data *init_data = &bcm_clk->init_data; in kona_clk_setup()
724 switch (bcm_clk->type) { in kona_clk_setup()
726 if (peri_clk_setup(bcm_clk->u.data, init_data)) in kona_clk_setup()
731 (int)bcm_clk->type, init_data->name); in kona_clk_setup()
736 if (!kona_clk_valid(bcm_clk)) { in kona_clk_setup()
742 bcm_clk->hw.init = init_data; in kona_clk_setup()
743 clk = clk_register(NULL, &bcm_clk->hw); in kona_clk_setup()
753 bcm_clk_teardown(bcm_clk); in kona_clk_setup()