diff options
Diffstat (limited to 'arch/arm/mach-omap2/timer.c')
| -rw-r--r-- | arch/arm/mach-omap2/timer.c | 33 | 
1 files changed, 21 insertions, 12 deletions
diff --git a/arch/arm/mach-omap2/timer.c b/arch/arm/mach-omap2/timer.c index ffb17beb575..04ac1b43fbf 100644 --- a/arch/arm/mach-omap2/timer.c +++ b/arch/arm/mach-omap2/timer.c @@ -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  |