aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-msm/timer.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-msm/timer.c')
-rw-r--r--arch/arm/mach-msm/timer.c30
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
231static void __init msm_dt_timer_init(void) 227void __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
299struct sys_timer msm_dt_timer = {
300 .init = msm_dt_timer_init
301};
302#endif 294#endif
303 295
304static int __init msm_timer_map(phys_addr_t event, phys_addr_t source) 296static 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
319static void __init msm7x01_timer_init(void) 311void __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
332struct sys_timer msm7x01_timer = { 324void __init msm7x30_timer_init(void)
333 .init = msm7x01_timer_init
334};
335
336static 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
343struct sys_timer msm7x30_timer = { 331void __init qsd8x50_timer_init(void)
344 .init = msm7x30_timer_init
345};
346
347static 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
354struct sys_timer qsd8x50_timer = {
355 .init = qsd8x50_timer_init
356};