Re: [RFC 3/5] ARM: OMAP2+: timer: Add clocksource initialization and powerup support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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




[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux