Lines Matching refs:clk_data

39 static void mtk_init_clk_data(struct clk_hw_onecell_data *clk_data,
44 clk_data->num = clk_num;
47 clk_data->hws[i] = ERR_PTR(-ENOENT);
53 struct clk_hw_onecell_data *clk_data;
55 clk_data = devm_kzalloc(dev, struct_size(clk_data, hws, clk_num),
57 if (!clk_data)
60 mtk_init_clk_data(clk_data, clk_num);
62 return clk_data;
68 struct clk_hw_onecell_data *clk_data;
70 clk_data = kzalloc(struct_size(clk_data, hws, clk_num), GFP_KERNEL);
71 if (!clk_data)
74 mtk_init_clk_data(clk_data, clk_num);
76 return clk_data;
80 void mtk_free_clk_data(struct clk_hw_onecell_data *clk_data)
82 kfree(clk_data);
87 struct clk_hw_onecell_data *clk_data)
92 if (!clk_data)
98 if (!IS_ERR_OR_NULL(clk_data->hws[rc->id])) {
112 clk_data->hws[rc->id] = hw;
121 if (IS_ERR_OR_NULL(clk_data->hws[rc->id]))
124 clk_hw_unregister_fixed_rate(clk_data->hws[rc->id]);
125 clk_data->hws[rc->id] = ERR_PTR(-ENOENT);
133 struct clk_hw_onecell_data *clk_data)
137 if (!clk_data)
143 if (IS_ERR_OR_NULL(clk_data->hws[rc->id]))
146 clk_hw_unregister_fixed_rate(clk_data->hws[rc->id]);
147 clk_data->hws[rc->id] = ERR_PTR(-ENOENT);
153 struct clk_hw_onecell_data *clk_data)
158 if (!clk_data)
164 if (!IS_ERR_OR_NULL(clk_data->hws[ff->id])) {
178 clk_data->hws[ff->id] = hw;
187 if (IS_ERR_OR_NULL(clk_data->hws[ff->id]))
190 clk_hw_unregister_fixed_factor(clk_data->hws[ff->id]);
191 clk_data->hws[ff->id] = ERR_PTR(-ENOENT);
199 struct clk_hw_onecell_data *clk_data)
203 if (!clk_data)
209 if (IS_ERR_OR_NULL(clk_data->hws[ff->id]))
212 clk_hw_unregister_fixed_factor(clk_data->hws[ff->id]);
213 clk_data->hws[ff->id] = ERR_PTR(-ENOENT);
332 struct clk_hw_onecell_data *clk_data)
337 if (!clk_data)
343 if (!IS_ERR_OR_NULL(clk_data->hws[mc->id])) {
357 clk_data->hws[mc->id] = hw;
366 if (IS_ERR_OR_NULL(clk_data->hws[mcs->id]))
369 mtk_clk_unregister_composite(clk_data->hws[mc->id]);
370 clk_data->hws[mc->id] = ERR_PTR(-ENOENT);
378 struct clk_hw_onecell_data *clk_data)
382 if (!clk_data)
388 if (IS_ERR_OR_NULL(clk_data->hws[mc->id]))
391 mtk_clk_unregister_composite(clk_data->hws[mc->id]);
392 clk_data->hws[mc->id] = ERR_PTR(-ENOENT);
400 struct clk_hw_onecell_data *clk_data)
405 if (!clk_data)
411 if (!IS_ERR_OR_NULL(clk_data->hws[mcd->id])) {
427 clk_data->hws[mcd->id] = hw;
436 if (IS_ERR_OR_NULL(clk_data->hws[mcd->id]))
439 clk_hw_unregister_divider(clk_data->hws[mcd->id]);
440 clk_data->hws[mcd->id] = ERR_PTR(-ENOENT);
448 struct clk_hw_onecell_data *clk_data)
452 if (!clk_data)
458 if (IS_ERR_OR_NULL(clk_data->hws[mcd->id]))
461 clk_hw_unregister_divider(clk_data->hws[mcd->id]);
462 clk_data->hws[mcd->id] = ERR_PTR(-ENOENT);
472 struct clk_hw_onecell_data *clk_data;
513 clk_data = mtk_alloc_clk_data(num_clks);
514 if (!clk_data) {
521 mcd->num_fixed_clks, clk_data);
528 mcd->num_factor_clks, clk_data);
536 mcd->clk_lock, clk_data);
546 base, mcd->clk_lock, clk_data);
555 base, mcd->clk_lock, clk_data);
562 mcd->num_clks, clk_data);
568 struct clk *mfg_mux = clk_data->hws[mcd->mfg_clk_idx]->clk;
575 r = of_clk_add_hw_provider(node, of_clk_hw_onecell_get, clk_data);
579 platform_set_drvdata(pdev, clk_data);
594 mtk_clk_unregister_gates(mcd->clks, mcd->num_clks, clk_data);
598 mcd->num_divider_clks, clk_data);
602 mcd->num_composite_clks, clk_data);
606 mcd->num_mux_clks, clk_data);
610 mcd->num_factor_clks, clk_data);
614 mcd->num_fixed_clks, clk_data);
616 mtk_free_clk_data(clk_data);
628 struct clk_hw_onecell_data *clk_data = platform_get_drvdata(pdev);
633 mtk_clk_unregister_gates(mcd->clks, mcd->num_clks, clk_data);
636 mcd->num_divider_clks, clk_data);
639 mcd->num_composite_clks, clk_data);
642 mcd->num_mux_clks, clk_data);
645 mcd->num_factor_clks, clk_data);
648 mcd->num_fixed_clks, clk_data);
649 mtk_free_clk_data(clk_data);