diff options
| -rw-r--r-- | arch/arm/mach-realview/core.h | 4 | ||||
| -rw-r--r-- | arch/arm/mach-realview/localtimer.c | 9 | ||||
| -rw-r--r-- | arch/arm/mach-realview/realview_eb.c | 8 |
3 files changed, 16 insertions, 5 deletions
diff --git a/arch/arm/mach-realview/core.h b/arch/arm/mach-realview/core.h index 16c9d45ce2c2..492a14c0d604 100644 --- a/arch/arm/mach-realview/core.h +++ b/arch/arm/mach-realview/core.h | |||
| @@ -51,6 +51,10 @@ extern struct mmc_platform_data realview_mmc1_plat_data; | |||
| 51 | extern struct clk realview_clcd_clk; | 51 | extern struct clk realview_clcd_clk; |
| 52 | extern struct clcd_board clcd_plat_data; | 52 | extern struct clcd_board clcd_plat_data; |
| 53 | extern void __iomem *gic_cpu_base_addr; | 53 | extern void __iomem *gic_cpu_base_addr; |
| 54 | #ifdef CONFIG_LOCAL_TIMERS | ||
| 55 | extern void __iomem *twd_base_addr; | ||
| 56 | extern unsigned int twd_size; | ||
| 57 | #endif | ||
| 54 | 58 | ||
| 55 | extern void realview_leds_event(led_event_t ledevt); | 59 | extern void realview_leds_event(led_event_t ledevt); |
| 56 | extern void realview_timer_init(unsigned int timer_irq); | 60 | extern void realview_timer_init(unsigned int timer_irq); |
diff --git a/arch/arm/mach-realview/localtimer.c b/arch/arm/mach-realview/localtimer.c index 60500f0b878d..50604360479f 100644 --- a/arch/arm/mach-realview/localtimer.c +++ b/arch/arm/mach-realview/localtimer.c | |||
| @@ -24,9 +24,6 @@ | |||
| 24 | #include <asm/io.h> | 24 | #include <asm/io.h> |
| 25 | #include <asm/irq.h> | 25 | #include <asm/irq.h> |
| 26 | 26 | ||
| 27 | #define TWD_BASE(cpu) (__io_address(REALVIEW_EB11MP_TWD_BASE) + \ | ||
| 28 | ((cpu) * REALVIEW_EB11MP_TWD_SIZE)) | ||
| 29 | |||
| 30 | static DEFINE_PER_CPU(struct clock_event_device, local_clockevent); | 27 | static DEFINE_PER_CPU(struct clock_event_device, local_clockevent); |
| 31 | 28 | ||
| 32 | /* | 29 | /* |
| @@ -41,6 +38,12 @@ void local_timer_interrupt(void) | |||
| 41 | 38 | ||
| 42 | #ifdef CONFIG_LOCAL_TIMERS | 39 | #ifdef CONFIG_LOCAL_TIMERS |
| 43 | 40 | ||
| 41 | #define TWD_BASE(cpu) (twd_base_addr + (cpu) * twd_size) | ||
| 42 | |||
| 43 | /* set up by the platform code */ | ||
| 44 | void __iomem *twd_base_addr; | ||
| 45 | unsigned int twd_size; | ||
| 46 | |||
| 44 | static unsigned long mpcore_timer_rate; | 47 | static unsigned long mpcore_timer_rate; |
| 45 | 48 | ||
| 46 | static void local_timer_set_mode(enum clock_event_mode mode, | 49 | static void local_timer_set_mode(enum clock_event_mode mode, |
diff --git a/arch/arm/mach-realview/realview_eb.c b/arch/arm/mach-realview/realview_eb.c index 20b05f2ed61c..8ded2cc79cca 100644 --- a/arch/arm/mach-realview/realview_eb.c +++ b/arch/arm/mach-realview/realview_eb.c | |||
| @@ -309,9 +309,13 @@ static void __init realview_eb_timer_init(void) | |||
| 309 | { | 309 | { |
| 310 | unsigned int timer_irq; | 310 | unsigned int timer_irq; |
| 311 | 311 | ||
| 312 | if (core_tile_eb11mp()) | 312 | if (core_tile_eb11mp()) { |
| 313 | #ifdef CONFIG_LOCAL_TIMERS | ||
| 314 | twd_base_addr = __io_address(REALVIEW_EB11MP_TWD_BASE); | ||
| 315 | twd_size = REALVIEW_EB11MP_TWD_SIZE; | ||
| 316 | #endif | ||
| 313 | timer_irq = IRQ_EB11MP_TIMER0_1; | 317 | timer_irq = IRQ_EB11MP_TIMER0_1; |
| 314 | else | 318 | } else |
| 315 | timer_irq = IRQ_EB_TIMER0_1; | 319 | timer_irq = IRQ_EB_TIMER0_1; |
| 316 | 320 | ||
| 317 | realview_timer_init(timer_irq); | 321 | realview_timer_init(timer_irq); |
