37 lines
916 B
Diff
37 lines
916 B
Diff
--- a/arch/arm/mach-cns3xxx/core.c
|
|
+++ b/arch/arm/mach-cns3xxx/core.c
|
|
@@ -19,6 +19,7 @@
|
|
#include <asm/mach/time.h>
|
|
#include <asm/mach/irq.h>
|
|
#include <asm/hardware/gic.h>
|
|
+#include <asm/smp_twd.h>
|
|
#include <asm/hardware/cache-l2x0.h>
|
|
#include <mach/cns3xxx.h>
|
|
#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)
|