aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorRussell King <rmk+kernel@arm.linux.org.uk>2011-05-12 10:31:13 -0400
committerRussell King <rmk+kernel@arm.linux.org.uk>2011-05-23 13:04:53 -0400
commit57cc4f7de2b896ca79185e337eaf7ff9906c4656 (patch)
treed572d278dfc7d319518b73103905574f0a4b06e2 /arch
parent7ff550de99141cbd3be0129d563cc4554fdde9f6 (diff)
clockevents: ARM sp804: allow clockevent name to be specified
This allows platforms to specify the clcokevent name upon registration. Acked-by: Catalin Marinas <catalin.marinas@arm.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/common/timer-sp.c9
-rw-r--r--arch/arm/include/asm/hardware/timer-sp.h2
-rw-r--r--arch/arm/mach-integrator/integrator_cp.c2
-rw-r--r--arch/arm/mach-realview/core.c2
-rw-r--r--arch/arm/mach-versatile/core.c2
-rw-r--r--arch/arm/mach-vexpress/ct-ca9x4.c3
-rw-r--r--arch/arm/mach-vexpress/v2m.c3
7 files changed, 13 insertions, 10 deletions
diff --git a/arch/arm/common/timer-sp.c b/arch/arm/common/timer-sp.c
index 166f892a24d5..5b7e8c9046be 100644
--- a/arch/arm/common/timer-sp.c
+++ b/arch/arm/common/timer-sp.c
@@ -139,7 +139,6 @@ static int sp804_set_next_event(unsigned long next,
139} 139}
140 140
141static struct clock_event_device sp804_clockevent = { 141static struct clock_event_device sp804_clockevent = {
142 .name = "timer0",
143 .shift = 32, 142 .shift = 32,
144 .features = CLOCK_EVT_FEAT_PERIODIC | CLOCK_EVT_FEAT_ONESHOT, 143 .features = CLOCK_EVT_FEAT_PERIODIC | CLOCK_EVT_FEAT_ONESHOT,
145 .set_mode = sp804_set_mode, 144 .set_mode = sp804_set_mode,
@@ -155,17 +154,19 @@ static struct irqaction sp804_timer_irq = {
155 .dev_id = &sp804_clockevent, 154 .dev_id = &sp804_clockevent,
156}; 155};
157 156
158void __init sp804_clockevents_init(void __iomem *base, unsigned int timer_irq) 157void __init sp804_clockevents_init(void __iomem *base, unsigned int irq,
158 const char *name)
159{ 159{
160 struct clock_event_device *evt = &sp804_clockevent; 160 struct clock_event_device *evt = &sp804_clockevent;
161 161
162 clkevt_base = base; 162 clkevt_base = base;
163 163
164 evt->irq = timer_irq; 164 evt->name = name;
165 evt->irq = irq;
165 evt->mult = div_sc(TIMER_FREQ_KHZ, NSEC_PER_MSEC, evt->shift); 166 evt->mult = div_sc(TIMER_FREQ_KHZ, NSEC_PER_MSEC, evt->shift);
166 evt->max_delta_ns = clockevent_delta2ns(0xffffffff, evt); 167 evt->max_delta_ns = clockevent_delta2ns(0xffffffff, evt);
167 evt->min_delta_ns = clockevent_delta2ns(0xf, evt); 168 evt->min_delta_ns = clockevent_delta2ns(0xf, evt);
168 169
169 setup_irq(timer_irq, &sp804_timer_irq); 170 setup_irq(irq, &sp804_timer_irq);
170 clockevents_register_device(evt); 171 clockevents_register_device(evt);
171} 172}
diff --git a/arch/arm/include/asm/hardware/timer-sp.h b/arch/arm/include/asm/hardware/timer-sp.h
index 11c386bbbf36..4384d81eee79 100644
--- a/arch/arm/include/asm/hardware/timer-sp.h
+++ b/arch/arm/include/asm/hardware/timer-sp.h
@@ -1,2 +1,2 @@
1void sp804_clocksource_init(void __iomem *, const char *); 1void sp804_clocksource_init(void __iomem *, const char *);
2void sp804_clockevents_init(void __iomem *, unsigned int); 2void sp804_clockevents_init(void __iomem *, unsigned int, const char *);
diff --git a/arch/arm/mach-integrator/integrator_cp.c b/arch/arm/mach-integrator/integrator_cp.c
index 8fb8afb014ef..c4914c69462b 100644
--- a/arch/arm/mach-integrator/integrator_cp.c
+++ b/arch/arm/mach-integrator/integrator_cp.c
@@ -484,7 +484,7 @@ static void __init intcp_timer_init(void)
484 writel(0, TIMER2_VA_BASE + TIMER_CTRL); 484 writel(0, TIMER2_VA_BASE + TIMER_CTRL);
485 485
486 sp804_clocksource_init(TIMER2_VA_BASE, "timer2"); 486 sp804_clocksource_init(TIMER2_VA_BASE, "timer2");
487 sp804_clockevents_init(TIMER1_VA_BASE, IRQ_TIMERINT1); 487 sp804_clockevents_init(TIMER1_VA_BASE, IRQ_TIMERINT1, "timer1");
488} 488}
489 489
490static struct sys_timer cp_timer = { 490static struct sys_timer cp_timer = {
diff --git a/arch/arm/mach-realview/core.c b/arch/arm/mach-realview/core.c
index 6a9cd1eb4c2e..9f5155507d27 100644
--- a/arch/arm/mach-realview/core.c
+++ b/arch/arm/mach-realview/core.c
@@ -553,7 +553,7 @@ void __init realview_timer_init(unsigned int timer_irq)
553 writel(0, timer3_va_base + TIMER_CTRL); 553 writel(0, timer3_va_base + TIMER_CTRL);
554 554
555 sp804_clocksource_init(timer3_va_base, "timer3"); 555 sp804_clocksource_init(timer3_va_base, "timer3");
556 sp804_clockevents_init(timer0_va_base, timer_irq); 556 sp804_clockevents_init(timer0_va_base, timer_irq, "timer0");
557} 557}
558 558
559/* 559/*
diff --git a/arch/arm/mach-versatile/core.c b/arch/arm/mach-versatile/core.c
index b0b7de6875ab..4e78c379c5c6 100644
--- a/arch/arm/mach-versatile/core.c
+++ b/arch/arm/mach-versatile/core.c
@@ -772,7 +772,7 @@ static void __init versatile_timer_init(void)
772 writel(0, TIMER3_VA_BASE + TIMER_CTRL); 772 writel(0, TIMER3_VA_BASE + TIMER_CTRL);
773 773
774 sp804_clocksource_init(TIMER3_VA_BASE, "timer3"); 774 sp804_clocksource_init(TIMER3_VA_BASE, "timer3");
775 sp804_clockevents_init(TIMER0_VA_BASE, IRQ_TIMERINT0_1); 775 sp804_clockevents_init(TIMER0_VA_BASE, IRQ_TIMERINT0_1, "timer0");
776} 776}
777 777
778struct sys_timer versatile_timer = { 778struct sys_timer versatile_timer = {
diff --git a/arch/arm/mach-vexpress/ct-ca9x4.c b/arch/arm/mach-vexpress/ct-ca9x4.c
index 6004f06cbde5..271213384203 100644
--- a/arch/arm/mach-vexpress/ct-ca9x4.c
+++ b/arch/arm/mach-vexpress/ct-ca9x4.c
@@ -72,7 +72,8 @@ static void __init ct_ca9x4_timer_init(void)
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), "ct-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
78static struct sys_timer ct_ca9x4_timer = { 79static struct sys_timer ct_ca9x4_timer = {
diff --git a/arch/arm/mach-vexpress/v2m.c b/arch/arm/mach-vexpress/v2m.c
index 77d5db3d7808..f6fecdd0fbe8 100644
--- a/arch/arm/mach-vexpress/v2m.c
+++ b/arch/arm/mach-vexpress/v2m.c
@@ -66,7 +66,8 @@ static void __init v2m_timer_init(void)
66 writel(0, MMIO_P2V(V2M_TIMER1) + TIMER_CTRL); 66 writel(0, MMIO_P2V(V2M_TIMER1) + TIMER_CTRL);
67 67
68 sp804_clocksource_init(MMIO_P2V(V2M_TIMER1), "v2m-timer1"); 68 sp804_clocksource_init(MMIO_P2V(V2M_TIMER1), "v2m-timer1");
69 sp804_clockevents_init(MMIO_P2V(V2M_TIMER0), IRQ_V2M_TIMER0); 69 sp804_clockevents_init(MMIO_P2V(V2M_TIMER0), IRQ_V2M_TIMER0,
70 "v2m-timer0");
70} 71}
71 72
72static struct sys_timer v2m_timer = { 73static struct sys_timer v2m_timer = {