From 39e823e35b791b905e0d8eba62e8b3a0b3351936 Mon Sep 17 00:00:00 2001 From: Catalin Marinas Date: Mon, 4 Feb 2008 17:45:03 +0100 Subject: [ARM] 4821/1: RealView: Remove the platform dependencies from localtimer.c This patch removes the TWD_BASE macro used to set up and configure the local timers on ARM11MPCore. The twd_base_addr and twd_size variables are defined in localtimer.c and set from the realview_eb_init function. Signed-off-by: Catalin Marinas Signed-off-by: Russell King --- arch/arm/mach-realview/core.h | 4 ++++ arch/arm/mach-realview/localtimer.c | 9 ++++++--- arch/arm/mach-realview/realview_eb.c | 8 ++++++-- 3 files changed, 16 insertions(+), 5 deletions(-) (limited to 'arch/arm') diff --git a/arch/arm/mach-realview/core.h b/arch/arm/mach-realview/core.h index 16c9d45..492a14c 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; extern struct clk realview_clcd_clk; extern struct clcd_board clcd_plat_data; extern void __iomem *gic_cpu_base_addr; +#ifdef CONFIG_LOCAL_TIMERS +extern void __iomem *twd_base_addr; +extern unsigned int twd_size; +#endif extern void realview_leds_event(led_event_t ledevt); 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 60500f0..5060436 100644 --- a/arch/arm/mach-realview/localtimer.c +++ b/arch/arm/mach-realview/localtimer.c @@ -24,9 +24,6 @@ #include #include -#define TWD_BASE(cpu) (__io_address(REALVIEW_EB11MP_TWD_BASE) + \ - ((cpu) * REALVIEW_EB11MP_TWD_SIZE)) - static DEFINE_PER_CPU(struct clock_event_device, local_clockevent); /* @@ -41,6 +38,12 @@ void local_timer_interrupt(void) #ifdef CONFIG_LOCAL_TIMERS +#define TWD_BASE(cpu) (twd_base_addr + (cpu) * twd_size) + +/* set up by the platform code */ +void __iomem *twd_base_addr; +unsigned int twd_size; + static unsigned long mpcore_timer_rate; 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 20b05f2..8ded2cc 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) { unsigned int timer_irq; - if (core_tile_eb11mp()) + if (core_tile_eb11mp()) { +#ifdef CONFIG_LOCAL_TIMERS + twd_base_addr = __io_address(REALVIEW_EB11MP_TWD_BASE); + twd_size = REALVIEW_EB11MP_TWD_SIZE; +#endif timer_irq = IRQ_EB11MP_TIMER0_1; - else + } else timer_irq = IRQ_EB_TIMER0_1; realview_timer_init(timer_irq); -- cgit v1.1