aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-sa1100
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2013-02-21 17:58:40 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2013-02-21 17:58:40 -0500
commitb274776c54c320763bc12eb035c0e244f76ccb43 (patch)
treec75b70d0824a7ae029229b19d61884039abf2127 /arch/arm/mach-sa1100
parentb24174b0cbbe383c5bb6097aeb24480b8fd2d338 (diff)
parent3b1209e7994c4d31ff9932a7f566ae1c96b3c443 (diff)
Merge tag 'cleanup' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
Pull ARM SoC cleanups from Arnd Bergmann: "A large number of cleanups, all over the platforms. This is dominated largely by the Samsung platforms (s3c, s5p, exynos) and a few of the others moving code out of arch/arm into more appropriate subsystems. The clocksource and irqchip drivers are now abstracted to the point where platforms that are already cleaned up do not need to even specify the driver they use, it can all get configured from the device tree as we do for normal device drivers. The clocksource changes basically touch every single platform in the process. We further clean up the use of platform specific header files here, with the goal of turning more of the platforms over to being "multiplatform" enabled, which implies that they cannot expose their headers to architecture independent code any more. It is expected that no functional changes are part of the cleanup. The overall reduction in total code lines is mostly the result of removing broken and obsolete code." * tag 'cleanup' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (133 commits) ARM: mvebu: correct gated clock documentation ARM: kirkwood: add missing include for nsa310 ARM: exynos: move exynos4210-combiner to drivers/irqchip mfd: db8500-prcmu: update resource passing drivers/db8500-cpufreq: delete dangling include ARM: at91: remove NEOCORE 926 board sunxi: Cleanup the reset code and add meaningful registers defines ARM: S3C24XX: header mach/regs-mem.h local ARM: S3C24XX: header mach/regs-power.h local ARM: S3C24XX: header mach/regs-s3c2412-mem.h local ARM: S3C24XX: Remove plat-s3c24xx directory in arch/arm/ ARM: S3C24XX: transform s3c2443 subirqs into new structure ARM: S3C24XX: modify s3c2443 irq init to initialize all irqs ARM: S3C24XX: move s3c2443 irq code to irq.c ARM: S3C24XX: transform s3c2416 irqs into new structure ARM: S3C24XX: modify s3c2416 irq init to initialize all irqs ARM: S3C24XX: move s3c2416 irq init to common irq code ARM: S3C24XX: Modify s3c_irq_wake to use the hwirq property ARM: S3C24XX: Move irq syscore-ops to irq-pm clocksource: always define CLOCKSOURCE_OF_DECLARE ...
Diffstat (limited to 'arch/arm/mach-sa1100')
-rw-r--r--arch/arm/mach-sa1100/assabet.c2
-rw-r--r--arch/arm/mach-sa1100/badge4.c2
-rw-r--r--arch/arm/mach-sa1100/cerf.c2
-rw-r--r--arch/arm/mach-sa1100/collie.c2
-rw-r--r--arch/arm/mach-sa1100/generic.h4
-rw-r--r--arch/arm/mach-sa1100/h3100.c2
-rw-r--r--arch/arm/mach-sa1100/h3600.c2
-rw-r--r--arch/arm/mach-sa1100/hackkit.c2
-rw-r--r--arch/arm/mach-sa1100/include/mach/uncompress.h1
-rw-r--r--arch/arm/mach-sa1100/jornada720.c2
-rw-r--r--arch/arm/mach-sa1100/lart.c2
-rw-r--r--arch/arm/mach-sa1100/nanoengine.c2
-rw-r--r--arch/arm/mach-sa1100/pleb.c2
-rw-r--r--arch/arm/mach-sa1100/shannon.c2
-rw-r--r--arch/arm/mach-sa1100/simpad.c2
-rw-r--r--arch/arm/mach-sa1100/time.c72
16 files changed, 46 insertions, 57 deletions
diff --git a/arch/arm/mach-sa1100/assabet.c b/arch/arm/mach-sa1100/assabet.c
index 442497363db9..e838ba27e443 100644
--- a/arch/arm/mach-sa1100/assabet.c
+++ b/arch/arm/mach-sa1100/assabet.c
@@ -622,7 +622,7 @@ MACHINE_START(ASSABET, "Intel-Assabet")
622 .map_io = assabet_map_io, 622 .map_io = assabet_map_io,
623 .nr_irqs = SA1100_NR_IRQS, 623 .nr_irqs = SA1100_NR_IRQS,
624 .init_irq = sa1100_init_irq, 624 .init_irq = sa1100_init_irq,
625 .timer = &sa1100_timer, 625 .init_time = sa1100_timer_init,
626 .init_machine = assabet_init, 626 .init_machine = assabet_init,
627 .init_late = sa11x0_init_late, 627 .init_late = sa11x0_init_late,
628#ifdef CONFIG_SA1111 628#ifdef CONFIG_SA1111
diff --git a/arch/arm/mach-sa1100/badge4.c b/arch/arm/mach-sa1100/badge4.c
index b2dadf3ea3df..63361b6d04e9 100644
--- a/arch/arm/mach-sa1100/badge4.c
+++ b/arch/arm/mach-sa1100/badge4.c
@@ -336,7 +336,7 @@ MACHINE_START(BADGE4, "Hewlett-Packard Laboratories BadgePAD 4")
336 .nr_irqs = SA1100_NR_IRQS, 336 .nr_irqs = SA1100_NR_IRQS,
337 .init_irq = sa1100_init_irq, 337 .init_irq = sa1100_init_irq,
338 .init_late = sa11x0_init_late, 338 .init_late = sa11x0_init_late,
339 .timer = &sa1100_timer, 339 .init_time = sa1100_timer_init,
340#ifdef CONFIG_SA1111 340#ifdef CONFIG_SA1111
341 .dma_zone_size = SZ_1M, 341 .dma_zone_size = SZ_1M,
342#endif 342#endif
diff --git a/arch/arm/mach-sa1100/cerf.c b/arch/arm/mach-sa1100/cerf.c
index 304bca4a07c0..2d25ececb415 100644
--- a/arch/arm/mach-sa1100/cerf.c
+++ b/arch/arm/mach-sa1100/cerf.c
@@ -174,7 +174,7 @@ MACHINE_START(CERF, "Intrinsyc CerfBoard/CerfCube")
174 .map_io = cerf_map_io, 174 .map_io = cerf_map_io,
175 .nr_irqs = SA1100_NR_IRQS, 175 .nr_irqs = SA1100_NR_IRQS,
176 .init_irq = cerf_init_irq, 176 .init_irq = cerf_init_irq,
177 .timer = &sa1100_timer, 177 .init_time = sa1100_timer_init,
178 .init_machine = cerf_init, 178 .init_machine = cerf_init,
179 .init_late = sa11x0_init_late, 179 .init_late = sa11x0_init_late,
180 .restart = sa11x0_restart, 180 .restart = sa11x0_restart,
diff --git a/arch/arm/mach-sa1100/collie.c b/arch/arm/mach-sa1100/collie.c
index 45f424f5fca6..612a45689770 100644
--- a/arch/arm/mach-sa1100/collie.c
+++ b/arch/arm/mach-sa1100/collie.c
@@ -399,7 +399,7 @@ MACHINE_START(COLLIE, "Sharp-Collie")
399 .map_io = collie_map_io, 399 .map_io = collie_map_io,
400 .nr_irqs = SA1100_NR_IRQS, 400 .nr_irqs = SA1100_NR_IRQS,
401 .init_irq = sa1100_init_irq, 401 .init_irq = sa1100_init_irq,
402 .timer = &sa1100_timer, 402 .init_time = sa1100_timer_init,
403 .init_machine = collie_init, 403 .init_machine = collie_init,
404 .init_late = sa11x0_init_late, 404 .init_late = sa11x0_init_late,
405 .restart = sa11x0_restart, 405 .restart = sa11x0_restart,
diff --git a/arch/arm/mach-sa1100/generic.h b/arch/arm/mach-sa1100/generic.h
index a5b7c13da3e3..2abc6a1f6e86 100644
--- a/arch/arm/mach-sa1100/generic.h
+++ b/arch/arm/mach-sa1100/generic.h
@@ -4,9 +4,7 @@
4 * Author: Nicolas Pitre 4 * Author: Nicolas Pitre
5 */ 5 */
6 6
7struct sys_timer; 7extern void sa1100_timer_init(void);
8
9extern struct sys_timer sa1100_timer;
10extern void __init sa1100_map_io(void); 8extern void __init sa1100_map_io(void);
11extern void __init sa1100_init_irq(void); 9extern void __init sa1100_init_irq(void);
12extern void __init sa1100_init_gpio(void); 10extern void __init sa1100_init_gpio(void);
diff --git a/arch/arm/mach-sa1100/h3100.c b/arch/arm/mach-sa1100/h3100.c
index e1571eab08ae..b8f2b151539b 100644
--- a/arch/arm/mach-sa1100/h3100.c
+++ b/arch/arm/mach-sa1100/h3100.c
@@ -108,7 +108,7 @@ MACHINE_START(H3100, "Compaq iPAQ H3100")
108 .map_io = h3100_map_io, 108 .map_io = h3100_map_io,
109 .nr_irqs = SA1100_NR_IRQS, 109 .nr_irqs = SA1100_NR_IRQS,
110 .init_irq = sa1100_init_irq, 110 .init_irq = sa1100_init_irq,
111 .timer = &sa1100_timer, 111 .init_time = sa1100_timer_init,
112 .init_machine = h3100_mach_init, 112 .init_machine = h3100_mach_init,
113 .init_late = sa11x0_init_late, 113 .init_late = sa11x0_init_late,
114 .restart = sa11x0_restart, 114 .restart = sa11x0_restart,
diff --git a/arch/arm/mach-sa1100/h3600.c b/arch/arm/mach-sa1100/h3600.c
index ba7a2901ab88..b8dc5bd22623 100644
--- a/arch/arm/mach-sa1100/h3600.c
+++ b/arch/arm/mach-sa1100/h3600.c
@@ -158,7 +158,7 @@ MACHINE_START(H3600, "Compaq iPAQ H3600")
158 .map_io = h3600_map_io, 158 .map_io = h3600_map_io,
159 .nr_irqs = SA1100_NR_IRQS, 159 .nr_irqs = SA1100_NR_IRQS,
160 .init_irq = sa1100_init_irq, 160 .init_irq = sa1100_init_irq,
161 .timer = &sa1100_timer, 161 .init_time = sa1100_timer_init,
162 .init_machine = h3600_mach_init, 162 .init_machine = h3600_mach_init,
163 .init_late = sa11x0_init_late, 163 .init_late = sa11x0_init_late,
164 .restart = sa11x0_restart, 164 .restart = sa11x0_restart,
diff --git a/arch/arm/mach-sa1100/hackkit.c b/arch/arm/mach-sa1100/hackkit.c
index d005939c41fc..643d5f2d9af9 100644
--- a/arch/arm/mach-sa1100/hackkit.c
+++ b/arch/arm/mach-sa1100/hackkit.c
@@ -229,7 +229,7 @@ MACHINE_START(HACKKIT, "HackKit Cpu Board")
229 .map_io = hackkit_map_io, 229 .map_io = hackkit_map_io,
230 .nr_irqs = SA1100_NR_IRQS, 230 .nr_irqs = SA1100_NR_IRQS,
231 .init_irq = sa1100_init_irq, 231 .init_irq = sa1100_init_irq,
232 .timer = &sa1100_timer, 232 .init_time = sa1100_timer_init,
233 .init_machine = hackkit_init, 233 .init_machine = hackkit_init,
234 .init_late = sa11x0_init_late, 234 .init_late = sa11x0_init_late,
235 .restart = sa11x0_restart, 235 .restart = sa11x0_restart,
diff --git a/arch/arm/mach-sa1100/include/mach/uncompress.h b/arch/arm/mach-sa1100/include/mach/uncompress.h
index 5cf71da60e42..73093dc89829 100644
--- a/arch/arm/mach-sa1100/include/mach/uncompress.h
+++ b/arch/arm/mach-sa1100/include/mach/uncompress.h
@@ -49,4 +49,3 @@ static inline void flush(void)
49 * Nothing to do for these 49 * Nothing to do for these
50 */ 50 */
51#define arch_decomp_setup() 51#define arch_decomp_setup()
52#define arch_decomp_wdog()
diff --git a/arch/arm/mach-sa1100/jornada720.c b/arch/arm/mach-sa1100/jornada720.c
index 35cfc428b4d4..c0b1f5bafae4 100644
--- a/arch/arm/mach-sa1100/jornada720.c
+++ b/arch/arm/mach-sa1100/jornada720.c
@@ -346,7 +346,7 @@ MACHINE_START(JORNADA720, "HP Jornada 720")
346 .map_io = jornada720_map_io, 346 .map_io = jornada720_map_io,
347 .nr_irqs = SA1100_NR_IRQS, 347 .nr_irqs = SA1100_NR_IRQS,
348 .init_irq = sa1100_init_irq, 348 .init_irq = sa1100_init_irq,
349 .timer = &sa1100_timer, 349 .init_time = sa1100_timer_init,
350 .init_machine = jornada720_mach_init, 350 .init_machine = jornada720_mach_init,
351 .init_late = sa11x0_init_late, 351 .init_late = sa11x0_init_late,
352#ifdef CONFIG_SA1111 352#ifdef CONFIG_SA1111
diff --git a/arch/arm/mach-sa1100/lart.c b/arch/arm/mach-sa1100/lart.c
index bca7e60b24d3..51b0eb52c014 100644
--- a/arch/arm/mach-sa1100/lart.c
+++ b/arch/arm/mach-sa1100/lart.c
@@ -171,6 +171,6 @@ MACHINE_START(LART, "LART")
171 .init_irq = sa1100_init_irq, 171 .init_irq = sa1100_init_irq,
172 .init_machine = lart_init, 172 .init_machine = lart_init,
173 .init_late = sa11x0_init_late, 173 .init_late = sa11x0_init_late,
174 .timer = &sa1100_timer, 174 .init_time = sa1100_timer_init,
175 .restart = sa11x0_restart, 175 .restart = sa11x0_restart,
176MACHINE_END 176MACHINE_END
diff --git a/arch/arm/mach-sa1100/nanoengine.c b/arch/arm/mach-sa1100/nanoengine.c
index 102e08f7b109..f1cb3784d525 100644
--- a/arch/arm/mach-sa1100/nanoengine.c
+++ b/arch/arm/mach-sa1100/nanoengine.c
@@ -110,7 +110,7 @@ MACHINE_START(NANOENGINE, "BSE nanoEngine")
110 .map_io = nanoengine_map_io, 110 .map_io = nanoengine_map_io,
111 .nr_irqs = SA1100_NR_IRQS, 111 .nr_irqs = SA1100_NR_IRQS,
112 .init_irq = sa1100_init_irq, 112 .init_irq = sa1100_init_irq,
113 .timer = &sa1100_timer, 113 .init_time = sa1100_timer_init,
114 .init_machine = nanoengine_init, 114 .init_machine = nanoengine_init,
115 .init_late = sa11x0_init_late, 115 .init_late = sa11x0_init_late,
116 .restart = sa11x0_restart, 116 .restart = sa11x0_restart,
diff --git a/arch/arm/mach-sa1100/pleb.c b/arch/arm/mach-sa1100/pleb.c
index c51bb63f90fb..091261878eff 100644
--- a/arch/arm/mach-sa1100/pleb.c
+++ b/arch/arm/mach-sa1100/pleb.c
@@ -133,7 +133,7 @@ MACHINE_START(PLEB, "PLEB")
133 .map_io = pleb_map_io, 133 .map_io = pleb_map_io,
134 .nr_irqs = SA1100_NR_IRQS, 134 .nr_irqs = SA1100_NR_IRQS,
135 .init_irq = sa1100_init_irq, 135 .init_irq = sa1100_init_irq,
136 .timer = &sa1100_timer, 136 .init_time = sa1100_timer_init,
137 .init_machine = pleb_init, 137 .init_machine = pleb_init,
138 .init_late = sa11x0_init_late, 138 .init_late = sa11x0_init_late,
139 .restart = sa11x0_restart, 139 .restart = sa11x0_restart,
diff --git a/arch/arm/mach-sa1100/shannon.c b/arch/arm/mach-sa1100/shannon.c
index 6460d25fbb88..c8866bce7386 100644
--- a/arch/arm/mach-sa1100/shannon.c
+++ b/arch/arm/mach-sa1100/shannon.c
@@ -102,7 +102,7 @@ MACHINE_START(SHANNON, "Shannon (AKA: Tuxscreen)")
102 .map_io = shannon_map_io, 102 .map_io = shannon_map_io,
103 .nr_irqs = SA1100_NR_IRQS, 103 .nr_irqs = SA1100_NR_IRQS,
104 .init_irq = sa1100_init_irq, 104 .init_irq = sa1100_init_irq,
105 .timer = &sa1100_timer, 105 .init_time = sa1100_timer_init,
106 .init_machine = shannon_init, 106 .init_machine = shannon_init,
107 .init_late = sa11x0_init_late, 107 .init_late = sa11x0_init_late,
108 .restart = sa11x0_restart, 108 .restart = sa11x0_restart,
diff --git a/arch/arm/mach-sa1100/simpad.c b/arch/arm/mach-sa1100/simpad.c
index 6d65f65fcb23..bcbc94540e45 100644
--- a/arch/arm/mach-sa1100/simpad.c
+++ b/arch/arm/mach-sa1100/simpad.c
@@ -396,6 +396,6 @@ MACHINE_START(SIMPAD, "Simpad")
396 .nr_irqs = SA1100_NR_IRQS, 396 .nr_irqs = SA1100_NR_IRQS,
397 .init_irq = sa1100_init_irq, 397 .init_irq = sa1100_init_irq,
398 .init_late = sa11x0_init_late, 398 .init_late = sa11x0_init_late,
399 .timer = &sa1100_timer, 399 .init_time = sa1100_timer_init,
400 .restart = sa11x0_restart, 400 .restart = sa11x0_restart,
401MACHINE_END 401MACHINE_END
diff --git a/arch/arm/mach-sa1100/time.c b/arch/arm/mach-sa1100/time.c
index 80702c9ecc77..a59a13a665a6 100644
--- a/arch/arm/mach-sa1100/time.c
+++ b/arch/arm/mach-sa1100/time.c
@@ -69,46 +69,10 @@ sa1100_osmr0_set_mode(enum clock_event_mode mode, struct clock_event_device *c)
69 } 69 }
70} 70}
71 71
72static struct clock_event_device ckevt_sa1100_osmr0 = {
73 .name = "osmr0",
74 .features = CLOCK_EVT_FEAT_ONESHOT,
75 .rating = 200,
76 .set_next_event = sa1100_osmr0_set_next_event,
77 .set_mode = sa1100_osmr0_set_mode,
78};
79
80static struct irqaction sa1100_timer_irq = {
81 .name = "ost0",
82 .flags = IRQF_DISABLED | IRQF_TIMER | IRQF_IRQPOLL,
83 .handler = sa1100_ost0_interrupt,
84 .dev_id = &ckevt_sa1100_osmr0,
85};
86
87static void __init sa1100_timer_init(void)
88{
89 writel_relaxed(0, OIER);
90 writel_relaxed(OSSR_M0 | OSSR_M1 | OSSR_M2 | OSSR_M3, OSSR);
91
92 setup_sched_clock(sa1100_read_sched_clock, 32, 3686400);
93
94 clockevents_calc_mult_shift(&ckevt_sa1100_osmr0, 3686400, 4);
95 ckevt_sa1100_osmr0.max_delta_ns =
96 clockevent_delta2ns(0x7fffffff, &ckevt_sa1100_osmr0);
97 ckevt_sa1100_osmr0.min_delta_ns =
98 clockevent_delta2ns(MIN_OSCR_DELTA * 2, &ckevt_sa1100_osmr0) + 1;
99 ckevt_sa1100_osmr0.cpumask = cpumask_of(0);
100
101 setup_irq(IRQ_OST0, &sa1100_timer_irq);
102
103 clocksource_mmio_init(OSCR, "oscr", CLOCK_TICK_RATE, 200, 32,
104 clocksource_mmio_readl_up);
105 clockevents_register_device(&ckevt_sa1100_osmr0);
106}
107
108#ifdef CONFIG_PM 72#ifdef CONFIG_PM
109unsigned long osmr[4], oier; 73unsigned long osmr[4], oier;
110 74
111static void sa1100_timer_suspend(void) 75static void sa1100_timer_suspend(struct clock_event_device *cedev)
112{ 76{
113 osmr[0] = readl_relaxed(OSMR0); 77 osmr[0] = readl_relaxed(OSMR0);
114 osmr[1] = readl_relaxed(OSMR1); 78 osmr[1] = readl_relaxed(OSMR1);
@@ -117,7 +81,7 @@ static void sa1100_timer_suspend(void)
117 oier = readl_relaxed(OIER); 81 oier = readl_relaxed(OIER);
118} 82}
119 83
120static void sa1100_timer_resume(void) 84static void sa1100_timer_resume(struct clock_event_device *cedev)
121{ 85{
122 writel_relaxed(0x0f, OSSR); 86 writel_relaxed(0x0f, OSSR);
123 writel_relaxed(osmr[0], OSMR0); 87 writel_relaxed(osmr[0], OSMR0);
@@ -136,8 +100,36 @@ static void sa1100_timer_resume(void)
136#define sa1100_timer_resume NULL 100#define sa1100_timer_resume NULL
137#endif 101#endif
138 102
139struct sys_timer sa1100_timer = { 103static struct clock_event_device ckevt_sa1100_osmr0 = {
140 .init = sa1100_timer_init, 104 .name = "osmr0",
105 .features = CLOCK_EVT_FEAT_ONESHOT,
106 .rating = 200,
107 .set_next_event = sa1100_osmr0_set_next_event,
108 .set_mode = sa1100_osmr0_set_mode,
141 .suspend = sa1100_timer_suspend, 109 .suspend = sa1100_timer_suspend,
142 .resume = sa1100_timer_resume, 110 .resume = sa1100_timer_resume,
143}; 111};
112
113static struct irqaction sa1100_timer_irq = {
114 .name = "ost0",
115 .flags = IRQF_DISABLED | IRQF_TIMER | IRQF_IRQPOLL,
116 .handler = sa1100_ost0_interrupt,
117 .dev_id = &ckevt_sa1100_osmr0,
118};
119
120void __init sa1100_timer_init(void)
121{
122 writel_relaxed(0, OIER);
123 writel_relaxed(OSSR_M0 | OSSR_M1 | OSSR_M2 | OSSR_M3, OSSR);
124
125 setup_sched_clock(sa1100_read_sched_clock, 32, 3686400);
126
127 ckevt_sa1100_osmr0.cpumask = cpumask_of(0);
128
129 setup_irq(IRQ_OST0, &sa1100_timer_irq);
130
131 clocksource_mmio_init(OSCR, "oscr", CLOCK_TICK_RATE, 200, 32,
132 clocksource_mmio_readl_up);
133 clockevents_config_and_register(&ckevt_sa1100_osmr0, 3686400,
134 MIN_OSCR_DELTA * 2, 0x7fffffff);
135}