ARM: mach-shmobile: sh7367 and G3EVM timer rework
authorMagnus Damm <damm@opensource.se>
Tue, 6 Mar 2012 08:36:22 +0000 (17:36 +0900)
committerRafael J. Wysocki <rjw@sisk.pl>
Mon, 12 Mar 2012 21:19:44 +0000 (22:19 +0100)
Move the SoC specific timer code from G3EVM board code
to sh7367 setup code. This makes is possible to share
the SoC specific timer code across boards and it also
removes the need for a board specific timer structure.

Signed-off-by: Magnus Damm <damm@opensource.se>
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
arch/arm/mach-shmobile/board-g3evm.c
arch/arm/mach-shmobile/setup-sh7367.c

index 40ddea55fa6ed26d7bd1a53c997fd60b0dfe1d45..b627e89037f5e567d15101b1e3fe3051bbfa94c0 100644 (file)
@@ -37,7 +37,6 @@
 #include <mach/common.h>
 #include <asm/mach-types.h>
 #include <asm/mach/arch.h>
-#include <asm/mach/time.h>
 
 /*
  * IrDA
@@ -332,21 +331,11 @@ static void __init g3evm_init(void)
        platform_add_devices(g3evm_devices, ARRAY_SIZE(g3evm_devices));
 }
 
-static void __init g3evm_timer_init(void)
-{
-       sh7367_clock_init();
-       shmobile_timer.init();
-}
-
-static struct sys_timer g3evm_timer = {
-       .init           = g3evm_timer_init,
-};
-
 MACHINE_START(G3EVM, "g3evm")
        .map_io         = sh7367_map_io,
        .init_early     = sh7367_add_early_devices,
        .init_irq       = sh7367_init_irq,
        .handle_irq     = shmobile_handle_irq_intc,
        .init_machine   = g3evm_init,
-       .timer          = &g3evm_timer,
+       .timer          = &shmobile_timer,
 MACHINE_END
index 7b747aba204649a65d850305fa0194c2218106fb..a51e1a1e6996ddf7a3bd097a23fdbc3071261ae0 100644 (file)
@@ -33,6 +33,7 @@
 #include <asm/mach-types.h>
 #include <asm/mach/arch.h>
 #include <asm/mach/map.h>
+#include <asm/mach/time.h>
 
 static struct map_desc sh7367_io_desc[] __initdata = {
        /* create a 1:1 entity map for 0xe6xxxxxx
@@ -454,6 +455,12 @@ void __init sh7367_add_standard_devices(void)
                            ARRAY_SIZE(sh7367_devices));
 }
 
+static void __init sh7367_earlytimer_init(void)
+{
+       sh7367_clock_init();
+       shmobile_earlytimer_init();
+}
+
 #define SYMSTPCR2 0xe6158048
 #define SYMSTPCR2_CMT1 (1 << 29)
 
@@ -467,4 +474,7 @@ void __init sh7367_add_early_devices(void)
 
        /* setup early console here as well */
        shmobile_setup_console();
+
+       /* override timer setup with soc-specific code */
+       shmobile_timer.init = sh7367_earlytimer_init;
 }