diff options
Diffstat (limited to 'arch/arm/mach-msm/timer.c')
-rw-r--r-- | arch/arm/mach-msm/timer.c | 30 |
1 files changed, 5 insertions, 25 deletions
diff --git a/arch/arm/mach-msm/timer.c b/arch/arm/mach-msm/timer.c index 4330285d6753..2969027f02fa 100644 --- a/arch/arm/mach-msm/timer.c +++ b/arch/arm/mach-msm/timer.c | |||
@@ -143,13 +143,9 @@ static int __cpuinit msm_local_timer_setup(struct clock_event_device *evt) | |||
143 | evt->rating = msm_clockevent.rating; | 143 | evt->rating = msm_clockevent.rating; |
144 | evt->set_mode = msm_timer_set_mode; | 144 | evt->set_mode = msm_timer_set_mode; |
145 | evt->set_next_event = msm_timer_set_next_event; | 145 | evt->set_next_event = msm_timer_set_next_event; |
146 | evt->shift = msm_clockevent.shift; | ||
147 | evt->mult = div_sc(GPT_HZ, NSEC_PER_SEC, evt->shift); | ||
148 | evt->max_delta_ns = clockevent_delta2ns(0xf0000000, evt); | ||
149 | evt->min_delta_ns = clockevent_delta2ns(4, evt); | ||
150 | 146 | ||
151 | *__this_cpu_ptr(msm_evt.percpu_evt) = evt; | 147 | *__this_cpu_ptr(msm_evt.percpu_evt) = evt; |
152 | clockevents_register_device(evt); | 148 | clockevents_config_and_register(evt, GPT_HZ, 4, 0xf0000000); |
153 | enable_percpu_irq(evt->irq, IRQ_TYPE_EDGE_RISING); | 149 | enable_percpu_irq(evt->irq, IRQ_TYPE_EDGE_RISING); |
154 | return 0; | 150 | return 0; |
155 | } | 151 | } |
@@ -228,7 +224,7 @@ static const struct of_device_id msm_gpt_match[] __initconst = { | |||
228 | { }, | 224 | { }, |
229 | }; | 225 | }; |
230 | 226 | ||
231 | static void __init msm_dt_timer_init(void) | 227 | void __init msm_dt_timer_init(void) |
232 | { | 228 | { |
233 | struct device_node *np; | 229 | struct device_node *np; |
234 | u32 freq; | 230 | u32 freq; |
@@ -295,10 +291,6 @@ static void __init msm_dt_timer_init(void) | |||
295 | 291 | ||
296 | msm_timer_init(freq, 32, irq, !!percpu_offset); | 292 | msm_timer_init(freq, 32, irq, !!percpu_offset); |
297 | } | 293 | } |
298 | |||
299 | struct sys_timer msm_dt_timer = { | ||
300 | .init = msm_dt_timer_init | ||
301 | }; | ||
302 | #endif | 294 | #endif |
303 | 295 | ||
304 | static int __init msm_timer_map(phys_addr_t event, phys_addr_t source) | 296 | static int __init msm_timer_map(phys_addr_t event, phys_addr_t source) |
@@ -316,7 +308,7 @@ static int __init msm_timer_map(phys_addr_t event, phys_addr_t source) | |||
316 | return 0; | 308 | return 0; |
317 | } | 309 | } |
318 | 310 | ||
319 | static void __init msm7x01_timer_init(void) | 311 | void __init msm7x01_timer_init(void) |
320 | { | 312 | { |
321 | struct clocksource *cs = &msm_clocksource; | 313 | struct clocksource *cs = &msm_clocksource; |
322 | 314 | ||
@@ -329,28 +321,16 @@ static void __init msm7x01_timer_init(void) | |||
329 | false); | 321 | false); |
330 | } | 322 | } |
331 | 323 | ||
332 | struct sys_timer msm7x01_timer = { | 324 | void __init msm7x30_timer_init(void) |
333 | .init = msm7x01_timer_init | ||
334 | }; | ||
335 | |||
336 | static void __init msm7x30_timer_init(void) | ||
337 | { | 325 | { |
338 | if (msm_timer_map(0xc0100004, 0xc0100024)) | 326 | if (msm_timer_map(0xc0100004, 0xc0100024)) |
339 | return; | 327 | return; |
340 | msm_timer_init(24576000 / 4, 32, 1, false); | 328 | msm_timer_init(24576000 / 4, 32, 1, false); |
341 | } | 329 | } |
342 | 330 | ||
343 | struct sys_timer msm7x30_timer = { | 331 | void __init qsd8x50_timer_init(void) |
344 | .init = msm7x30_timer_init | ||
345 | }; | ||
346 | |||
347 | static void __init qsd8x50_timer_init(void) | ||
348 | { | 332 | { |
349 | if (msm_timer_map(0xAC100000, 0xAC100010)) | 333 | if (msm_timer_map(0xAC100000, 0xAC100010)) |
350 | return; | 334 | return; |
351 | msm_timer_init(19200000 / 4, 32, 7, false); | 335 | msm_timer_init(19200000 / 4, 32, 7, false); |
352 | } | 336 | } |
353 | |||
354 | struct sys_timer qsd8x50_timer = { | ||
355 | .init = qsd8x50_timer_init | ||
356 | }; | ||