[PATCH 2/2] ARM: OMAP2+: Change core_initcall levels to postcore_initcall

Tony Lindgren tony at atomide.com
Thu Dec 3 08:41:13 PST 2015

* Grygorii Strashko <grygorii.strashko at ti.com> [151203 08:35]:
> On 12/03/2015 06:00 PM, Tony Lindgren wrote:
> > * Tony Lindgren <tony at atomide.com> [151130 08:29]:
> >> We want to be able to probe a few selected device drivers before hwmod
> >> code populates the clocks in omap_hwmod_setup_all(). This allows us to
> >> convert most of the clock drivers into regular device drivers.
> if understand things right, ti clks now will be populated and initialized
> from 
> __omap_sync32k_timer_init
>  - omap_clk_init()
>    - .. 
>    - of_clk_init()
>    - ..
>    - omap_clk_soc_init()
> and __omap_sync32k_timer_init(), in turn, will be called from:
> arch/arm/kernel/time.c
>  - time_init()
> 	machine_desc->init_time();
> (without your patch 1).

Yes that's the current approach, but we can do better. We only need the following
clocks for system timers at that point:

- mux clocks to select between the 32k and hf oscillator source

- clkctrl driver to gate the ocp clock

All the other clocks can be initialized at core_initcall time with this change.

> So, I don't see real dependency here between clk initialization and hwmods :(

You don't because it's only implemented so far for the dm814x ADPLL clock :)

That I posted as "[PATCH 0/2] Clock driver for dm814x ADPLL". Note how it's
just a regular device driver that also works as loadable module on boards that
have all the necessary clocks enabled already by the bootloader.



More information about the linux-arm-kernel mailing list