On Thu, Mar 13, 2014 at 3:35 PM, Joel Fernandes <joelf@xxxxxx> wrote: > Introduce a generic omap timer initialization function that can > be used by all SoCs for which support is available in the clocksource > driver introduced in the series. > > The function will also be responsible for calling clock initialization > required for everything else to work. > > Signed-off-by: Joel Fernandes <joelf@xxxxxx> > --- > arch/arm/mach-omap2/common.h | 1 + > arch/arm/mach-omap2/timer.c | 28 ++++++++++++++++++++++++++++ > 2 files changed, 29 insertions(+) > > diff --git a/arch/arm/mach-omap2/common.h b/arch/arm/mach-omap2/common.h > index a6aae30..e58d9a4 100644 > --- a/arch/arm/mach-omap2/common.h > +++ b/arch/arm/mach-omap2/common.h > @@ -92,6 +92,7 @@ extern void omap3_secure_sync32k_timer_init(void); > extern void omap3_gptimer_timer_init(void); > extern void omap4_local_timer_init(void); > extern void omap5_realtime_timer_init(void); > +void omap_generic_timer_init(void); > > void omap2420_init_early(void); > void omap2430_init_early(void); > diff --git a/arch/arm/mach-omap2/timer.c b/arch/arm/mach-omap2/timer.c > index 74044aa..08c73a0 100644 > --- a/arch/arm/mach-omap2/timer.c > +++ b/arch/arm/mach-omap2/timer.c > @@ -324,6 +324,25 @@ static int __init omap_dm_timer_init_one(struct omap_dm_timer *timer, > return r; > } > > +int __init omap_dmtimer_powerup(struct omap_dm_timer *timer, > + struct device_node *np) { This function seems unrelated to the commit message. > + struct omap_hwmod *oh; > + const char *oh_name = NULL; > + > + of_property_read_string_index(np, "ti,hwmods", 0, &oh_name); > + if (!oh_name) > + return -ENODEV; > + > + oh = omap_hwmod_lookup(oh_name); > + if (!oh) > + return -ENODEV; > + > + omap_hwmod_setup_one(oh_name); > + > + omap_hwmod_enable(oh); > + return 0; > +} > + > static void __init omap2_gp_clockevent_init(int gptimer_id, > const char *fck_source, > const char *property) > @@ -615,6 +634,15 @@ static OMAP_SYS_32K_TIMER_INIT(4, 1, "timer_32k_ck", "ti,timer-alwon", > 2, "sys_clkin_ck", NULL); > #endif > > +void omap_generic_timer_init(void) > +{ > + if (!of_have_populated_dt()) > + BUG_ON("Generic timer init should only be used for DT boot\n"); I thought omap2 is always DT boot now. > + > + omap_clk_init(); Can't you use CLK_OF_DECLARE and remove this? Then you can remove the init_time function hook completely. > + clocksource_of_init(); > +} > + > #ifdef CONFIG_ARCH_OMAP4 > #ifdef CONFIG_HAVE_ARM_TWD > static DEFINE_TWD_LOCAL_TIMER(twd_local_timer, OMAP44XX_LOCAL_TWD_BASE, 29); > -- > 1.7.9.5 > -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html