diff options
Diffstat (limited to 'arch/arm/mach-vexpress/ct-ca9x4.c')
-rw-r--r-- | arch/arm/mach-vexpress/ct-ca9x4.c | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/arch/arm/mach-vexpress/ct-ca9x4.c b/arch/arm/mach-vexpress/ct-ca9x4.c index ebc22e759325..765a71ff7f3b 100644 --- a/arch/arm/mach-vexpress/ct-ca9x4.c +++ b/arch/arm/mach-vexpress/ct-ca9x4.c | |||
@@ -71,8 +71,9 @@ static void __init ct_ca9x4_timer_init(void) | |||
71 | writel(0, MMIO_P2V(CT_CA9X4_TIMER0) + TIMER_CTRL); | 71 | writel(0, MMIO_P2V(CT_CA9X4_TIMER0) + TIMER_CTRL); |
72 | writel(0, MMIO_P2V(CT_CA9X4_TIMER1) + TIMER_CTRL); | 72 | writel(0, MMIO_P2V(CT_CA9X4_TIMER1) + TIMER_CTRL); |
73 | 73 | ||
74 | sp804_clocksource_init(MMIO_P2V(CT_CA9X4_TIMER1)); | 74 | sp804_clocksource_init(MMIO_P2V(CT_CA9X4_TIMER1), "ct-timer1"); |
75 | sp804_clockevents_init(MMIO_P2V(CT_CA9X4_TIMER0), IRQ_CT_CA9X4_TIMER0); | 75 | sp804_clockevents_init(MMIO_P2V(CT_CA9X4_TIMER0), IRQ_CT_CA9X4_TIMER0, |
76 | "ct-timer0"); | ||
76 | } | 77 | } |
77 | 78 | ||
78 | static struct sys_timer ct_ca9x4_timer = { | 79 | static struct sys_timer ct_ca9x4_timer = { |
@@ -141,10 +142,22 @@ static struct clk osc1_clk = { | |||
141 | .rate = 24000000, | 142 | .rate = 24000000, |
142 | }; | 143 | }; |
143 | 144 | ||
145 | static struct clk ct_sp804_clk = { | ||
146 | .rate = 1000000, | ||
147 | }; | ||
148 | |||
144 | static struct clk_lookup lookups[] = { | 149 | static struct clk_lookup lookups[] = { |
145 | { /* CLCD */ | 150 | { /* CLCD */ |
146 | .dev_id = "ct:clcd", | 151 | .dev_id = "ct:clcd", |
147 | .clk = &osc1_clk, | 152 | .clk = &osc1_clk, |
153 | }, { /* SP804 timers */ | ||
154 | .dev_id = "sp804", | ||
155 | .con_id = "ct-timer0", | ||
156 | .clk = &ct_sp804_clk, | ||
157 | }, { /* SP804 timers */ | ||
158 | .dev_id = "sp804", | ||
159 | .con_id = "ct-timer1", | ||
160 | .clk = &ct_sp804_clk, | ||
148 | }, | 161 | }, |
149 | }; | 162 | }; |
150 | 163 | ||
@@ -210,6 +223,8 @@ static void ct_ca9x4_init_cpu_map(void) | |||
210 | 223 | ||
211 | for (i = 0; i < ncores; ++i) | 224 | for (i = 0; i < ncores; ++i) |
212 | set_cpu_possible(i, true); | 225 | set_cpu_possible(i, true); |
226 | |||
227 | set_smp_cross_call(gic_raise_softirq); | ||
213 | } | 228 | } |
214 | 229 | ||
215 | static void ct_ca9x4_smp_enable(unsigned int max_cpus) | 230 | static void ct_ca9x4_smp_enable(unsigned int max_cpus) |