Lines Matching refs:ccu

26 static bool ccu_data_offsets_valid(struct ccu_data *ccu)
28 struct ccu_policy *ccu_policy = &ccu->policy;
31 limit = ccu->range - sizeof(u32);
37 ccu->name, ccu_policy->enable.offset, limit);
43 ccu->name, ccu_policy->control.offset, limit);
93 range = bcm_clk->ccu->range;
416 * where we need something from the ccu, so we do these
747 static void ccu_clks_teardown(struct ccu_data *ccu)
751 for (i = 0; i < ccu->clk_num; i++)
752 kona_clk_teardown(&ccu->kona_clks[i].hw);
755 static void kona_ccu_teardown(struct ccu_data *ccu)
757 if (!ccu->base)
760 of_clk_del_provider(ccu->node); /* safe if never added */
761 ccu_clks_teardown(ccu);
762 of_node_put(ccu->node);
763 ccu->node = NULL;
764 iounmap(ccu->base);
765 ccu->base = NULL;
768 static bool ccu_data_valid(struct ccu_data *ccu)
772 if (!ccu_data_offsets_valid(ccu))
775 ccu_policy = &ccu->policy;
777 if (!ccu_policy_valid(ccu_policy, ccu->name))
786 struct ccu_data *ccu = data;
789 if (idx >= ccu->clk_num) {
794 return &ccu->kona_clks[idx].hw;
801 void __init kona_dt_ccu_setup(struct ccu_data *ccu,
823 ccu->range = (u32)range;
825 if (!ccu_data_valid(ccu)) {
826 pr_err("%s: ccu data not valid for %pOFn\n", __func__, node);
830 ccu->base = ioremap(res.start, ccu->range);
831 if (!ccu->base) {
836 ccu->node = of_node_get(node);
840 * the clock framework clock array (in ccu->data). Then
843 for (i = 0; i < ccu->clk_num; i++) {
844 if (!ccu->kona_clks[i].ccu)
846 kona_clk_setup(&ccu->kona_clks[i]);
849 ret = of_clk_add_hw_provider(node, of_clk_kona_onecell_get, ccu);
851 pr_err("%s: error adding ccu %pOFn as provider (%d)\n", __func__,
856 if (!kona_ccu_init(ccu))
861 kona_ccu_teardown(ccu);