aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMagnus Damm <damm@opensource.se>2012-03-06 03:36:22 -0500
committerRafael J. Wysocki <rjw@sisk.pl>2012-03-12 17:19:44 -0400
commit9e8de440da4a6c231e3970566712149d4593831a (patch)
treec50344d05e3dd00b1dd6d2d5c29f86ddc4ce6ff8
parent08ad42fb7702ee2968b5b837e245ca8fd2175223 (diff)
ARM: mach-shmobile: sh7367 and G3EVM timer rework
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>
-rw-r--r--arch/arm/mach-shmobile/board-g3evm.c13
-rw-r--r--arch/arm/mach-shmobile/setup-sh7367.c10
2 files changed, 11 insertions, 12 deletions
diff --git a/arch/arm/mach-shmobile/board-g3evm.c b/arch/arm/mach-shmobile/board-g3evm.c
index 40ddea55fa6e..b627e89037f5 100644
--- a/arch/arm/mach-shmobile/board-g3evm.c
+++ b/arch/arm/mach-shmobile/board-g3evm.c
@@ -37,7 +37,6 @@
37#include <mach/common.h> 37#include <mach/common.h>
38#include <asm/mach-types.h> 38#include <asm/mach-types.h>
39#include <asm/mach/arch.h> 39#include <asm/mach/arch.h>
40#include <asm/mach/time.h>
41 40
42/* 41/*
43 * IrDA 42 * IrDA
@@ -332,21 +331,11 @@ static void __init g3evm_init(void)
332 platform_add_devices(g3evm_devices, ARRAY_SIZE(g3evm_devices)); 331 platform_add_devices(g3evm_devices, ARRAY_SIZE(g3evm_devices));
333} 332}
334 333
335static void __init g3evm_timer_init(void)
336{
337 sh7367_clock_init();
338 shmobile_timer.init();
339}
340
341static struct sys_timer g3evm_timer = {
342 .init = g3evm_timer_init,
343};
344
345MACHINE_START(G3EVM, "g3evm") 334MACHINE_START(G3EVM, "g3evm")
346 .map_io = sh7367_map_io, 335 .map_io = sh7367_map_io,
347 .init_early = sh7367_add_early_devices, 336 .init_early = sh7367_add_early_devices,
348 .init_irq = sh7367_init_irq, 337 .init_irq = sh7367_init_irq,
349 .handle_irq = shmobile_handle_irq_intc, 338 .handle_irq = shmobile_handle_irq_intc,
350 .init_machine = g3evm_init, 339 .init_machine = g3evm_init,
351 .timer = &g3evm_timer, 340 .timer = &shmobile_timer,
352MACHINE_END 341MACHINE_END
diff --git a/arch/arm/mach-shmobile/setup-sh7367.c b/arch/arm/mach-shmobile/setup-sh7367.c
index 7b747aba2046..a51e1a1e6996 100644
--- a/arch/arm/mach-shmobile/setup-sh7367.c
+++ b/arch/arm/mach-shmobile/setup-sh7367.c
@@ -33,6 +33,7 @@
33#include <asm/mach-types.h> 33#include <asm/mach-types.h>
34#include <asm/mach/arch.h> 34#include <asm/mach/arch.h>
35#include <asm/mach/map.h> 35#include <asm/mach/map.h>
36#include <asm/mach/time.h>
36 37
37static struct map_desc sh7367_io_desc[] __initdata = { 38static struct map_desc sh7367_io_desc[] __initdata = {
38 /* create a 1:1 entity map for 0xe6xxxxxx 39 /* create a 1:1 entity map for 0xe6xxxxxx
@@ -454,6 +455,12 @@ void __init sh7367_add_standard_devices(void)
454 ARRAY_SIZE(sh7367_devices)); 455 ARRAY_SIZE(sh7367_devices));
455} 456}
456 457
458static void __init sh7367_earlytimer_init(void)
459{
460 sh7367_clock_init();
461 shmobile_earlytimer_init();
462}
463
457#define SYMSTPCR2 0xe6158048 464#define SYMSTPCR2 0xe6158048
458#define SYMSTPCR2_CMT1 (1 << 29) 465#define SYMSTPCR2_CMT1 (1 << 29)
459 466
@@ -467,4 +474,7 @@ void __init sh7367_add_early_devices(void)
467 474
468 /* setup early console here as well */ 475 /* setup early console here as well */
469 shmobile_setup_console(); 476 shmobile_setup_console();
477
478 /* override timer setup with soc-specific code */
479 shmobile_timer.init = sh7367_earlytimer_init;
470} 480}