Lines Matching refs:provider
56 struct sci_clk_provider *provider; member
78 return clk->provider->ops->get_clock(clk->provider->sci, clk->dev_id, in sci_clk_prepare()
95 ret = clk->provider->ops->put_clock(clk->provider->sci, clk->dev_id, in sci_clk_unprepare()
98 dev_err(clk->provider->dev, in sci_clk_unprepare()
116 ret = clk->provider->ops->is_on(clk->provider->sci, clk->dev_id, in sci_clk_is_prepared()
120 dev_err(clk->provider->dev, in sci_clk_is_prepared()
144 ret = clk->provider->ops->get_freq(clk->provider->sci, clk->dev_id, in sci_clk_recalc_rate()
147 dev_err(clk->provider->dev, in sci_clk_recalc_rate()
178 ret = clk->provider->ops->get_best_match_freq(clk->provider->sci, in sci_clk_determine_rate()
186 dev_err(clk->provider->dev, in sci_clk_determine_rate()
214 return clk->provider->ops->set_freq(clk->provider->sci, clk->dev_id, in sci_clk_set_rate()
231 ret = clk->provider->ops->get_parent(clk->provider->sci, clk->dev_id, in sci_clk_get_parent()
234 dev_err(clk->provider->dev, in sci_clk_get_parent()
258 return clk->provider->ops->set_parent(clk->provider->sci, clk->dev_id, in sci_clk_set_parent()
285 static int _sci_clk_build(struct sci_clk_provider *provider, in _sci_clk_build() argument
338 ret = devm_clk_hw_register(provider->dev, &sci_clk->hw); in _sci_clk_build()
340 dev_err(provider->dev, "failed clk register with %d\n", ret); in _sci_clk_build()
380 struct sci_clk_provider *provider = data; in sci_clk_get() local
390 clk = bsearch(&key, provider->clocks, provider->num_clocks, in sci_clk_get()
420 static int ti_sci_scan_clocks_from_fw(struct sci_clk_provider *provider) in ti_sci_scan_clocks_from_fw() argument
432 struct device *dev = provider->dev; in ti_sci_scan_clocks_from_fw()
435 ret = provider->ops->get_num_parents(provider->sci, dev_id, in ti_sci_scan_clocks_from_fw()
474 sci_clk->provider = provider; in ti_sci_scan_clocks_from_fw()
483 provider->clocks = devm_kmalloc_array(dev, num_clks, sizeof(sci_clk), in ti_sci_scan_clocks_from_fw()
485 if (!provider->clocks) in ti_sci_scan_clocks_from_fw()
488 memcpy(provider->clocks, clks, num_clks * sizeof(sci_clk)); in ti_sci_scan_clocks_from_fw()
490 provider->num_clocks = num_clks; in ti_sci_scan_clocks_from_fw()
508 static int ti_sci_scan_clocks_from_dt(struct sci_clk_provider *provider) in ti_sci_scan_clocks_from_dt() argument
510 struct device *dev = provider->dev; in ti_sci_scan_clocks_from_dt()
557 sci_clk->provider = provider; in ti_sci_scan_clocks_from_dt()
558 provider->ops->get_num_parents(provider->sci, in ti_sci_scan_clocks_from_dt()
591 ret = provider->ops->is_auto(provider->sci, in ti_sci_scan_clocks_from_dt()
606 sci_clk->provider = provider; in ti_sci_scan_clocks_from_dt()
619 provider->clocks = devm_kmalloc_array(dev, num_clks, sizeof(sci_clk), in ti_sci_scan_clocks_from_dt()
621 if (!provider->clocks) in ti_sci_scan_clocks_from_dt()
632 provider->clocks[num_clks++] = sci_clk; in ti_sci_scan_clocks_from_dt()
636 provider->num_clocks = num_clks; in ti_sci_scan_clocks_from_dt()
656 struct sci_clk_provider *provider; in ti_sci_clk_probe() local
664 provider = devm_kzalloc(dev, sizeof(*provider), GFP_KERNEL); in ti_sci_clk_probe()
665 if (!provider) in ti_sci_clk_probe()
668 provider->sci = handle; in ti_sci_clk_probe()
669 provider->ops = &handle->ops.clk_ops; in ti_sci_clk_probe()
670 provider->dev = dev; in ti_sci_clk_probe()
673 ret = ti_sci_scan_clocks_from_fw(provider); in ti_sci_clk_probe()
679 ret = ti_sci_scan_clocks_from_dt(provider); in ti_sci_clk_probe()
686 ret = ti_sci_init_clocks(provider); in ti_sci_clk_probe()
692 return of_clk_add_hw_provider(np, sci_clk_get, provider); in ti_sci_clk_probe()