--- a/arch/arm/mach-cns3xxx/core.c +++ b/arch/arm/mach-cns3xxx/core.c @@ -19,6 +19,7 @@ #include #include #include +#include #include #include #include "core.h" @@ -187,6 +188,17 @@ static struct irqaction cns3xxx_timer_ir .handler = cns3xxx_timer_interrupt, }; +static void __init cns3xxx_init_twd(void) +{ +#ifdef CONFIG_LOCAL_TIMERS + static DEFINE_TWD_LOCAL_TIMER(cns3xx_twd_local_timer, + CNS3XXX_TC11MP_TWD_BASE, + IRQ_LOCALTIMER); + + twd_local_timer_register(&cns3xx_twd_local_timer); +#endif +} + /* * Set up the clock source and clock events devices */ @@ -240,6 +252,7 @@ static void __init __cns3xxx_timer_init( setup_irq(timer_irq, &cns3xxx_timer_irq); cns3xxx_clockevents_init(timer_irq); + cns3xxx_init_twd(); } static void __init cns3xxx_timer_init(void)