diff options
Diffstat (limited to 'arch/arm/plat-spear/time.c')
-rw-r--r-- | arch/arm/plat-spear/time.c | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/arch/arm/plat-spear/time.c b/arch/arm/plat-spear/time.c index abb5bdecd509..a3164d1647fd 100644 --- a/arch/arm/plat-spear/time.c +++ b/arch/arm/plat-spear/time.c | |||
@@ -15,14 +15,13 @@ | |||
15 | #include <linux/err.h> | 15 | #include <linux/err.h> |
16 | #include <linux/init.h> | 16 | #include <linux/init.h> |
17 | #include <linux/interrupt.h> | 17 | #include <linux/interrupt.h> |
18 | #include <linux/ioport.h> | ||
18 | #include <linux/io.h> | 19 | #include <linux/io.h> |
19 | #include <linux/kernel.h> | 20 | #include <linux/kernel.h> |
20 | #include <linux/time.h> | 21 | #include <linux/time.h> |
21 | #include <linux/irq.h> | 22 | #include <linux/irq.h> |
22 | #include <asm/mach/time.h> | 23 | #include <asm/mach/time.h> |
23 | #include <mach/generic.h> | 24 | #include <mach/generic.h> |
24 | #include <mach/hardware.h> | ||
25 | #include <mach/irqs.h> | ||
26 | 25 | ||
27 | /* | 26 | /* |
28 | * We would use TIMER0 and TIMER1 as clockevent and clocksource. | 27 | * We would use TIMER0 and TIMER1 as clockevent and clocksource. |
@@ -175,7 +174,7 @@ static struct irqaction spear_timer_irq = { | |||
175 | .handler = spear_timer_interrupt | 174 | .handler = spear_timer_interrupt |
176 | }; | 175 | }; |
177 | 176 | ||
178 | static void __init spear_clockevent_init(void) | 177 | static void __init spear_clockevent_init(int irq) |
179 | { | 178 | { |
180 | u32 tick_rate; | 179 | u32 tick_rate; |
181 | 180 | ||
@@ -195,19 +194,19 @@ static void __init spear_clockevent_init(void) | |||
195 | 194 | ||
196 | clockevents_register_device(&clkevt); | 195 | clockevents_register_device(&clkevt); |
197 | 196 | ||
198 | setup_irq(SPEAR_GPT0_CHAN0_IRQ, &spear_timer_irq); | 197 | setup_irq(irq, &spear_timer_irq); |
199 | } | 198 | } |
200 | 199 | ||
201 | void __init spear_setup_timer(void) | 200 | void __init spear_setup_timer(resource_size_t base, int irq) |
202 | { | 201 | { |
203 | int ret; | 202 | int ret; |
204 | 203 | ||
205 | if (!request_mem_region(SPEAR_GPT0_BASE, SZ_1K, "gpt0")) { | 204 | if (!request_mem_region(base, SZ_1K, "gpt0")) { |
206 | pr_err("%s:cannot get IO addr\n", __func__); | 205 | pr_err("%s:cannot get IO addr\n", __func__); |
207 | return; | 206 | return; |
208 | } | 207 | } |
209 | 208 | ||
210 | gpt_base = (void __iomem *)ioremap(SPEAR_GPT0_BASE, SZ_1K); | 209 | gpt_base = ioremap(base, SZ_1K); |
211 | if (!gpt_base) { | 210 | if (!gpt_base) { |
212 | pr_err("%s:ioremap failed for gpt\n", __func__); | 211 | pr_err("%s:ioremap failed for gpt\n", __func__); |
213 | goto err_mem; | 212 | goto err_mem; |
@@ -225,7 +224,7 @@ void __init spear_setup_timer(void) | |||
225 | goto err_clk; | 224 | goto err_clk; |
226 | } | 225 | } |
227 | 226 | ||
228 | spear_clockevent_init(); | 227 | spear_clockevent_init(irq); |
229 | spear_clocksource_init(); | 228 | spear_clocksource_init(); |
230 | 229 | ||
231 | return; | 230 | return; |
@@ -235,5 +234,5 @@ err_clk: | |||
235 | err_iomap: | 234 | err_iomap: |
236 | iounmap(gpt_base); | 235 | iounmap(gpt_base); |
237 | err_mem: | 236 | err_mem: |
238 | release_mem_region(SPEAR_GPT0_BASE, SZ_1K); | 237 | release_mem_region(base, SZ_1K); |
239 | } | 238 | } |