diff options
Diffstat (limited to 'arch/arm/mach-realview/realview_pbx.c')
-rw-r--r-- | arch/arm/mach-realview/realview_pbx.c | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/arch/arm/mach-realview/realview_pbx.c b/arch/arm/mach-realview/realview_pbx.c index ac715645b86..6ddcc6147bf 100644 --- a/arch/arm/mach-realview/realview_pbx.c +++ b/arch/arm/mach-realview/realview_pbx.c | |||
@@ -298,6 +298,21 @@ static void __init gic_init_irq(void) | |||
298 | } | 298 | } |
299 | } | 299 | } |
300 | 300 | ||
301 | #ifdef CONFIG_HAVE_ARM_TWD | ||
302 | static DEFINE_TWD_LOCAL_TIMER(twd_local_timer, | ||
303 | REALVIEW_PBX_TILE_TWD_BASE, | ||
304 | IRQ_LOCALTIMER); | ||
305 | |||
306 | static void __init realview_pbx_twd_init(void) | ||
307 | { | ||
308 | int err = twd_local_timer_register(&twd_local_timer); | ||
309 | if (err) | ||
310 | pr_err("twd_local_timer_register failed %d\n", err); | ||
311 | } | ||
312 | #else | ||
313 | #define realview_pbx_twd_init() do { } while(0) | ||
314 | #endif | ||
315 | |||
301 | static void __init realview_pbx_timer_init(void) | 316 | static void __init realview_pbx_timer_init(void) |
302 | { | 317 | { |
303 | timer0_va_base = __io_address(REALVIEW_PBX_TIMER0_1_BASE); | 318 | timer0_va_base = __io_address(REALVIEW_PBX_TIMER0_1_BASE); |
@@ -305,11 +320,8 @@ static void __init realview_pbx_timer_init(void) | |||
305 | timer2_va_base = __io_address(REALVIEW_PBX_TIMER2_3_BASE); | 320 | timer2_va_base = __io_address(REALVIEW_PBX_TIMER2_3_BASE); |
306 | timer3_va_base = __io_address(REALVIEW_PBX_TIMER2_3_BASE) + 0x20; | 321 | timer3_va_base = __io_address(REALVIEW_PBX_TIMER2_3_BASE) + 0x20; |
307 | 322 | ||
308 | #ifdef CONFIG_LOCAL_TIMERS | ||
309 | if (core_tile_pbx11mp() || core_tile_pbxa9mp()) | ||
310 | twd_base = __io_address(REALVIEW_PBX_TILE_TWD_BASE); | ||
311 | #endif | ||
312 | realview_timer_init(IRQ_PBX_TIMER0_1); | 323 | realview_timer_init(IRQ_PBX_TIMER0_1); |
324 | realview_pbx_twd_init(); | ||
313 | } | 325 | } |
314 | 326 | ||
315 | static struct sys_timer realview_pbx_timer = { | 327 | static struct sys_timer realview_pbx_timer = { |