Lines Matching refs:bcm_clk

43 static bool clk_requires_trigger(struct kona_clk *bcm_clk)  in clk_requires_trigger()  argument
45 struct peri_clk_data *peri = bcm_clk->u.peri; in clk_requires_trigger()
49 if (bcm_clk->type != bcm_clk_peri) in clk_requires_trigger()
69 static bool peri_clk_data_offsets_valid(struct kona_clk *bcm_clk) in peri_clk_data_offsets_valid() argument
82 BUG_ON(bcm_clk->type != bcm_clk_peri); in peri_clk_data_offsets_valid()
83 peri = bcm_clk->u.peri; in peri_clk_data_offsets_valid()
84 name = bcm_clk->init_data.name; in peri_clk_data_offsets_valid()
85 range = bcm_clk->ccu->range; in peri_clk_data_offsets_valid()
360 static bool kona_dividers_valid(struct kona_clk *bcm_clk) in kona_dividers_valid() argument
362 struct peri_clk_data *peri = bcm_clk->u.peri; in kona_dividers_valid()
367 BUG_ON(bcm_clk->type != bcm_clk_peri); in kona_dividers_valid()
392 peri_clk_data_valid(struct kona_clk *bcm_clk) in peri_clk_data_valid() argument
404 BUG_ON(bcm_clk->type != bcm_clk_peri); in peri_clk_data_valid()
411 if (!peri_clk_data_offsets_valid(bcm_clk)) in peri_clk_data_valid()
414 peri = bcm_clk->u.peri; in peri_clk_data_valid()
415 name = bcm_clk->init_data.name; in peri_clk_data_valid()
466 if (!clk_requires_trigger(bcm_clk)) { in peri_clk_data_valid()
475 } else if (clk_requires_trigger(bcm_clk)) { in peri_clk_data_valid()
481 return kona_dividers_valid(bcm_clk); in peri_clk_data_valid()
484 static bool kona_clk_valid(struct kona_clk *bcm_clk) in kona_clk_valid() argument
486 switch (bcm_clk->type) { in kona_clk_valid()
488 if (!peri_clk_data_valid(bcm_clk)) in kona_clk_valid()
493 (int)bcm_clk->type); in kona_clk_valid()
673 static void bcm_clk_teardown(struct kona_clk *bcm_clk) in bcm_clk_teardown() argument
675 switch (bcm_clk->type) { in bcm_clk_teardown()
677 peri_clk_teardown(bcm_clk->u.data, &bcm_clk->init_data); in bcm_clk_teardown()
682 bcm_clk->u.data = NULL; in bcm_clk_teardown()
683 bcm_clk->type = bcm_clk_none; in bcm_clk_teardown()
688 struct kona_clk *bcm_clk; in kona_clk_teardown() local
695 bcm_clk = to_kona_clk(hw); in kona_clk_teardown()
696 bcm_clk_teardown(bcm_clk); in kona_clk_teardown()
699 static int kona_clk_setup(struct kona_clk *bcm_clk) in kona_clk_setup() argument
702 struct clk_init_data *init_data = &bcm_clk->init_data; in kona_clk_setup()
704 switch (bcm_clk->type) { in kona_clk_setup()
706 ret = peri_clk_setup(bcm_clk->u.data, init_data); in kona_clk_setup()
712 (int)bcm_clk->type, init_data->name); in kona_clk_setup()
717 if (!kona_clk_valid(bcm_clk)) { in kona_clk_setup()
724 bcm_clk->hw.init = init_data; in kona_clk_setup()
725 ret = clk_hw_register(NULL, &bcm_clk->hw); in kona_clk_setup()
734 bcm_clk_teardown(bcm_clk); in kona_clk_setup()