ARM: shmobile: Make r8a7790 Arch timer optional
authorMagnus Damm <damm@opensource.se>
Fri, 28 Jun 2013 11:27:13 +0000 (20:27 +0900)
committerSimon Horman <horms+renesas@verge.net.au>
Wed, 17 Jul 2013 05:26:53 +0000 (14:26 +0900)
Update the r8a7790 code to allow using other
timers than Arch timer for clock events.

Signed-off-by: Magnus Damm <damm@opensource.se>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
arch/arm/mach-shmobile/Kconfig
arch/arm/mach-shmobile/board-lager.c
arch/arm/mach-shmobile/include/mach/r8a7790.h
arch/arm/mach-shmobile/setup-r8a7790.c

index 734b3eec56fc7ab973bd39d214567dd3c64df048..406077c9149b73a4848464a05791eb07e7e01b32 100644 (file)
@@ -61,7 +61,6 @@ config ARCH_R8A7790
        select ARCH_WANT_OPTIONAL_GPIOLIB
        select ARM_GIC
        select CPU_V7
-       select HAVE_ARM_ARCH_TIMER
        select SH_CLK_CPG
        select RENESAS_IRQC
 
index 1e99b17767bb9f72be70750e056b7dfe660670fc..d0da0525bf0b8cc9f834f3418b24f32d2e2e36c1 100644 (file)
@@ -102,6 +102,7 @@ static const char *lager_boards_compat_dt[] __initdata = {
 };
 
 DT_MACHINE_START(LAGER_DT, "lager")
+       .init_early     = r8a7790_init_delay,
        .init_time      = r8a7790_timer_init,
        .init_machine   = lager_add_standard_devices,
        .dt_compat      = lager_boards_compat_dt,
index 2e919e61fa0d3440c94ced629c6323692c86bc15..7851cc1bc9fb55636479102492ac6753eddda1ae 100644 (file)
@@ -4,6 +4,7 @@
 void r8a7790_add_standard_devices(void);
 void r8a7790_clock_init(void);
 void r8a7790_pinmux_init(void);
+void r8a7790_init_delay(void);
 void r8a7790_timer_init(void);
 
 #endif /* __ASM_R8A7790_H__ */
index ece60c635de72186d0d5a240487bca8f19830192..f01542e13e58bca868b095af372c5b2150b62917 100644 (file)
@@ -208,6 +208,13 @@ void __init r8a7790_timer_init(void)
        shmobile_timer_init();
 }
 
+void __init r8a7790_init_delay(void)
+{
+#ifndef CONFIG_ARM_ARCH_TIMER
+       shmobile_setup_delay(1300, 2, 4); /* Cortex-A15 @ 1300MHz */
+#endif
+}
+
 #ifdef CONFIG_USE_OF
 
 static const char *r8a7790_boards_compat_dt[] __initdata = {
@@ -216,6 +223,7 @@ static const char *r8a7790_boards_compat_dt[] __initdata = {
 };
 
 DT_MACHINE_START(R8A7790_DT, "Generic R8A7790 (Flattened Device Tree)")
+       .init_early     = r8a7790_init_delay,
        .init_time      = r8a7790_timer_init,
        .dt_compat      = r8a7790_boards_compat_dt,
 MACHINE_END