Lines Matching full:provider
10 #include <linux/clk-provider.h>
227 struct omap_clkctrl_provider *provider = data; in _ti_omap4_clkctrl_xlate() local
236 list_for_each_entry(iter, &provider->clocks, node) { in _ti_omap4_clkctrl_xlate()
285 _ti_clkctrl_clk_register(struct omap_clkctrl_provider *provider, in _ti_clkctrl_clk_register() argument
322 list_add(&clkctrl_clk->node, &provider->clocks); in _ti_clkctrl_clk_register()
333 _ti_clkctrl_setup_gate(struct omap_clkctrl_provider *provider, in _ti_clkctrl_setup_gate() argument
347 if (_ti_clkctrl_clk_register(provider, node, &clk_hw->hw, offset, in _ti_clkctrl_setup_gate()
354 _ti_clkctrl_setup_mux(struct omap_clkctrl_provider *provider, in _ti_clkctrl_setup_mux() argument
382 if (_ti_clkctrl_clk_register(provider, node, &mux->hw, offset, in _ti_clkctrl_setup_mux()
389 _ti_clkctrl_setup_div(struct omap_clkctrl_provider *provider, in _ti_clkctrl_setup_div() argument
418 if (_ti_clkctrl_clk_register(provider, node, &div->hw, offset, in _ti_clkctrl_setup_div()
425 _ti_clkctrl_setup_subclks(struct omap_clkctrl_provider *provider, in _ti_clkctrl_setup_subclks() argument
438 _ti_clkctrl_setup_gate(provider, node, data->offset, in _ti_clkctrl_setup_subclks()
443 _ti_clkctrl_setup_div(provider, node, data->offset, in _ti_clkctrl_setup_subclks()
448 _ti_clkctrl_setup_mux(provider, node, data->offset, in _ti_clkctrl_setup_subclks()
512 struct omap_clkctrl_provider *provider; in _ti_omap4_clkctrl_setup() local
582 provider = kzalloc(sizeof(*provider), GFP_KERNEL); in _ti_omap4_clkctrl_setup()
583 if (!provider) in _ti_omap4_clkctrl_setup()
586 provider->base = of_iomap(node, 0); in _ti_omap4_clkctrl_setup()
591 provider->clkdm_name = kasprintf(GFP_KERNEL, in _ti_omap4_clkctrl_setup()
593 if (!provider->clkdm_name) { in _ti_omap4_clkctrl_setup()
594 kfree(provider); in _ti_omap4_clkctrl_setup()
605 provider->clkdm_name = kasprintf(GFP_KERNEL, "%pOFnxxx", node->parent); in _ti_omap4_clkctrl_setup()
606 if (!provider->clkdm_name) { in _ti_omap4_clkctrl_setup()
607 kfree(provider); in _ti_omap4_clkctrl_setup()
615 provider->clkdm_name[strlen(provider->clkdm_name) - 2] = 0; in _ti_omap4_clkctrl_setup()
617 provider->clkdm_name = kasprintf(GFP_KERNEL, "%pOFn", node); in _ti_omap4_clkctrl_setup()
618 if (!provider->clkdm_name) { in _ti_omap4_clkctrl_setup()
619 kfree(provider); in _ti_omap4_clkctrl_setup()
627 provider->clkdm_name[strlen(provider->clkdm_name) - 7] = 0; in _ti_omap4_clkctrl_setup()
630 strcat(provider->clkdm_name, "clkdm"); in _ti_omap4_clkctrl_setup()
633 c = provider->clkdm_name; in _ti_omap4_clkctrl_setup()
641 INIT_LIST_HEAD(&provider->clocks); in _ti_omap4_clkctrl_setup()
657 hw->enable_reg.ptr = provider->base + reg_data->offset; in _ti_omap4_clkctrl_setup()
659 _ti_clkctrl_setup_subclks(provider, node, reg_data, in _ti_omap4_clkctrl_setup()
672 hw->clkdm_name = provider->clkdm_name; in _ti_omap4_clkctrl_setup()
700 list_add(&clkctrl_clk->node, &provider->clocks); in _ti_omap4_clkctrl_setup()
705 ret = of_clk_add_hw_provider(node, _ti_omap4_clkctrl_xlate, provider); in _ti_omap4_clkctrl_setup()
707 ti_clk_retry_init(node, provider, _clkctrl_add_provider); in _ti_omap4_clkctrl_setup()