|
@@ -161,6 +161,12 @@ static struct device_node * __init omap_get_timer_dt(struct of_device_id *match,
|
|
|
if (property && !of_get_property(np, property, NULL))
|
|
|
continue;
|
|
|
|
|
|
+ if (!property && (of_get_property(np, "ti,timer-alwon", NULL) ||
|
|
|
+ of_get_property(np, "ti,timer-dsp", NULL) ||
|
|
|
+ of_get_property(np, "ti,timer-pwm", NULL) ||
|
|
|
+ of_get_property(np, "ti,timer-secure", NULL)))
|
|
|
+ continue;
|
|
|
+
|
|
|
of_add_property(np, &device_disabled);
|
|
|
return np;
|
|
|
}
|
|
@@ -442,13 +448,14 @@ static int __init __maybe_unused omap2_sync32k_clocksource_init(void)
|
|
|
}
|
|
|
|
|
|
static void __init omap2_gptimer_clocksource_init(int gptimer_id,
|
|
|
- const char *fck_source)
|
|
|
+ const char *fck_source,
|
|
|
+ const char *property)
|
|
|
{
|
|
|
int res;
|
|
|
|
|
|
clksrc.errata = omap_dm_timer_get_errata();
|
|
|
|
|
|
- res = omap_dm_timer_init_one(&clksrc, gptimer_id, fck_source, NULL,
|
|
|
+ res = omap_dm_timer_init_one(&clksrc, gptimer_id, fck_source, property,
|
|
|
&clocksource_gpt.name,
|
|
|
OMAP_TIMER_NONPOSTED);
|
|
|
BUG_ON(res);
|
|
@@ -545,47 +552,49 @@ static inline void __init realtime_counter_init(void)
|
|
|
#endif
|
|
|
|
|
|
#define OMAP_SYS_GP_TIMER_INIT(name, clkev_nr, clkev_src, clkev_prop, \
|
|
|
- clksrc_nr, clksrc_src) \
|
|
|
+ clksrc_nr, clksrc_src, clksrc_prop) \
|
|
|
void __init omap##name##_gptimer_timer_init(void) \
|
|
|
{ \
|
|
|
omap_dmtimer_init(); \
|
|
|
omap2_gp_clockevent_init((clkev_nr), clkev_src, clkev_prop); \
|
|
|
- omap2_gptimer_clocksource_init((clksrc_nr), clksrc_src); \
|
|
|
+ omap2_gptimer_clocksource_init((clksrc_nr), clksrc_src, \
|
|
|
+ clksrc_prop); \
|
|
|
}
|
|
|
|
|
|
#define OMAP_SYS_32K_TIMER_INIT(name, clkev_nr, clkev_src, clkev_prop, \
|
|
|
- clksrc_nr, clksrc_src) \
|
|
|
+ clksrc_nr, clksrc_src, clksrc_prop) \
|
|
|
void __init omap##name##_sync32k_timer_init(void) \
|
|
|
{ \
|
|
|
omap_dmtimer_init(); \
|
|
|
omap2_gp_clockevent_init((clkev_nr), clkev_src, clkev_prop); \
|
|
|
/* Enable the use of clocksource="gp_timer" kernel parameter */ \
|
|
|
if (use_gptimer_clksrc) \
|
|
|
- omap2_gptimer_clocksource_init((clksrc_nr), clksrc_src);\
|
|
|
+ omap2_gptimer_clocksource_init((clksrc_nr), clksrc_src, \
|
|
|
+ clksrc_prop); \
|
|
|
else \
|
|
|
omap2_sync32k_clocksource_init(); \
|
|
|
}
|
|
|
|
|
|
#ifdef CONFIG_ARCH_OMAP2
|
|
|
OMAP_SYS_32K_TIMER_INIT(2, 1, "timer_32k_ck", "ti,timer-alwon",
|
|
|
- 2, "timer_sys_ck");
|
|
|
+ 2, "timer_sys_ck", NULL);
|
|
|
#endif /* CONFIG_ARCH_OMAP2 */
|
|
|
|
|
|
#ifdef CONFIG_ARCH_OMAP3
|
|
|
OMAP_SYS_32K_TIMER_INIT(3, 1, "timer_32k_ck", "ti,timer-alwon",
|
|
|
- 2, "timer_sys_ck");
|
|
|
+ 2, "timer_sys_ck", NULL);
|
|
|
OMAP_SYS_32K_TIMER_INIT(3_secure, 12, "secure_32k_fck", "ti,timer-secure",
|
|
|
- 2, "timer_sys_ck");
|
|
|
+ 2, "timer_sys_ck", NULL);
|
|
|
#endif /* CONFIG_ARCH_OMAP3 */
|
|
|
|
|
|
#if defined(CONFIG_ARCH_OMAP3) || defined(CONFIG_SOC_AM33XX)
|
|
|
-OMAP_SYS_GP_TIMER_INIT(3, 1, "timer_sys_ck", "ti,timer-alwon",
|
|
|
- 2, "timer_sys_ck");
|
|
|
+OMAP_SYS_GP_TIMER_INIT(3, 2, "timer_sys_ck", NULL,
|
|
|
+ 1, "timer_sys_ck", "ti,timer-alwon");
|
|
|
#endif
|
|
|
|
|
|
#if defined(CONFIG_ARCH_OMAP4) || defined(CONFIG_SOC_OMAP5)
|
|
|
OMAP_SYS_32K_TIMER_INIT(4, 1, "timer_32k_ck", "ti,timer-alwon",
|
|
|
- 2, "sys_clkin_ck");
|
|
|
+ 2, "sys_clkin_ck", NULL);
|
|
|
#endif
|
|
|
|
|
|
#ifdef CONFIG_ARCH_OMAP4
|