diff options
Diffstat (limited to 'arch/arm/mach-ep93xx')
-rw-r--r-- | arch/arm/mach-ep93xx/adssphere.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-ep93xx/core.c | 35 | ||||
-rw-r--r-- | arch/arm/mach-ep93xx/edb93xx.c | 16 | ||||
-rw-r--r-- | arch/arm/mach-ep93xx/gesbc9312.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-ep93xx/include/mach/platform.h | 2 | ||||
-rw-r--r-- | arch/arm/mach-ep93xx/micro9.c | 8 | ||||
-rw-r--r-- | arch/arm/mach-ep93xx/simone.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-ep93xx/snappercl15.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-ep93xx/ts72xx.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-ep93xx/vision_ep9307.c | 2 |
10 files changed, 38 insertions, 35 deletions
diff --git a/arch/arm/mach-ep93xx/adssphere.c b/arch/arm/mach-ep93xx/adssphere.c index 41383bf03d4b..82d9c788535a 100644 --- a/arch/arm/mach-ep93xx/adssphere.c +++ b/arch/arm/mach-ep93xx/adssphere.c | |||
@@ -40,7 +40,7 @@ MACHINE_START(ADSSPHERE, "ADS Sphere board") | |||
40 | .map_io = ep93xx_map_io, | 40 | .map_io = ep93xx_map_io, |
41 | .init_irq = ep93xx_init_irq, | 41 | .init_irq = ep93xx_init_irq, |
42 | .handle_irq = vic_handle_irq, | 42 | .handle_irq = vic_handle_irq, |
43 | .timer = &ep93xx_timer, | 43 | .init_time = ep93xx_timer_init, |
44 | .init_machine = adssphere_init_machine, | 44 | .init_machine = adssphere_init_machine, |
45 | .init_late = ep93xx_init_late, | 45 | .init_late = ep93xx_init_late, |
46 | .restart = ep93xx_restart, | 46 | .restart = ep93xx_restart, |
diff --git a/arch/arm/mach-ep93xx/core.c b/arch/arm/mach-ep93xx/core.c index e85bf17f2d2a..ee27b4b0ab07 100644 --- a/arch/arm/mach-ep93xx/core.c +++ b/arch/arm/mach-ep93xx/core.c | |||
@@ -140,11 +140,29 @@ static struct irqaction ep93xx_timer_irq = { | |||
140 | .handler = ep93xx_timer_interrupt, | 140 | .handler = ep93xx_timer_interrupt, |
141 | }; | 141 | }; |
142 | 142 | ||
143 | static void __init ep93xx_timer_init(void) | 143 | static u32 ep93xx_gettimeoffset(void) |
144 | { | ||
145 | int offset; | ||
146 | |||
147 | offset = __raw_readl(EP93XX_TIMER4_VALUE_LOW) - last_jiffy_time; | ||
148 | |||
149 | /* | ||
150 | * Timer 4 is based on a 983.04 kHz reference clock, | ||
151 | * so dividing by 983040 gives the fraction of a second, | ||
152 | * so dividing by 0.983040 converts to uS. | ||
153 | * Refactor the calculation to avoid overflow. | ||
154 | * Finally, multiply by 1000 to give nS. | ||
155 | */ | ||
156 | return (offset + (53 * offset / 3072)) * 1000; | ||
157 | } | ||
158 | |||
159 | void __init ep93xx_timer_init(void) | ||
144 | { | 160 | { |
145 | u32 tmode = EP93XX_TIMER123_CONTROL_MODE | | 161 | u32 tmode = EP93XX_TIMER123_CONTROL_MODE | |
146 | EP93XX_TIMER123_CONTROL_CLKSEL; | 162 | EP93XX_TIMER123_CONTROL_CLKSEL; |
147 | 163 | ||
164 | arch_gettimeoffset = ep93xx_gettimeoffset; | ||
165 | |||
148 | /* Enable periodic HZ timer. */ | 166 | /* Enable periodic HZ timer. */ |
149 | __raw_writel(tmode, EP93XX_TIMER1_CONTROL); | 167 | __raw_writel(tmode, EP93XX_TIMER1_CONTROL); |
150 | __raw_writel(TIMER1_RELOAD, EP93XX_TIMER1_LOAD); | 168 | __raw_writel(TIMER1_RELOAD, EP93XX_TIMER1_LOAD); |
@@ -158,21 +176,6 @@ static void __init ep93xx_timer_init(void) | |||
158 | setup_irq(IRQ_EP93XX_TIMER1, &ep93xx_timer_irq); | 176 | setup_irq(IRQ_EP93XX_TIMER1, &ep93xx_timer_irq); |
159 | } | 177 | } |
160 | 178 | ||
161 | static unsigned long ep93xx_gettimeoffset(void) | ||
162 | { | ||
163 | int offset; | ||
164 | |||
165 | offset = __raw_readl(EP93XX_TIMER4_VALUE_LOW) - last_jiffy_time; | ||
166 | |||
167 | /* Calculate (1000000 / 983040) * offset. */ | ||
168 | return offset + (53 * offset / 3072); | ||
169 | } | ||
170 | |||
171 | struct sys_timer ep93xx_timer = { | ||
172 | .init = ep93xx_timer_init, | ||
173 | .offset = ep93xx_gettimeoffset, | ||
174 | }; | ||
175 | |||
176 | 179 | ||
177 | /************************************************************************* | 180 | /************************************************************************* |
178 | * EP93xx IRQ handling | 181 | * EP93xx IRQ handling |
diff --git a/arch/arm/mach-ep93xx/edb93xx.c b/arch/arm/mach-ep93xx/edb93xx.c index b8f53d57a299..ac260519c9e9 100644 --- a/arch/arm/mach-ep93xx/edb93xx.c +++ b/arch/arm/mach-ep93xx/edb93xx.c | |||
@@ -277,7 +277,7 @@ MACHINE_START(EDB9301, "Cirrus Logic EDB9301 Evaluation Board") | |||
277 | .map_io = ep93xx_map_io, | 277 | .map_io = ep93xx_map_io, |
278 | .init_irq = ep93xx_init_irq, | 278 | .init_irq = ep93xx_init_irq, |
279 | .handle_irq = vic_handle_irq, | 279 | .handle_irq = vic_handle_irq, |
280 | .timer = &ep93xx_timer, | 280 | .init_time = ep93xx_timer_init, |
281 | .init_machine = edb93xx_init_machine, | 281 | .init_machine = edb93xx_init_machine, |
282 | .init_late = ep93xx_init_late, | 282 | .init_late = ep93xx_init_late, |
283 | .restart = ep93xx_restart, | 283 | .restart = ep93xx_restart, |
@@ -291,7 +291,7 @@ MACHINE_START(EDB9302, "Cirrus Logic EDB9302 Evaluation Board") | |||
291 | .map_io = ep93xx_map_io, | 291 | .map_io = ep93xx_map_io, |
292 | .init_irq = ep93xx_init_irq, | 292 | .init_irq = ep93xx_init_irq, |
293 | .handle_irq = vic_handle_irq, | 293 | .handle_irq = vic_handle_irq, |
294 | .timer = &ep93xx_timer, | 294 | .init_time = ep93xx_timer_init, |
295 | .init_machine = edb93xx_init_machine, | 295 | .init_machine = edb93xx_init_machine, |
296 | .init_late = ep93xx_init_late, | 296 | .init_late = ep93xx_init_late, |
297 | .restart = ep93xx_restart, | 297 | .restart = ep93xx_restart, |
@@ -305,7 +305,7 @@ MACHINE_START(EDB9302A, "Cirrus Logic EDB9302A Evaluation Board") | |||
305 | .map_io = ep93xx_map_io, | 305 | .map_io = ep93xx_map_io, |
306 | .init_irq = ep93xx_init_irq, | 306 | .init_irq = ep93xx_init_irq, |
307 | .handle_irq = vic_handle_irq, | 307 | .handle_irq = vic_handle_irq, |
308 | .timer = &ep93xx_timer, | 308 | .init_time = ep93xx_timer_init, |
309 | .init_machine = edb93xx_init_machine, | 309 | .init_machine = edb93xx_init_machine, |
310 | .init_late = ep93xx_init_late, | 310 | .init_late = ep93xx_init_late, |
311 | .restart = ep93xx_restart, | 311 | .restart = ep93xx_restart, |
@@ -319,7 +319,7 @@ MACHINE_START(EDB9307, "Cirrus Logic EDB9307 Evaluation Board") | |||
319 | .map_io = ep93xx_map_io, | 319 | .map_io = ep93xx_map_io, |
320 | .init_irq = ep93xx_init_irq, | 320 | .init_irq = ep93xx_init_irq, |
321 | .handle_irq = vic_handle_irq, | 321 | .handle_irq = vic_handle_irq, |
322 | .timer = &ep93xx_timer, | 322 | .init_time = ep93xx_timer_init, |
323 | .init_machine = edb93xx_init_machine, | 323 | .init_machine = edb93xx_init_machine, |
324 | .init_late = ep93xx_init_late, | 324 | .init_late = ep93xx_init_late, |
325 | .restart = ep93xx_restart, | 325 | .restart = ep93xx_restart, |
@@ -333,7 +333,7 @@ MACHINE_START(EDB9307A, "Cirrus Logic EDB9307A Evaluation Board") | |||
333 | .map_io = ep93xx_map_io, | 333 | .map_io = ep93xx_map_io, |
334 | .init_irq = ep93xx_init_irq, | 334 | .init_irq = ep93xx_init_irq, |
335 | .handle_irq = vic_handle_irq, | 335 | .handle_irq = vic_handle_irq, |
336 | .timer = &ep93xx_timer, | 336 | .init_time = ep93xx_timer_init, |
337 | .init_machine = edb93xx_init_machine, | 337 | .init_machine = edb93xx_init_machine, |
338 | .init_late = ep93xx_init_late, | 338 | .init_late = ep93xx_init_late, |
339 | .restart = ep93xx_restart, | 339 | .restart = ep93xx_restart, |
@@ -347,7 +347,7 @@ MACHINE_START(EDB9312, "Cirrus Logic EDB9312 Evaluation Board") | |||
347 | .map_io = ep93xx_map_io, | 347 | .map_io = ep93xx_map_io, |
348 | .init_irq = ep93xx_init_irq, | 348 | .init_irq = ep93xx_init_irq, |
349 | .handle_irq = vic_handle_irq, | 349 | .handle_irq = vic_handle_irq, |
350 | .timer = &ep93xx_timer, | 350 | .init_time = ep93xx_timer_init, |
351 | .init_machine = edb93xx_init_machine, | 351 | .init_machine = edb93xx_init_machine, |
352 | .init_late = ep93xx_init_late, | 352 | .init_late = ep93xx_init_late, |
353 | .restart = ep93xx_restart, | 353 | .restart = ep93xx_restart, |
@@ -361,7 +361,7 @@ MACHINE_START(EDB9315, "Cirrus Logic EDB9315 Evaluation Board") | |||
361 | .map_io = ep93xx_map_io, | 361 | .map_io = ep93xx_map_io, |
362 | .init_irq = ep93xx_init_irq, | 362 | .init_irq = ep93xx_init_irq, |
363 | .handle_irq = vic_handle_irq, | 363 | .handle_irq = vic_handle_irq, |
364 | .timer = &ep93xx_timer, | 364 | .init_time = ep93xx_timer_init, |
365 | .init_machine = edb93xx_init_machine, | 365 | .init_machine = edb93xx_init_machine, |
366 | .init_late = ep93xx_init_late, | 366 | .init_late = ep93xx_init_late, |
367 | .restart = ep93xx_restart, | 367 | .restart = ep93xx_restart, |
@@ -375,7 +375,7 @@ MACHINE_START(EDB9315A, "Cirrus Logic EDB9315A Evaluation Board") | |||
375 | .map_io = ep93xx_map_io, | 375 | .map_io = ep93xx_map_io, |
376 | .init_irq = ep93xx_init_irq, | 376 | .init_irq = ep93xx_init_irq, |
377 | .handle_irq = vic_handle_irq, | 377 | .handle_irq = vic_handle_irq, |
378 | .timer = &ep93xx_timer, | 378 | .init_time = ep93xx_timer_init, |
379 | .init_machine = edb93xx_init_machine, | 379 | .init_machine = edb93xx_init_machine, |
380 | .init_late = ep93xx_init_late, | 380 | .init_late = ep93xx_init_late, |
381 | .restart = ep93xx_restart, | 381 | .restart = ep93xx_restart, |
diff --git a/arch/arm/mach-ep93xx/gesbc9312.c b/arch/arm/mach-ep93xx/gesbc9312.c index 7fd705b5efe4..76c50f42bd71 100644 --- a/arch/arm/mach-ep93xx/gesbc9312.c +++ b/arch/arm/mach-ep93xx/gesbc9312.c | |||
@@ -40,7 +40,7 @@ MACHINE_START(GESBC9312, "Glomation GESBC-9312-sx") | |||
40 | .map_io = ep93xx_map_io, | 40 | .map_io = ep93xx_map_io, |
41 | .init_irq = ep93xx_init_irq, | 41 | .init_irq = ep93xx_init_irq, |
42 | .handle_irq = vic_handle_irq, | 42 | .handle_irq = vic_handle_irq, |
43 | .timer = &ep93xx_timer, | 43 | .init_time = ep93xx_timer_init, |
44 | .init_machine = gesbc9312_init_machine, | 44 | .init_machine = gesbc9312_init_machine, |
45 | .init_late = ep93xx_init_late, | 45 | .init_late = ep93xx_init_late, |
46 | .restart = ep93xx_restart, | 46 | .restart = ep93xx_restart, |
diff --git a/arch/arm/mach-ep93xx/include/mach/platform.h b/arch/arm/mach-ep93xx/include/mach/platform.h index 33a5122c6dc8..a14e1b37beff 100644 --- a/arch/arm/mach-ep93xx/include/mach/platform.h +++ b/arch/arm/mach-ep93xx/include/mach/platform.h | |||
@@ -53,7 +53,7 @@ int ep93xx_ide_acquire_gpio(struct platform_device *pdev); | |||
53 | void ep93xx_ide_release_gpio(struct platform_device *pdev); | 53 | void ep93xx_ide_release_gpio(struct platform_device *pdev); |
54 | 54 | ||
55 | void ep93xx_init_devices(void); | 55 | void ep93xx_init_devices(void); |
56 | extern struct sys_timer ep93xx_timer; | 56 | extern void ep93xx_timer_init(void); |
57 | 57 | ||
58 | void ep93xx_restart(char, const char *); | 58 | void ep93xx_restart(char, const char *); |
59 | void ep93xx_init_late(void); | 59 | void ep93xx_init_late(void); |
diff --git a/arch/arm/mach-ep93xx/micro9.c b/arch/arm/mach-ep93xx/micro9.c index 3d7cdab725b2..777cd2170f8a 100644 --- a/arch/arm/mach-ep93xx/micro9.c +++ b/arch/arm/mach-ep93xx/micro9.c | |||
@@ -83,7 +83,7 @@ MACHINE_START(MICRO9, "Contec Micro9-High") | |||
83 | .map_io = ep93xx_map_io, | 83 | .map_io = ep93xx_map_io, |
84 | .init_irq = ep93xx_init_irq, | 84 | .init_irq = ep93xx_init_irq, |
85 | .handle_irq = vic_handle_irq, | 85 | .handle_irq = vic_handle_irq, |
86 | .timer = &ep93xx_timer, | 86 | .init_time = ep93xx_timer_init, |
87 | .init_machine = micro9_init_machine, | 87 | .init_machine = micro9_init_machine, |
88 | .init_late = ep93xx_init_late, | 88 | .init_late = ep93xx_init_late, |
89 | .restart = ep93xx_restart, | 89 | .restart = ep93xx_restart, |
@@ -97,7 +97,7 @@ MACHINE_START(MICRO9M, "Contec Micro9-Mid") | |||
97 | .map_io = ep93xx_map_io, | 97 | .map_io = ep93xx_map_io, |
98 | .init_irq = ep93xx_init_irq, | 98 | .init_irq = ep93xx_init_irq, |
99 | .handle_irq = vic_handle_irq, | 99 | .handle_irq = vic_handle_irq, |
100 | .timer = &ep93xx_timer, | 100 | .init_time = ep93xx_timer_init, |
101 | .init_machine = micro9_init_machine, | 101 | .init_machine = micro9_init_machine, |
102 | .init_late = ep93xx_init_late, | 102 | .init_late = ep93xx_init_late, |
103 | .restart = ep93xx_restart, | 103 | .restart = ep93xx_restart, |
@@ -111,7 +111,7 @@ MACHINE_START(MICRO9L, "Contec Micro9-Lite") | |||
111 | .map_io = ep93xx_map_io, | 111 | .map_io = ep93xx_map_io, |
112 | .init_irq = ep93xx_init_irq, | 112 | .init_irq = ep93xx_init_irq, |
113 | .handle_irq = vic_handle_irq, | 113 | .handle_irq = vic_handle_irq, |
114 | .timer = &ep93xx_timer, | 114 | .init_time = ep93xx_timer_init, |
115 | .init_machine = micro9_init_machine, | 115 | .init_machine = micro9_init_machine, |
116 | .init_late = ep93xx_init_late, | 116 | .init_late = ep93xx_init_late, |
117 | .restart = ep93xx_restart, | 117 | .restart = ep93xx_restart, |
@@ -125,7 +125,7 @@ MACHINE_START(MICRO9S, "Contec Micro9-Slim") | |||
125 | .map_io = ep93xx_map_io, | 125 | .map_io = ep93xx_map_io, |
126 | .init_irq = ep93xx_init_irq, | 126 | .init_irq = ep93xx_init_irq, |
127 | .handle_irq = vic_handle_irq, | 127 | .handle_irq = vic_handle_irq, |
128 | .timer = &ep93xx_timer, | 128 | .init_time = ep93xx_timer_init, |
129 | .init_machine = micro9_init_machine, | 129 | .init_machine = micro9_init_machine, |
130 | .init_late = ep93xx_init_late, | 130 | .init_late = ep93xx_init_late, |
131 | .restart = ep93xx_restart, | 131 | .restart = ep93xx_restart, |
diff --git a/arch/arm/mach-ep93xx/simone.c b/arch/arm/mach-ep93xx/simone.c index 0eb3f17a6fa2..6ff39ee2ad5d 100644 --- a/arch/arm/mach-ep93xx/simone.c +++ b/arch/arm/mach-ep93xx/simone.c | |||
@@ -84,7 +84,7 @@ MACHINE_START(SIM_ONE, "Simplemachines Sim.One Board") | |||
84 | .map_io = ep93xx_map_io, | 84 | .map_io = ep93xx_map_io, |
85 | .init_irq = ep93xx_init_irq, | 85 | .init_irq = ep93xx_init_irq, |
86 | .handle_irq = vic_handle_irq, | 86 | .handle_irq = vic_handle_irq, |
87 | .timer = &ep93xx_timer, | 87 | .init_time = ep93xx_timer_init, |
88 | .init_machine = simone_init_machine, | 88 | .init_machine = simone_init_machine, |
89 | .init_late = ep93xx_init_late, | 89 | .init_late = ep93xx_init_late, |
90 | .restart = ep93xx_restart, | 90 | .restart = ep93xx_restart, |
diff --git a/arch/arm/mach-ep93xx/snappercl15.c b/arch/arm/mach-ep93xx/snappercl15.c index 50043eef1cf2..6434c07dbf96 100644 --- a/arch/arm/mach-ep93xx/snappercl15.c +++ b/arch/arm/mach-ep93xx/snappercl15.c | |||
@@ -177,7 +177,7 @@ MACHINE_START(SNAPPER_CL15, "Bluewater Systems Snapper CL15") | |||
177 | .map_io = ep93xx_map_io, | 177 | .map_io = ep93xx_map_io, |
178 | .init_irq = ep93xx_init_irq, | 178 | .init_irq = ep93xx_init_irq, |
179 | .handle_irq = vic_handle_irq, | 179 | .handle_irq = vic_handle_irq, |
180 | .timer = &ep93xx_timer, | 180 | .init_time = ep93xx_timer_init, |
181 | .init_machine = snappercl15_init_machine, | 181 | .init_machine = snappercl15_init_machine, |
182 | .init_late = ep93xx_init_late, | 182 | .init_late = ep93xx_init_late, |
183 | .restart = ep93xx_restart, | 183 | .restart = ep93xx_restart, |
diff --git a/arch/arm/mach-ep93xx/ts72xx.c b/arch/arm/mach-ep93xx/ts72xx.c index 3c4c233391dc..e4fa0d3760a5 100644 --- a/arch/arm/mach-ep93xx/ts72xx.c +++ b/arch/arm/mach-ep93xx/ts72xx.c | |||
@@ -247,7 +247,7 @@ MACHINE_START(TS72XX, "Technologic Systems TS-72xx SBC") | |||
247 | .map_io = ts72xx_map_io, | 247 | .map_io = ts72xx_map_io, |
248 | .init_irq = ep93xx_init_irq, | 248 | .init_irq = ep93xx_init_irq, |
249 | .handle_irq = vic_handle_irq, | 249 | .handle_irq = vic_handle_irq, |
250 | .timer = &ep93xx_timer, | 250 | .init_time = ep93xx_timer_init, |
251 | .init_machine = ts72xx_init_machine, | 251 | .init_machine = ts72xx_init_machine, |
252 | .init_late = ep93xx_init_late, | 252 | .init_late = ep93xx_init_late, |
253 | .restart = ep93xx_restart, | 253 | .restart = ep93xx_restart, |
diff --git a/arch/arm/mach-ep93xx/vision_ep9307.c b/arch/arm/mach-ep93xx/vision_ep9307.c index ba92e25e3016..8610ba293991 100644 --- a/arch/arm/mach-ep93xx/vision_ep9307.c +++ b/arch/arm/mach-ep93xx/vision_ep9307.c | |||
@@ -365,7 +365,7 @@ MACHINE_START(VISION_EP9307, "Vision Engraving Systems EP9307") | |||
365 | .map_io = vision_map_io, | 365 | .map_io = vision_map_io, |
366 | .init_irq = ep93xx_init_irq, | 366 | .init_irq = ep93xx_init_irq, |
367 | .handle_irq = vic_handle_irq, | 367 | .handle_irq = vic_handle_irq, |
368 | .timer = &ep93xx_timer, | 368 | .init_time = ep93xx_timer_init, |
369 | .init_machine = vision_init_machine, | 369 | .init_machine = vision_init_machine, |
370 | .init_late = ep93xx_init_late, | 370 | .init_late = ep93xx_init_late, |
371 | .restart = ep93xx_restart, | 371 | .restart = ep93xx_restart, |