aboutsummaryrefslogtreecommitdiffstats
path: root/arch/blackfin/mach-bf561/smp.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/blackfin/mach-bf561/smp.c')
-rw-r--r--arch/blackfin/mach-bf561/smp.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/arch/blackfin/mach-bf561/smp.c b/arch/blackfin/mach-bf561/smp.c
index ec93f3ef8fa3..90369429ee66 100644
--- a/arch/blackfin/mach-bf561/smp.c
+++ b/arch/blackfin/mach-bf561/smp.c
@@ -11,6 +11,7 @@
11#include <linux/delay.h> 11#include <linux/delay.h>
12#include <asm/smp.h> 12#include <asm/smp.h>
13#include <asm/dma.h> 13#include <asm/dma.h>
14#include <asm/time.h>
14 15
15static DEFINE_SPINLOCK(boot_lock); 16static DEFINE_SPINLOCK(boot_lock);
16 17
@@ -144,3 +145,20 @@ void platform_clear_ipi(unsigned int cpu)
144 bfin_write_SICB_SYSCR(bfin_read_SICB_SYSCR() | (1 << (10 + cpu))); 145 bfin_write_SICB_SYSCR(bfin_read_SICB_SYSCR() | (1 << (10 + cpu)));
145 SSYNC(); 146 SSYNC();
146} 147}
148
149/*
150 * Setup core B's local core timer.
151 * In SMP, core timer is used for clock event device.
152 */
153void __cpuinit bfin_local_timer_setup(void)
154{
155#if defined(CONFIG_TICKSOURCE_CORETMR)
156 bfin_coretmr_init();
157 bfin_coretmr_clockevent_init();
158 get_irq_chip(IRQ_CORETMR)->unmask(IRQ_CORETMR);
159#else
160 /* Power down the core timer, just to play safe. */
161 bfin_write_TCNTL(0);
162#endif
163
164}