diff options
Diffstat (limited to 'arch/arm/mach-pxa')
55 files changed, 230 insertions, 139 deletions
diff --git a/arch/arm/mach-pxa/balloon3.c b/arch/arm/mach-pxa/balloon3.c index 208229342514..2f71b3fbd319 100644 --- a/arch/arm/mach-pxa/balloon3.c +++ b/arch/arm/mach-pxa/balloon3.c | |||
@@ -822,7 +822,7 @@ MACHINE_START(BALLOON3, "Balloon3") | |||
822 | .nr_irqs = BALLOON3_NR_IRQS, | 822 | .nr_irqs = BALLOON3_NR_IRQS, |
823 | .init_irq = balloon3_init_irq, | 823 | .init_irq = balloon3_init_irq, |
824 | .handle_irq = pxa27x_handle_irq, | 824 | .handle_irq = pxa27x_handle_irq, |
825 | .timer = &pxa_timer, | 825 | .init_time = pxa_timer_init, |
826 | .init_machine = balloon3_init, | 826 | .init_machine = balloon3_init, |
827 | .atag_offset = 0x100, | 827 | .atag_offset = 0x100, |
828 | .restart = pxa_restart, | 828 | .restart = pxa_restart, |
diff --git a/arch/arm/mach-pxa/capc7117.c b/arch/arm/mach-pxa/capc7117.c index 9a8760b72913..c092730749b9 100644 --- a/arch/arm/mach-pxa/capc7117.c +++ b/arch/arm/mach-pxa/capc7117.c | |||
@@ -153,7 +153,7 @@ MACHINE_START(CAPC7117, | |||
153 | .nr_irqs = PXA_NR_IRQS, | 153 | .nr_irqs = PXA_NR_IRQS, |
154 | .init_irq = pxa3xx_init_irq, | 154 | .init_irq = pxa3xx_init_irq, |
155 | .handle_irq = pxa3xx_handle_irq, | 155 | .handle_irq = pxa3xx_handle_irq, |
156 | .timer = &pxa_timer, | 156 | .init_time = pxa_timer_init, |
157 | .init_machine = capc7117_init, | 157 | .init_machine = capc7117_init, |
158 | .restart = pxa_restart, | 158 | .restart = pxa_restart, |
159 | MACHINE_END | 159 | MACHINE_END |
diff --git a/arch/arm/mach-pxa/cm-x2xx.c b/arch/arm/mach-pxa/cm-x2xx.c index a103c8ffea9f..bb99f59a36d8 100644 --- a/arch/arm/mach-pxa/cm-x2xx.c +++ b/arch/arm/mach-pxa/cm-x2xx.c | |||
@@ -520,7 +520,7 @@ MACHINE_START(ARMCORE, "Compulab CM-X2XX") | |||
520 | .init_irq = cmx2xx_init_irq, | 520 | .init_irq = cmx2xx_init_irq, |
521 | /* NOTE: pxa25x_handle_irq() works on PXA27x w/o camera support */ | 521 | /* NOTE: pxa25x_handle_irq() works on PXA27x w/o camera support */ |
522 | .handle_irq = pxa25x_handle_irq, | 522 | .handle_irq = pxa25x_handle_irq, |
523 | .timer = &pxa_timer, | 523 | .init_time = pxa_timer_init, |
524 | .init_machine = cmx2xx_init, | 524 | .init_machine = cmx2xx_init, |
525 | #ifdef CONFIG_PCI | 525 | #ifdef CONFIG_PCI |
526 | .dma_zone_size = SZ_64M, | 526 | .dma_zone_size = SZ_64M, |
diff --git a/arch/arm/mach-pxa/cm-x300.c b/arch/arm/mach-pxa/cm-x300.c index cc2b23afcaaf..8091aac89edf 100644 --- a/arch/arm/mach-pxa/cm-x300.c +++ b/arch/arm/mach-pxa/cm-x300.c | |||
@@ -854,7 +854,7 @@ MACHINE_START(CM_X300, "CM-X300 module") | |||
854 | .nr_irqs = PXA_NR_IRQS, | 854 | .nr_irqs = PXA_NR_IRQS, |
855 | .init_irq = pxa3xx_init_irq, | 855 | .init_irq = pxa3xx_init_irq, |
856 | .handle_irq = pxa3xx_handle_irq, | 856 | .handle_irq = pxa3xx_handle_irq, |
857 | .timer = &pxa_timer, | 857 | .init_time = pxa_timer_init, |
858 | .init_machine = cm_x300_init, | 858 | .init_machine = cm_x300_init, |
859 | .fixup = cm_x300_fixup, | 859 | .fixup = cm_x300_fixup, |
860 | .restart = pxa_restart, | 860 | .restart = pxa_restart, |
diff --git a/arch/arm/mach-pxa/colibri-pxa270.c b/arch/arm/mach-pxa/colibri-pxa270.c index b2f227d36125..5f9d9303b346 100644 --- a/arch/arm/mach-pxa/colibri-pxa270.c +++ b/arch/arm/mach-pxa/colibri-pxa270.c | |||
@@ -313,7 +313,7 @@ MACHINE_START(COLIBRI, "Toradex Colibri PXA270") | |||
313 | .nr_irqs = PXA_NR_IRQS, | 313 | .nr_irqs = PXA_NR_IRQS, |
314 | .init_irq = pxa27x_init_irq, | 314 | .init_irq = pxa27x_init_irq, |
315 | .handle_irq = pxa27x_handle_irq, | 315 | .handle_irq = pxa27x_handle_irq, |
316 | .timer = &pxa_timer, | 316 | .init_time = pxa_timer_init, |
317 | .restart = pxa_restart, | 317 | .restart = pxa_restart, |
318 | MACHINE_END | 318 | MACHINE_END |
319 | 319 | ||
@@ -324,7 +324,7 @@ MACHINE_START(INCOME, "Income s.r.o. SH-Dmaster PXA270 SBC") | |||
324 | .nr_irqs = PXA_NR_IRQS, | 324 | .nr_irqs = PXA_NR_IRQS, |
325 | .init_irq = pxa27x_init_irq, | 325 | .init_irq = pxa27x_init_irq, |
326 | .handle_irq = pxa27x_handle_irq, | 326 | .handle_irq = pxa27x_handle_irq, |
327 | .timer = &pxa_timer, | 327 | .init_time = pxa_timer_init, |
328 | .restart = pxa_restart, | 328 | .restart = pxa_restart, |
329 | MACHINE_END | 329 | MACHINE_END |
330 | 330 | ||
diff --git a/arch/arm/mach-pxa/colibri-pxa300.c b/arch/arm/mach-pxa/colibri-pxa300.c index a9c9c163dd95..f1a1ac1fbd85 100644 --- a/arch/arm/mach-pxa/colibri-pxa300.c +++ b/arch/arm/mach-pxa/colibri-pxa300.c | |||
@@ -189,7 +189,7 @@ MACHINE_START(COLIBRI300, "Toradex Colibri PXA300") | |||
189 | .nr_irqs = PXA_NR_IRQS, | 189 | .nr_irqs = PXA_NR_IRQS, |
190 | .init_irq = pxa3xx_init_irq, | 190 | .init_irq = pxa3xx_init_irq, |
191 | .handle_irq = pxa3xx_handle_irq, | 191 | .handle_irq = pxa3xx_handle_irq, |
192 | .timer = &pxa_timer, | 192 | .init_time = pxa_timer_init, |
193 | .restart = pxa_restart, | 193 | .restart = pxa_restart, |
194 | MACHINE_END | 194 | MACHINE_END |
195 | 195 | ||
diff --git a/arch/arm/mach-pxa/colibri-pxa320.c b/arch/arm/mach-pxa/colibri-pxa320.c index 25515cd7e68f..f6cc8b0ab82f 100644 --- a/arch/arm/mach-pxa/colibri-pxa320.c +++ b/arch/arm/mach-pxa/colibri-pxa320.c | |||
@@ -259,7 +259,7 @@ MACHINE_START(COLIBRI320, "Toradex Colibri PXA320") | |||
259 | .nr_irqs = PXA_NR_IRQS, | 259 | .nr_irqs = PXA_NR_IRQS, |
260 | .init_irq = pxa3xx_init_irq, | 260 | .init_irq = pxa3xx_init_irq, |
261 | .handle_irq = pxa3xx_handle_irq, | 261 | .handle_irq = pxa3xx_handle_irq, |
262 | .timer = &pxa_timer, | 262 | .init_time = pxa_timer_init, |
263 | .restart = pxa_restart, | 263 | .restart = pxa_restart, |
264 | MACHINE_END | 264 | MACHINE_END |
265 | 265 | ||
diff --git a/arch/arm/mach-pxa/corgi.c b/arch/arm/mach-pxa/corgi.c index 7c83f52c549c..a5b8fead7d61 100644 --- a/arch/arm/mach-pxa/corgi.c +++ b/arch/arm/mach-pxa/corgi.c | |||
@@ -733,7 +733,7 @@ MACHINE_START(CORGI, "SHARP Corgi") | |||
733 | .init_irq = pxa25x_init_irq, | 733 | .init_irq = pxa25x_init_irq, |
734 | .handle_irq = pxa25x_handle_irq, | 734 | .handle_irq = pxa25x_handle_irq, |
735 | .init_machine = corgi_init, | 735 | .init_machine = corgi_init, |
736 | .timer = &pxa_timer, | 736 | .init_time = pxa_timer_init, |
737 | .restart = corgi_restart, | 737 | .restart = corgi_restart, |
738 | MACHINE_END | 738 | MACHINE_END |
739 | #endif | 739 | #endif |
@@ -746,7 +746,7 @@ MACHINE_START(SHEPHERD, "SHARP Shepherd") | |||
746 | .init_irq = pxa25x_init_irq, | 746 | .init_irq = pxa25x_init_irq, |
747 | .handle_irq = pxa25x_handle_irq, | 747 | .handle_irq = pxa25x_handle_irq, |
748 | .init_machine = corgi_init, | 748 | .init_machine = corgi_init, |
749 | .timer = &pxa_timer, | 749 | .init_time = pxa_timer_init, |
750 | .restart = corgi_restart, | 750 | .restart = corgi_restart, |
751 | MACHINE_END | 751 | MACHINE_END |
752 | #endif | 752 | #endif |
@@ -759,7 +759,7 @@ MACHINE_START(HUSKY, "SHARP Husky") | |||
759 | .init_irq = pxa25x_init_irq, | 759 | .init_irq = pxa25x_init_irq, |
760 | .handle_irq = pxa25x_handle_irq, | 760 | .handle_irq = pxa25x_handle_irq, |
761 | .init_machine = corgi_init, | 761 | .init_machine = corgi_init, |
762 | .timer = &pxa_timer, | 762 | .init_time = pxa_timer_init, |
763 | .restart = corgi_restart, | 763 | .restart = corgi_restart, |
764 | MACHINE_END | 764 | MACHINE_END |
765 | #endif | 765 | #endif |
diff --git a/arch/arm/mach-pxa/csb726.c b/arch/arm/mach-pxa/csb726.c index 7039f44b3647..fadfff8feaef 100644 --- a/arch/arm/mach-pxa/csb726.c +++ b/arch/arm/mach-pxa/csb726.c | |||
@@ -278,6 +278,6 @@ MACHINE_START(CSB726, "Cogent CSB726") | |||
278 | .init_irq = pxa27x_init_irq, | 278 | .init_irq = pxa27x_init_irq, |
279 | .handle_irq = pxa27x_handle_irq, | 279 | .handle_irq = pxa27x_handle_irq, |
280 | .init_machine = csb726_init, | 280 | .init_machine = csb726_init, |
281 | .timer = &pxa_timer, | 281 | .init_time = pxa_timer_init, |
282 | .restart = pxa_restart, | 282 | .restart = pxa_restart, |
283 | MACHINE_END | 283 | MACHINE_END |
diff --git a/arch/arm/mach-pxa/em-x270.c b/arch/arm/mach-pxa/em-x270.c index 1b6411439ec8..446563a7d1ad 100644 --- a/arch/arm/mach-pxa/em-x270.c +++ b/arch/arm/mach-pxa/em-x270.c | |||
@@ -1298,7 +1298,7 @@ MACHINE_START(EM_X270, "Compulab EM-X270") | |||
1298 | .nr_irqs = PXA_NR_IRQS, | 1298 | .nr_irqs = PXA_NR_IRQS, |
1299 | .init_irq = pxa27x_init_irq, | 1299 | .init_irq = pxa27x_init_irq, |
1300 | .handle_irq = pxa27x_handle_irq, | 1300 | .handle_irq = pxa27x_handle_irq, |
1301 | .timer = &pxa_timer, | 1301 | .init_time = pxa_timer_init, |
1302 | .init_machine = em_x270_init, | 1302 | .init_machine = em_x270_init, |
1303 | .restart = pxa_restart, | 1303 | .restart = pxa_restart, |
1304 | MACHINE_END | 1304 | MACHINE_END |
@@ -1309,7 +1309,7 @@ MACHINE_START(EXEDA, "Compulab eXeda") | |||
1309 | .nr_irqs = PXA_NR_IRQS, | 1309 | .nr_irqs = PXA_NR_IRQS, |
1310 | .init_irq = pxa27x_init_irq, | 1310 | .init_irq = pxa27x_init_irq, |
1311 | .handle_irq = pxa27x_handle_irq, | 1311 | .handle_irq = pxa27x_handle_irq, |
1312 | .timer = &pxa_timer, | 1312 | .init_time = pxa_timer_init, |
1313 | .init_machine = em_x270_init, | 1313 | .init_machine = em_x270_init, |
1314 | .restart = pxa_restart, | 1314 | .restart = pxa_restart, |
1315 | MACHINE_END | 1315 | MACHINE_END |
diff --git a/arch/arm/mach-pxa/eseries.c b/arch/arm/mach-pxa/eseries.c index be2ee9bf5c6e..8280ebcaab9f 100644 --- a/arch/arm/mach-pxa/eseries.c +++ b/arch/arm/mach-pxa/eseries.c | |||
@@ -195,7 +195,7 @@ MACHINE_START(E330, "Toshiba e330") | |||
195 | .handle_irq = pxa25x_handle_irq, | 195 | .handle_irq = pxa25x_handle_irq, |
196 | .fixup = eseries_fixup, | 196 | .fixup = eseries_fixup, |
197 | .init_machine = e330_init, | 197 | .init_machine = e330_init, |
198 | .timer = &pxa_timer, | 198 | .init_time = pxa_timer_init, |
199 | .restart = pxa_restart, | 199 | .restart = pxa_restart, |
200 | MACHINE_END | 200 | MACHINE_END |
201 | #endif | 201 | #endif |
@@ -246,7 +246,7 @@ MACHINE_START(E350, "Toshiba e350") | |||
246 | .handle_irq = pxa25x_handle_irq, | 246 | .handle_irq = pxa25x_handle_irq, |
247 | .fixup = eseries_fixup, | 247 | .fixup = eseries_fixup, |
248 | .init_machine = e350_init, | 248 | .init_machine = e350_init, |
249 | .timer = &pxa_timer, | 249 | .init_time = pxa_timer_init, |
250 | .restart = pxa_restart, | 250 | .restart = pxa_restart, |
251 | MACHINE_END | 251 | MACHINE_END |
252 | #endif | 252 | #endif |
@@ -370,7 +370,7 @@ MACHINE_START(E400, "Toshiba e400") | |||
370 | .handle_irq = pxa25x_handle_irq, | 370 | .handle_irq = pxa25x_handle_irq, |
371 | .fixup = eseries_fixup, | 371 | .fixup = eseries_fixup, |
372 | .init_machine = e400_init, | 372 | .init_machine = e400_init, |
373 | .timer = &pxa_timer, | 373 | .init_time = pxa_timer_init, |
374 | .restart = pxa_restart, | 374 | .restart = pxa_restart, |
375 | MACHINE_END | 375 | MACHINE_END |
376 | #endif | 376 | #endif |
@@ -566,7 +566,7 @@ MACHINE_START(E740, "Toshiba e740") | |||
566 | .handle_irq = pxa25x_handle_irq, | 566 | .handle_irq = pxa25x_handle_irq, |
567 | .fixup = eseries_fixup, | 567 | .fixup = eseries_fixup, |
568 | .init_machine = e740_init, | 568 | .init_machine = e740_init, |
569 | .timer = &pxa_timer, | 569 | .init_time = pxa_timer_init, |
570 | .restart = pxa_restart, | 570 | .restart = pxa_restart, |
571 | MACHINE_END | 571 | MACHINE_END |
572 | #endif | 572 | #endif |
@@ -765,7 +765,7 @@ MACHINE_START(E750, "Toshiba e750") | |||
765 | .handle_irq = pxa25x_handle_irq, | 765 | .handle_irq = pxa25x_handle_irq, |
766 | .fixup = eseries_fixup, | 766 | .fixup = eseries_fixup, |
767 | .init_machine = e750_init, | 767 | .init_machine = e750_init, |
768 | .timer = &pxa_timer, | 768 | .init_time = pxa_timer_init, |
769 | .restart = pxa_restart, | 769 | .restart = pxa_restart, |
770 | MACHINE_END | 770 | MACHINE_END |
771 | #endif | 771 | #endif |
@@ -977,7 +977,7 @@ MACHINE_START(E800, "Toshiba e800") | |||
977 | .handle_irq = pxa25x_handle_irq, | 977 | .handle_irq = pxa25x_handle_irq, |
978 | .fixup = eseries_fixup, | 978 | .fixup = eseries_fixup, |
979 | .init_machine = e800_init, | 979 | .init_machine = e800_init, |
980 | .timer = &pxa_timer, | 980 | .init_time = pxa_timer_init, |
981 | .restart = pxa_restart, | 981 | .restart = pxa_restart, |
982 | MACHINE_END | 982 | MACHINE_END |
983 | #endif | 983 | #endif |
diff --git a/arch/arm/mach-pxa/ezx.c b/arch/arm/mach-pxa/ezx.c index dc58fa0edb66..dca10709be8f 100644 --- a/arch/arm/mach-pxa/ezx.c +++ b/arch/arm/mach-pxa/ezx.c | |||
@@ -802,7 +802,7 @@ MACHINE_START(EZX_A780, "Motorola EZX A780") | |||
802 | .nr_irqs = EZX_NR_IRQS, | 802 | .nr_irqs = EZX_NR_IRQS, |
803 | .init_irq = pxa27x_init_irq, | 803 | .init_irq = pxa27x_init_irq, |
804 | .handle_irq = pxa27x_handle_irq, | 804 | .handle_irq = pxa27x_handle_irq, |
805 | .timer = &pxa_timer, | 805 | .init_time = pxa_timer_init, |
806 | .init_machine = a780_init, | 806 | .init_machine = a780_init, |
807 | .restart = pxa_restart, | 807 | .restart = pxa_restart, |
808 | MACHINE_END | 808 | MACHINE_END |
@@ -869,7 +869,7 @@ MACHINE_START(EZX_E680, "Motorola EZX E680") | |||
869 | .nr_irqs = EZX_NR_IRQS, | 869 | .nr_irqs = EZX_NR_IRQS, |
870 | .init_irq = pxa27x_init_irq, | 870 | .init_irq = pxa27x_init_irq, |
871 | .handle_irq = pxa27x_handle_irq, | 871 | .handle_irq = pxa27x_handle_irq, |
872 | .timer = &pxa_timer, | 872 | .init_time = pxa_timer_init, |
873 | .init_machine = e680_init, | 873 | .init_machine = e680_init, |
874 | .restart = pxa_restart, | 874 | .restart = pxa_restart, |
875 | MACHINE_END | 875 | MACHINE_END |
@@ -936,7 +936,7 @@ MACHINE_START(EZX_A1200, "Motorola EZX A1200") | |||
936 | .nr_irqs = EZX_NR_IRQS, | 936 | .nr_irqs = EZX_NR_IRQS, |
937 | .init_irq = pxa27x_init_irq, | 937 | .init_irq = pxa27x_init_irq, |
938 | .handle_irq = pxa27x_handle_irq, | 938 | .handle_irq = pxa27x_handle_irq, |
939 | .timer = &pxa_timer, | 939 | .init_time = pxa_timer_init, |
940 | .init_machine = a1200_init, | 940 | .init_machine = a1200_init, |
941 | .restart = pxa_restart, | 941 | .restart = pxa_restart, |
942 | MACHINE_END | 942 | MACHINE_END |
@@ -1128,7 +1128,7 @@ MACHINE_START(EZX_A910, "Motorola EZX A910") | |||
1128 | .nr_irqs = EZX_NR_IRQS, | 1128 | .nr_irqs = EZX_NR_IRQS, |
1129 | .init_irq = pxa27x_init_irq, | 1129 | .init_irq = pxa27x_init_irq, |
1130 | .handle_irq = pxa27x_handle_irq, | 1130 | .handle_irq = pxa27x_handle_irq, |
1131 | .timer = &pxa_timer, | 1131 | .init_time = pxa_timer_init, |
1132 | .init_machine = a910_init, | 1132 | .init_machine = a910_init, |
1133 | .restart = pxa_restart, | 1133 | .restart = pxa_restart, |
1134 | MACHINE_END | 1134 | MACHINE_END |
@@ -1195,7 +1195,7 @@ MACHINE_START(EZX_E6, "Motorola EZX E6") | |||
1195 | .nr_irqs = EZX_NR_IRQS, | 1195 | .nr_irqs = EZX_NR_IRQS, |
1196 | .init_irq = pxa27x_init_irq, | 1196 | .init_irq = pxa27x_init_irq, |
1197 | .handle_irq = pxa27x_handle_irq, | 1197 | .handle_irq = pxa27x_handle_irq, |
1198 | .timer = &pxa_timer, | 1198 | .init_time = pxa_timer_init, |
1199 | .init_machine = e6_init, | 1199 | .init_machine = e6_init, |
1200 | .restart = pxa_restart, | 1200 | .restart = pxa_restart, |
1201 | MACHINE_END | 1201 | MACHINE_END |
@@ -1236,7 +1236,7 @@ MACHINE_START(EZX_E2, "Motorola EZX E2") | |||
1236 | .nr_irqs = EZX_NR_IRQS, | 1236 | .nr_irqs = EZX_NR_IRQS, |
1237 | .init_irq = pxa27x_init_irq, | 1237 | .init_irq = pxa27x_init_irq, |
1238 | .handle_irq = pxa27x_handle_irq, | 1238 | .handle_irq = pxa27x_handle_irq, |
1239 | .timer = &pxa_timer, | 1239 | .init_time = pxa_timer_init, |
1240 | .init_machine = e2_init, | 1240 | .init_machine = e2_init, |
1241 | .restart = pxa_restart, | 1241 | .restart = pxa_restart, |
1242 | MACHINE_END | 1242 | MACHINE_END |
diff --git a/arch/arm/mach-pxa/generic.h b/arch/arm/mach-pxa/generic.h index 42d5cca66257..fd7ea39b78c0 100644 --- a/arch/arm/mach-pxa/generic.h +++ b/arch/arm/mach-pxa/generic.h | |||
@@ -10,9 +10,8 @@ | |||
10 | */ | 10 | */ |
11 | 11 | ||
12 | struct irq_data; | 12 | struct irq_data; |
13 | struct sys_timer; | ||
14 | 13 | ||
15 | extern struct sys_timer pxa_timer; | 14 | extern void pxa_timer_init(void); |
16 | 15 | ||
17 | extern void __init pxa_map_io(void); | 16 | extern void __init pxa_map_io(void); |
18 | 17 | ||
diff --git a/arch/arm/mach-pxa/gumstix.c b/arch/arm/mach-pxa/gumstix.c index 60755a6bb1c6..00b92dad7b81 100644 --- a/arch/arm/mach-pxa/gumstix.c +++ b/arch/arm/mach-pxa/gumstix.c | |||
@@ -238,7 +238,7 @@ MACHINE_START(GUMSTIX, "Gumstix") | |||
238 | .nr_irqs = PXA_NR_IRQS, | 238 | .nr_irqs = PXA_NR_IRQS, |
239 | .init_irq = pxa25x_init_irq, | 239 | .init_irq = pxa25x_init_irq, |
240 | .handle_irq = pxa25x_handle_irq, | 240 | .handle_irq = pxa25x_handle_irq, |
241 | .timer = &pxa_timer, | 241 | .init_time = pxa_timer_init, |
242 | .init_machine = gumstix_init, | 242 | .init_machine = gumstix_init, |
243 | .restart = pxa_restart, | 243 | .restart = pxa_restart, |
244 | MACHINE_END | 244 | MACHINE_END |
diff --git a/arch/arm/mach-pxa/h5000.c b/arch/arm/mach-pxa/h5000.c index e7dec589f014..875ec3351499 100644 --- a/arch/arm/mach-pxa/h5000.c +++ b/arch/arm/mach-pxa/h5000.c | |||
@@ -208,7 +208,7 @@ MACHINE_START(H5400, "HP iPAQ H5000") | |||
208 | .nr_irqs = PXA_NR_IRQS, | 208 | .nr_irqs = PXA_NR_IRQS, |
209 | .init_irq = pxa25x_init_irq, | 209 | .init_irq = pxa25x_init_irq, |
210 | .handle_irq = pxa25x_handle_irq, | 210 | .handle_irq = pxa25x_handle_irq, |
211 | .timer = &pxa_timer, | 211 | .init_time = pxa_timer_init, |
212 | .init_machine = h5000_init, | 212 | .init_machine = h5000_init, |
213 | .restart = pxa_restart, | 213 | .restart = pxa_restart, |
214 | MACHINE_END | 214 | MACHINE_END |
diff --git a/arch/arm/mach-pxa/himalaya.c b/arch/arm/mach-pxa/himalaya.c index 2962de898da9..7a8d749a07b8 100644 --- a/arch/arm/mach-pxa/himalaya.c +++ b/arch/arm/mach-pxa/himalaya.c | |||
@@ -164,6 +164,6 @@ MACHINE_START(HIMALAYA, "HTC Himalaya") | |||
164 | .init_irq = pxa25x_init_irq, | 164 | .init_irq = pxa25x_init_irq, |
165 | .handle_irq = pxa25x_handle_irq, | 165 | .handle_irq = pxa25x_handle_irq, |
166 | .init_machine = himalaya_init, | 166 | .init_machine = himalaya_init, |
167 | .timer = &pxa_timer, | 167 | .init_time = pxa_timer_init, |
168 | .restart = pxa_restart, | 168 | .restart = pxa_restart, |
169 | MACHINE_END | 169 | MACHINE_END |
diff --git a/arch/arm/mach-pxa/hx4700.c b/arch/arm/mach-pxa/hx4700.c index e2c6391863fe..133109ec7332 100644 --- a/arch/arm/mach-pxa/hx4700.c +++ b/arch/arm/mach-pxa/hx4700.c | |||
@@ -900,6 +900,6 @@ MACHINE_START(H4700, "HP iPAQ HX4700") | |||
900 | .init_irq = pxa27x_init_irq, | 900 | .init_irq = pxa27x_init_irq, |
901 | .handle_irq = pxa27x_handle_irq, | 901 | .handle_irq = pxa27x_handle_irq, |
902 | .init_machine = hx4700_init, | 902 | .init_machine = hx4700_init, |
903 | .timer = &pxa_timer, | 903 | .init_time = pxa_timer_init, |
904 | .restart = pxa_restart, | 904 | .restart = pxa_restart, |
905 | MACHINE_END | 905 | MACHINE_END |
diff --git a/arch/arm/mach-pxa/icontrol.c b/arch/arm/mach-pxa/icontrol.c index 1d02eabc9c65..fe31bfcbb8df 100644 --- a/arch/arm/mach-pxa/icontrol.c +++ b/arch/arm/mach-pxa/icontrol.c | |||
@@ -196,7 +196,7 @@ MACHINE_START(ICONTROL, "iControl/SafeTcam boards using Embedian MXM-8x10 CoM") | |||
196 | .nr_irqs = PXA_NR_IRQS, | 196 | .nr_irqs = PXA_NR_IRQS, |
197 | .init_irq = pxa3xx_init_irq, | 197 | .init_irq = pxa3xx_init_irq, |
198 | .handle_irq = pxa3xx_handle_irq, | 198 | .handle_irq = pxa3xx_handle_irq, |
199 | .timer = &pxa_timer, | 199 | .init_time = pxa_timer_init, |
200 | .init_machine = icontrol_init, | 200 | .init_machine = icontrol_init, |
201 | .restart = pxa_restart, | 201 | .restart = pxa_restart, |
202 | MACHINE_END | 202 | MACHINE_END |
diff --git a/arch/arm/mach-pxa/idp.c b/arch/arm/mach-pxa/idp.c index 64507cdd2e8f..343c4e3a7c5d 100644 --- a/arch/arm/mach-pxa/idp.c +++ b/arch/arm/mach-pxa/idp.c | |||
@@ -279,7 +279,7 @@ MACHINE_START(PXA_IDP, "Vibren PXA255 IDP") | |||
279 | .nr_irqs = PXA_NR_IRQS, | 279 | .nr_irqs = PXA_NR_IRQS, |
280 | .init_irq = pxa25x_init_irq, | 280 | .init_irq = pxa25x_init_irq, |
281 | .handle_irq = pxa25x_handle_irq, | 281 | .handle_irq = pxa25x_handle_irq, |
282 | .timer = &pxa_timer, | 282 | .init_time = pxa_timer_init, |
283 | .init_machine = idp_init, | 283 | .init_machine = idp_init, |
284 | .restart = pxa_restart, | 284 | .restart = pxa_restart, |
285 | MACHINE_END | 285 | MACHINE_END |
diff --git a/arch/arm/mach-pxa/include/mach/palmtreo.h b/arch/arm/mach-pxa/include/mach/palmtreo.h index 2d3f14e3be29..714b6574393e 100644 --- a/arch/arm/mach-pxa/include/mach/palmtreo.h +++ b/arch/arm/mach-pxa/include/mach/palmtreo.h | |||
@@ -38,13 +38,14 @@ | |||
38 | #define GPIO_NR_TREO_LCD_POWER 25 | 38 | #define GPIO_NR_TREO_LCD_POWER 25 |
39 | 39 | ||
40 | /* Treo680 specific GPIOs */ | 40 | /* Treo680 specific GPIOs */ |
41 | #ifdef CONFIG_MACH_TREO680 | ||
42 | #define GPIO_NR_TREO680_SD_READONLY 33 | 41 | #define GPIO_NR_TREO680_SD_READONLY 33 |
43 | #define GPIO_NR_TREO680_SD_POWER 42 | 42 | #define GPIO_NR_TREO680_SD_POWER 42 |
44 | #define GPIO_NR_TREO680_VIBRATE_EN 44 | 43 | #define GPIO_NR_TREO680_VIBRATE_EN 44 |
45 | #define GPIO_NR_TREO680_KEYB_BL 24 | 44 | #define GPIO_NR_TREO680_KEYB_BL 24 |
46 | #define GPIO_NR_TREO680_BT_EN 43 | 45 | #define GPIO_NR_TREO680_BT_EN 43 |
47 | #endif /* CONFIG_MACH_TREO680 */ | 46 | #define GPIO_NR_TREO680_LCD_POWER 77 |
47 | #define GPIO_NR_TREO680_LCD_EN 86 | ||
48 | #define GPIO_NR_TREO680_LCD_EN_N 25 | ||
48 | 49 | ||
49 | /* Centro685 specific GPIOs */ | 50 | /* Centro685 specific GPIOs */ |
50 | #define GPIO_NR_CENTRO_SD_POWER 21 | 51 | #define GPIO_NR_CENTRO_SD_POWER 21 |
diff --git a/arch/arm/mach-pxa/include/mach/smemc.h b/arch/arm/mach-pxa/include/mach/smemc.h index b7de471b273a..b802f285fe00 100644 --- a/arch/arm/mach-pxa/include/mach/smemc.h +++ b/arch/arm/mach-pxa/include/mach/smemc.h | |||
@@ -37,6 +37,7 @@ | |||
37 | #define CSADRCFG1 (SMEMC_VIRT + 0x84) /* Address Configuration Register for CS1 */ | 37 | #define CSADRCFG1 (SMEMC_VIRT + 0x84) /* Address Configuration Register for CS1 */ |
38 | #define CSADRCFG2 (SMEMC_VIRT + 0x88) /* Address Configuration Register for CS2 */ | 38 | #define CSADRCFG2 (SMEMC_VIRT + 0x88) /* Address Configuration Register for CS2 */ |
39 | #define CSADRCFG3 (SMEMC_VIRT + 0x8C) /* Address Configuration Register for CS3 */ | 39 | #define CSADRCFG3 (SMEMC_VIRT + 0x8C) /* Address Configuration Register for CS3 */ |
40 | #define CSMSADRCFG (SMEMC_VIRT + 0xA0) /* Chip Select Configuration Register */ | ||
40 | 41 | ||
41 | /* | 42 | /* |
42 | * More handy macros for PCMCIA | 43 | * More handy macros for PCMCIA |
diff --git a/arch/arm/mach-pxa/include/mach/uncompress.h b/arch/arm/mach-pxa/include/mach/uncompress.h index 5519a34b667f..8c27757e68ff 100644 --- a/arch/arm/mach-pxa/include/mach/uncompress.h +++ b/arch/arm/mach-pxa/include/mach/uncompress.h | |||
@@ -72,8 +72,3 @@ static inline void arch_decomp_setup(void) | |||
72 | uart_is_pxa = 0; | 72 | uart_is_pxa = 0; |
73 | } | 73 | } |
74 | } | 74 | } |
75 | |||
76 | /* | ||
77 | * nothing to do | ||
78 | */ | ||
79 | #define arch_decomp_wdog() | ||
diff --git a/arch/arm/mach-pxa/littleton.c b/arch/arm/mach-pxa/littleton.c index 402874f9021f..e848c4607baf 100644 --- a/arch/arm/mach-pxa/littleton.c +++ b/arch/arm/mach-pxa/littleton.c | |||
@@ -443,7 +443,7 @@ MACHINE_START(LITTLETON, "Marvell Form Factor Development Platform (aka Littleto | |||
443 | .nr_irqs = LITTLETON_NR_IRQS, | 443 | .nr_irqs = LITTLETON_NR_IRQS, |
444 | .init_irq = pxa3xx_init_irq, | 444 | .init_irq = pxa3xx_init_irq, |
445 | .handle_irq = pxa3xx_handle_irq, | 445 | .handle_irq = pxa3xx_handle_irq, |
446 | .timer = &pxa_timer, | 446 | .init_time = pxa_timer_init, |
447 | .init_machine = littleton_init, | 447 | .init_machine = littleton_init, |
448 | .restart = pxa_restart, | 448 | .restart = pxa_restart, |
449 | MACHINE_END | 449 | MACHINE_END |
diff --git a/arch/arm/mach-pxa/lpd270.c b/arch/arm/mach-pxa/lpd270.c index 1a63eaa89867..1255ee00f3d1 100644 --- a/arch/arm/mach-pxa/lpd270.c +++ b/arch/arm/mach-pxa/lpd270.c | |||
@@ -503,7 +503,7 @@ MACHINE_START(LOGICPD_PXA270, "LogicPD PXA270 Card Engine") | |||
503 | .nr_irqs = LPD270_NR_IRQS, | 503 | .nr_irqs = LPD270_NR_IRQS, |
504 | .init_irq = lpd270_init_irq, | 504 | .init_irq = lpd270_init_irq, |
505 | .handle_irq = pxa27x_handle_irq, | 505 | .handle_irq = pxa27x_handle_irq, |
506 | .timer = &pxa_timer, | 506 | .init_time = pxa_timer_init, |
507 | .init_machine = lpd270_init, | 507 | .init_machine = lpd270_init, |
508 | .restart = pxa_restart, | 508 | .restart = pxa_restart, |
509 | MACHINE_END | 509 | MACHINE_END |
diff --git a/arch/arm/mach-pxa/lubbock.c b/arch/arm/mach-pxa/lubbock.c index 553056d9a3c5..d8a1be619f21 100644 --- a/arch/arm/mach-pxa/lubbock.c +++ b/arch/arm/mach-pxa/lubbock.c | |||
@@ -650,7 +650,7 @@ MACHINE_START(LUBBOCK, "Intel DBPXA250 Development Platform (aka Lubbock)") | |||
650 | .nr_irqs = LUBBOCK_NR_IRQS, | 650 | .nr_irqs = LUBBOCK_NR_IRQS, |
651 | .init_irq = lubbock_init_irq, | 651 | .init_irq = lubbock_init_irq, |
652 | .handle_irq = pxa25x_handle_irq, | 652 | .handle_irq = pxa25x_handle_irq, |
653 | .timer = &pxa_timer, | 653 | .init_time = pxa_timer_init, |
654 | .init_machine = lubbock_init, | 654 | .init_machine = lubbock_init, |
655 | .restart = pxa_restart, | 655 | .restart = pxa_restart, |
656 | MACHINE_END | 656 | MACHINE_END |
diff --git a/arch/arm/mach-pxa/magician.c b/arch/arm/mach-pxa/magician.c index f7922404d941..f44532fc648b 100644 --- a/arch/arm/mach-pxa/magician.c +++ b/arch/arm/mach-pxa/magician.c | |||
@@ -774,6 +774,6 @@ MACHINE_START(MAGICIAN, "HTC Magician") | |||
774 | .init_irq = pxa27x_init_irq, | 774 | .init_irq = pxa27x_init_irq, |
775 | .handle_irq = pxa27x_handle_irq, | 775 | .handle_irq = pxa27x_handle_irq, |
776 | .init_machine = magician_init, | 776 | .init_machine = magician_init, |
777 | .timer = &pxa_timer, | 777 | .init_time = pxa_timer_init, |
778 | .restart = pxa_restart, | 778 | .restart = pxa_restart, |
779 | MACHINE_END | 779 | MACHINE_END |
diff --git a/arch/arm/mach-pxa/mainstone.c b/arch/arm/mach-pxa/mainstone.c index f27a61ee7ac7..7a12c1ba90ff 100644 --- a/arch/arm/mach-pxa/mainstone.c +++ b/arch/arm/mach-pxa/mainstone.c | |||
@@ -714,7 +714,7 @@ MACHINE_START(MAINSTONE, "Intel HCDDBBVA0 Development Platform (aka Mainstone)") | |||
714 | .nr_irqs = MAINSTONE_NR_IRQS, | 714 | .nr_irqs = MAINSTONE_NR_IRQS, |
715 | .init_irq = mainstone_init_irq, | 715 | .init_irq = mainstone_init_irq, |
716 | .handle_irq = pxa27x_handle_irq, | 716 | .handle_irq = pxa27x_handle_irq, |
717 | .timer = &pxa_timer, | 717 | .init_time = pxa_timer_init, |
718 | .init_machine = mainstone_init, | 718 | .init_machine = mainstone_init, |
719 | .restart = pxa_restart, | 719 | .restart = pxa_restart, |
720 | MACHINE_END | 720 | MACHINE_END |
diff --git a/arch/arm/mach-pxa/mioa701.c b/arch/arm/mach-pxa/mioa701.c index 2831308dba68..f8979b943cbf 100644 --- a/arch/arm/mach-pxa/mioa701.c +++ b/arch/arm/mach-pxa/mioa701.c | |||
@@ -762,6 +762,6 @@ MACHINE_START(MIOA701, "MIO A701") | |||
762 | .init_irq = &pxa27x_init_irq, | 762 | .init_irq = &pxa27x_init_irq, |
763 | .handle_irq = &pxa27x_handle_irq, | 763 | .handle_irq = &pxa27x_handle_irq, |
764 | .init_machine = mioa701_machine_init, | 764 | .init_machine = mioa701_machine_init, |
765 | .timer = &pxa_timer, | 765 | .init_time = pxa_timer_init, |
766 | .restart = mioa701_restart, | 766 | .restart = mioa701_restart, |
767 | MACHINE_END | 767 | MACHINE_END |
diff --git a/arch/arm/mach-pxa/mp900.c b/arch/arm/mach-pxa/mp900.c index 152efbf093f6..854f1f562d6b 100644 --- a/arch/arm/mach-pxa/mp900.c +++ b/arch/arm/mach-pxa/mp900.c | |||
@@ -93,7 +93,7 @@ static void __init mp900c_init(void) | |||
93 | /* Maintainer - Michael Petchkovsky <mkpetch@internode.on.net> */ | 93 | /* Maintainer - Michael Petchkovsky <mkpetch@internode.on.net> */ |
94 | MACHINE_START(NEC_MP900, "MobilePro900/C") | 94 | MACHINE_START(NEC_MP900, "MobilePro900/C") |
95 | .atag_offset = 0x220100, | 95 | .atag_offset = 0x220100, |
96 | .timer = &pxa_timer, | 96 | .init_time = pxa_timer_init, |
97 | .map_io = pxa25x_map_io, | 97 | .map_io = pxa25x_map_io, |
98 | .nr_irqs = PXA_NR_IRQS, | 98 | .nr_irqs = PXA_NR_IRQS, |
99 | .init_irq = pxa25x_init_irq, | 99 | .init_irq = pxa25x_init_irq, |
diff --git a/arch/arm/mach-pxa/palmld.c b/arch/arm/mach-pxa/palmld.c index 8bcc96e3b0db..909b713e5789 100644 --- a/arch/arm/mach-pxa/palmld.c +++ b/arch/arm/mach-pxa/palmld.c | |||
@@ -347,7 +347,7 @@ MACHINE_START(PALMLD, "Palm LifeDrive") | |||
347 | .nr_irqs = PXA_NR_IRQS, | 347 | .nr_irqs = PXA_NR_IRQS, |
348 | .init_irq = pxa27x_init_irq, | 348 | .init_irq = pxa27x_init_irq, |
349 | .handle_irq = pxa27x_handle_irq, | 349 | .handle_irq = pxa27x_handle_irq, |
350 | .timer = &pxa_timer, | 350 | .init_time = pxa_timer_init, |
351 | .init_machine = palmld_init, | 351 | .init_machine = palmld_init, |
352 | .restart = pxa_restart, | 352 | .restart = pxa_restart, |
353 | MACHINE_END | 353 | MACHINE_END |
diff --git a/arch/arm/mach-pxa/palmt5.c b/arch/arm/mach-pxa/palmt5.c index 5ca7b904a30e..5033fd07968f 100644 --- a/arch/arm/mach-pxa/palmt5.c +++ b/arch/arm/mach-pxa/palmt5.c | |||
@@ -208,7 +208,7 @@ MACHINE_START(PALMT5, "Palm Tungsten|T5") | |||
208 | .nr_irqs = PXA_NR_IRQS, | 208 | .nr_irqs = PXA_NR_IRQS, |
209 | .init_irq = pxa27x_init_irq, | 209 | .init_irq = pxa27x_init_irq, |
210 | .handle_irq = pxa27x_handle_irq, | 210 | .handle_irq = pxa27x_handle_irq, |
211 | .timer = &pxa_timer, | 211 | .init_time = pxa_timer_init, |
212 | .init_machine = palmt5_init, | 212 | .init_machine = palmt5_init, |
213 | .restart = pxa_restart, | 213 | .restart = pxa_restart, |
214 | MACHINE_END | 214 | MACHINE_END |
diff --git a/arch/arm/mach-pxa/palmtc.c b/arch/arm/mach-pxa/palmtc.c index ca924cfedfc0..100b176f7e88 100644 --- a/arch/arm/mach-pxa/palmtc.c +++ b/arch/arm/mach-pxa/palmtc.c | |||
@@ -542,7 +542,7 @@ MACHINE_START(PALMTC, "Palm Tungsten|C") | |||
542 | .nr_irqs = PXA_NR_IRQS, | 542 | .nr_irqs = PXA_NR_IRQS, |
543 | .init_irq = pxa25x_init_irq, | 543 | .init_irq = pxa25x_init_irq, |
544 | .handle_irq = pxa25x_handle_irq, | 544 | .handle_irq = pxa25x_handle_irq, |
545 | .timer = &pxa_timer, | 545 | .init_time = pxa_timer_init, |
546 | .init_machine = palmtc_init, | 546 | .init_machine = palmtc_init, |
547 | .restart = pxa_restart, | 547 | .restart = pxa_restart, |
548 | MACHINE_END | 548 | MACHINE_END |
diff --git a/arch/arm/mach-pxa/palmte2.c b/arch/arm/mach-pxa/palmte2.c index 32e0d7998355..0742721ced2d 100644 --- a/arch/arm/mach-pxa/palmte2.c +++ b/arch/arm/mach-pxa/palmte2.c | |||
@@ -363,7 +363,7 @@ MACHINE_START(PALMTE2, "Palm Tungsten|E2") | |||
363 | .nr_irqs = PXA_NR_IRQS, | 363 | .nr_irqs = PXA_NR_IRQS, |
364 | .init_irq = pxa25x_init_irq, | 364 | .init_irq = pxa25x_init_irq, |
365 | .handle_irq = pxa25x_handle_irq, | 365 | .handle_irq = pxa25x_handle_irq, |
366 | .timer = &pxa_timer, | 366 | .init_time = pxa_timer_init, |
367 | .init_machine = palmte2_init, | 367 | .init_machine = palmte2_init, |
368 | .restart = pxa_restart, | 368 | .restart = pxa_restart, |
369 | MACHINE_END | 369 | MACHINE_END |
diff --git a/arch/arm/mach-pxa/palmtreo.c b/arch/arm/mach-pxa/palmtreo.c index 3f3c48f2f7ce..d82a50b4a803 100644 --- a/arch/arm/mach-pxa/palmtreo.c +++ b/arch/arm/mach-pxa/palmtreo.c | |||
@@ -98,9 +98,6 @@ static unsigned long treo_pin_config[] __initdata = { | |||
98 | GPIO96_KP_MKOUT_6, | 98 | GPIO96_KP_MKOUT_6, |
99 | GPIO93_KP_DKIN_0 | WAKEUP_ON_LEVEL_HIGH, /* Hotsync button */ | 99 | GPIO93_KP_DKIN_0 | WAKEUP_ON_LEVEL_HIGH, /* Hotsync button */ |
100 | 100 | ||
101 | /* LCD */ | ||
102 | GPIOxx_LCD_TFT_16BPP, | ||
103 | |||
104 | /* Quick Capture Interface */ | 101 | /* Quick Capture Interface */ |
105 | GPIO84_CIF_FV, | 102 | GPIO84_CIF_FV, |
106 | GPIO85_CIF_LV, | 103 | GPIO85_CIF_LV, |
@@ -140,6 +137,12 @@ static unsigned long treo680_pin_config[] __initdata = { | |||
140 | /* MATRIX KEYPAD - different wake up source */ | 137 | /* MATRIX KEYPAD - different wake up source */ |
141 | GPIO100_KP_MKIN_0 | WAKEUP_ON_LEVEL_HIGH, | 138 | GPIO100_KP_MKIN_0 | WAKEUP_ON_LEVEL_HIGH, |
142 | GPIO99_KP_MKIN_5, | 139 | GPIO99_KP_MKIN_5, |
140 | |||
141 | /* LCD... L_BIAS alt fn not configured on Treo680; is GPIO instead */ | ||
142 | GPIOxx_LCD_16BPP, | ||
143 | GPIO74_LCD_FCLK, | ||
144 | GPIO75_LCD_LCLK, | ||
145 | GPIO76_LCD_PCLK, | ||
143 | }; | 146 | }; |
144 | #endif /* CONFIG_MACH_TREO680 */ | 147 | #endif /* CONFIG_MACH_TREO680 */ |
145 | 148 | ||
@@ -155,13 +158,16 @@ static unsigned long centro685_pin_config[] __initdata = { | |||
155 | /* MATRIX KEYPAD - different wake up source */ | 158 | /* MATRIX KEYPAD - different wake up source */ |
156 | GPIO100_KP_MKIN_0, | 159 | GPIO100_KP_MKIN_0, |
157 | GPIO99_KP_MKIN_5 | WAKEUP_ON_LEVEL_HIGH, | 160 | GPIO99_KP_MKIN_5 | WAKEUP_ON_LEVEL_HIGH, |
161 | |||
162 | /* LCD */ | ||
163 | GPIOxx_LCD_TFT_16BPP, | ||
158 | }; | 164 | }; |
159 | #endif /* CONFIG_MACH_CENTRO */ | 165 | #endif /* CONFIG_MACH_CENTRO */ |
160 | 166 | ||
161 | /****************************************************************************** | 167 | /****************************************************************************** |
162 | * GPIO keyboard | 168 | * GPIO keyboard |
163 | ******************************************************************************/ | 169 | ******************************************************************************/ |
164 | #if defined(CONFIG_KEYBOARD_PXA27x) || defined(CONFIG_KEYBOARD_PXA27x_MODULE) | 170 | #if IS_ENABLED(CONFIG_KEYBOARD_PXA27x) |
165 | static unsigned int treo680_matrix_keys[] = { | 171 | static unsigned int treo680_matrix_keys[] = { |
166 | KEY(0, 0, KEY_F8), /* Red/Off/Power */ | 172 | KEY(0, 0, KEY_F8), /* Red/Off/Power */ |
167 | KEY(0, 1, KEY_LEFT), | 173 | KEY(0, 1, KEY_LEFT), |
@@ -309,7 +315,7 @@ static inline void palmtreo_kpc_init(void) {} | |||
309 | /****************************************************************************** | 315 | /****************************************************************************** |
310 | * USB host | 316 | * USB host |
311 | ******************************************************************************/ | 317 | ******************************************************************************/ |
312 | #if defined(CONFIG_USB_OHCI_HCD) || defined(CONFIG_USB_OHCI_HCD_MODULE) | 318 | #if IS_ENABLED(CONFIG_USB_OHCI_HCD) |
313 | static struct pxaohci_platform_data treo680_ohci_info = { | 319 | static struct pxaohci_platform_data treo680_ohci_info = { |
314 | .port_mode = PMM_PERPORT_MODE, | 320 | .port_mode = PMM_PERPORT_MODE, |
315 | .flags = ENABLE_PORT1 | ENABLE_PORT3, | 321 | .flags = ENABLE_PORT1 | ENABLE_PORT3, |
@@ -328,7 +334,6 @@ static inline void palmtreo_uhc_init(void) {} | |||
328 | /****************************************************************************** | 334 | /****************************************************************************** |
329 | * Vibra and LEDs | 335 | * Vibra and LEDs |
330 | ******************************************************************************/ | 336 | ******************************************************************************/ |
331 | #ifdef CONFIG_MACH_TREO680 | ||
332 | static struct gpio_led treo680_gpio_leds[] = { | 337 | static struct gpio_led treo680_gpio_leds[] = { |
333 | { | 338 | { |
334 | .name = "treo680:vibra:vibra", | 339 | .name = "treo680:vibra:vibra", |
@@ -379,20 +384,46 @@ static struct gpio_led_platform_data centro_gpio_led_info = { | |||
379 | static struct platform_device palmtreo_leds = { | 384 | static struct platform_device palmtreo_leds = { |
380 | .name = "leds-gpio", | 385 | .name = "leds-gpio", |
381 | .id = -1, | 386 | .id = -1, |
382 | .dev = { | ||
383 | .platform_data = &treo680_gpio_led_info, | ||
384 | } | ||
385 | }; | 387 | }; |
386 | 388 | ||
387 | static void __init palmtreo_leds_init(void) | 389 | static void __init palmtreo_leds_init(void) |
388 | { | 390 | { |
389 | if (machine_is_centro()) | 391 | if (machine_is_centro()) |
390 | palmtreo_leds.dev.platform_data = ¢ro_gpio_led_info; | 392 | palmtreo_leds.dev.platform_data = ¢ro_gpio_led_info; |
393 | else if (machine_is_treo680()) | ||
394 | palmtreo_leds.dev.platform_data = &treo680_gpio_led_info; | ||
391 | 395 | ||
392 | platform_device_register(&palmtreo_leds); | 396 | platform_device_register(&palmtreo_leds); |
393 | } | 397 | } |
398 | |||
399 | /****************************************************************************** | ||
400 | * diskonchip docg4 flash | ||
401 | ******************************************************************************/ | ||
402 | #if defined(CONFIG_MACH_TREO680) | ||
403 | /* REVISIT: does the centro have this device also? */ | ||
404 | #if IS_ENABLED(CONFIG_MTD_NAND_DOCG4) | ||
405 | static struct resource docg4_resources[] = { | ||
406 | { | ||
407 | .start = 0x00000000, | ||
408 | .end = 0x00001FFF, | ||
409 | .flags = IORESOURCE_MEM, | ||
410 | }, | ||
411 | }; | ||
412 | |||
413 | static struct platform_device treo680_docg4_flash = { | ||
414 | .name = "docg4", | ||
415 | .id = -1, | ||
416 | .resource = docg4_resources, | ||
417 | .num_resources = ARRAY_SIZE(docg4_resources), | ||
418 | }; | ||
419 | |||
420 | static void __init treo680_docg4_flash_init(void) | ||
421 | { | ||
422 | platform_device_register(&treo680_docg4_flash); | ||
423 | } | ||
394 | #else | 424 | #else |
395 | static inline void palmtreo_leds_init(void) {} | 425 | static inline void treo680_docg4_flash_init(void) {} |
426 | #endif | ||
396 | #endif | 427 | #endif |
397 | 428 | ||
398 | /****************************************************************************** | 429 | /****************************************************************************** |
@@ -424,12 +455,62 @@ static void __init palmphone_common_init(void) | |||
424 | } | 455 | } |
425 | 456 | ||
426 | #ifdef CONFIG_MACH_TREO680 | 457 | #ifdef CONFIG_MACH_TREO680 |
458 | void __init treo680_gpio_init(void) | ||
459 | { | ||
460 | unsigned int gpio; | ||
461 | |||
462 | /* drive all three lcd gpios high initially */ | ||
463 | const unsigned long lcd_flags = GPIOF_INIT_HIGH | GPIOF_DIR_OUT; | ||
464 | |||
465 | /* | ||
466 | * LCD GPIO initialization... | ||
467 | */ | ||
468 | |||
469 | /* | ||
470 | * This is likely the power to the lcd. Toggling it low/high appears to | ||
471 | * turn the lcd off/on. Can be toggled after lcd is initialized without | ||
472 | * any apparent adverse effects to the lcd operation. Note that this | ||
473 | * gpio line is used by the lcd controller as the L_BIAS signal, but | ||
474 | * treo680 configures it as gpio. | ||
475 | */ | ||
476 | gpio = GPIO_NR_TREO680_LCD_POWER; | ||
477 | if (gpio_request_one(gpio, lcd_flags, "LCD power") < 0) | ||
478 | goto fail; | ||
479 | |||
480 | /* | ||
481 | * These two are called "enables", for lack of a better understanding. | ||
482 | * If either of these are toggled after the lcd is initialized, the | ||
483 | * image becomes degraded. N.B. The IPL shipped with the treo | ||
484 | * configures GPIO_NR_TREO680_LCD_EN_N as output and drives it high. If | ||
485 | * the IPL is ever reprogrammed, this initialization may be need to be | ||
486 | * revisited. | ||
487 | */ | ||
488 | gpio = GPIO_NR_TREO680_LCD_EN; | ||
489 | if (gpio_request_one(gpio, lcd_flags, "LCD enable") < 0) | ||
490 | goto fail; | ||
491 | gpio = GPIO_NR_TREO680_LCD_EN_N; | ||
492 | if (gpio_request_one(gpio, lcd_flags, "LCD enable_n") < 0) | ||
493 | goto fail; | ||
494 | |||
495 | /* driving this low turns LCD on */ | ||
496 | gpio_set_value(GPIO_NR_TREO680_LCD_EN_N, 0); | ||
497 | |||
498 | return; | ||
499 | fail: | ||
500 | pr_err("gpio %d initialization failed\n", gpio); | ||
501 | gpio_free(GPIO_NR_TREO680_LCD_POWER); | ||
502 | gpio_free(GPIO_NR_TREO680_LCD_EN); | ||
503 | gpio_free(GPIO_NR_TREO680_LCD_EN_N); | ||
504 | } | ||
505 | |||
427 | static void __init treo680_init(void) | 506 | static void __init treo680_init(void) |
428 | { | 507 | { |
429 | pxa2xx_mfp_config(ARRAY_AND_SIZE(treo680_pin_config)); | 508 | pxa2xx_mfp_config(ARRAY_AND_SIZE(treo680_pin_config)); |
430 | palmphone_common_init(); | 509 | palmphone_common_init(); |
510 | treo680_gpio_init(); | ||
431 | palm27x_mmc_init(GPIO_NR_TREO_SD_DETECT_N, GPIO_NR_TREO680_SD_READONLY, | 511 | palm27x_mmc_init(GPIO_NR_TREO_SD_DETECT_N, GPIO_NR_TREO680_SD_READONLY, |
432 | GPIO_NR_TREO680_SD_POWER, 0); | 512 | GPIO_NR_TREO680_SD_POWER, 0); |
513 | treo680_docg4_flash_init(); | ||
433 | } | 514 | } |
434 | #endif | 515 | #endif |
435 | 516 | ||
@@ -451,7 +532,7 @@ MACHINE_START(TREO680, "Palm Treo 680") | |||
451 | .nr_irqs = PXA_NR_IRQS, | 532 | .nr_irqs = PXA_NR_IRQS, |
452 | .init_irq = pxa27x_init_irq, | 533 | .init_irq = pxa27x_init_irq, |
453 | .handle_irq = pxa27x_handle_irq, | 534 | .handle_irq = pxa27x_handle_irq, |
454 | .timer = &pxa_timer, | 535 | .init_time = pxa_timer_init, |
455 | .init_machine = treo680_init, | 536 | .init_machine = treo680_init, |
456 | .restart = pxa_restart, | 537 | .restart = pxa_restart, |
457 | MACHINE_END | 538 | MACHINE_END |
@@ -465,7 +546,7 @@ MACHINE_START(CENTRO, "Palm Centro 685") | |||
465 | .nr_irqs = PXA_NR_IRQS, | 546 | .nr_irqs = PXA_NR_IRQS, |
466 | .init_irq = pxa27x_init_irq, | 547 | .init_irq = pxa27x_init_irq, |
467 | .handle_irq = pxa27x_handle_irq, | 548 | .handle_irq = pxa27x_handle_irq, |
468 | .timer = &pxa_timer, | 549 | .init_time = pxa_timer_init, |
469 | .init_machine = centro_init, | 550 | .init_machine = centro_init, |
470 | .restart = pxa_restart, | 551 | .restart = pxa_restart, |
471 | MACHINE_END | 552 | MACHINE_END |
diff --git a/arch/arm/mach-pxa/palmtx.c b/arch/arm/mach-pxa/palmtx.c index 8b4366628a12..627c93a7364c 100644 --- a/arch/arm/mach-pxa/palmtx.c +++ b/arch/arm/mach-pxa/palmtx.c | |||
@@ -366,7 +366,7 @@ MACHINE_START(PALMTX, "Palm T|X") | |||
366 | .nr_irqs = PXA_NR_IRQS, | 366 | .nr_irqs = PXA_NR_IRQS, |
367 | .init_irq = pxa27x_init_irq, | 367 | .init_irq = pxa27x_init_irq, |
368 | .handle_irq = pxa27x_handle_irq, | 368 | .handle_irq = pxa27x_handle_irq, |
369 | .timer = &pxa_timer, | 369 | .init_time = pxa_timer_init, |
370 | .init_machine = palmtx_init, | 370 | .init_machine = palmtx_init, |
371 | .restart = pxa_restart, | 371 | .restart = pxa_restart, |
372 | MACHINE_END | 372 | MACHINE_END |
diff --git a/arch/arm/mach-pxa/palmz72.c b/arch/arm/mach-pxa/palmz72.c index 8cdd4f58e253..18b7fcd98592 100644 --- a/arch/arm/mach-pxa/palmz72.c +++ b/arch/arm/mach-pxa/palmz72.c | |||
@@ -404,7 +404,7 @@ MACHINE_START(PALMZ72, "Palm Zire72") | |||
404 | .nr_irqs = PXA_NR_IRQS, | 404 | .nr_irqs = PXA_NR_IRQS, |
405 | .init_irq = pxa27x_init_irq, | 405 | .init_irq = pxa27x_init_irq, |
406 | .handle_irq = pxa27x_handle_irq, | 406 | .handle_irq = pxa27x_handle_irq, |
407 | .timer = &pxa_timer, | 407 | .init_time = pxa_timer_init, |
408 | .init_machine = palmz72_init, | 408 | .init_machine = palmz72_init, |
409 | .restart = pxa_restart, | 409 | .restart = pxa_restart, |
410 | MACHINE_END | 410 | MACHINE_END |
diff --git a/arch/arm/mach-pxa/pcm027.c b/arch/arm/mach-pxa/pcm027.c index fe9054435b6f..69918c7e3f1f 100644 --- a/arch/arm/mach-pxa/pcm027.c +++ b/arch/arm/mach-pxa/pcm027.c | |||
@@ -263,7 +263,7 @@ MACHINE_START(PCM027, "Phytec Messtechnik GmbH phyCORE-PXA270") | |||
263 | .nr_irqs = PCM027_NR_IRQS, | 263 | .nr_irqs = PCM027_NR_IRQS, |
264 | .init_irq = pxa27x_init_irq, | 264 | .init_irq = pxa27x_init_irq, |
265 | .handle_irq = pxa27x_handle_irq, | 265 | .handle_irq = pxa27x_handle_irq, |
266 | .timer = &pxa_timer, | 266 | .init_time = pxa_timer_init, |
267 | .init_machine = pcm027_init, | 267 | .init_machine = pcm027_init, |
268 | .restart = pxa_restart, | 268 | .restart = pxa_restart, |
269 | MACHINE_END | 269 | MACHINE_END |
diff --git a/arch/arm/mach-pxa/poodle.c b/arch/arm/mach-pxa/poodle.c index 2910bb935c75..50ccd5f1d560 100644 --- a/arch/arm/mach-pxa/poodle.c +++ b/arch/arm/mach-pxa/poodle.c | |||
@@ -469,7 +469,7 @@ MACHINE_START(POODLE, "SHARP Poodle") | |||
469 | .nr_irqs = POODLE_NR_IRQS, /* 4 for LoCoMo */ | 469 | .nr_irqs = POODLE_NR_IRQS, /* 4 for LoCoMo */ |
470 | .init_irq = pxa25x_init_irq, | 470 | .init_irq = pxa25x_init_irq, |
471 | .handle_irq = pxa25x_handle_irq, | 471 | .handle_irq = pxa25x_handle_irq, |
472 | .timer = &pxa_timer, | 472 | .init_time = pxa_timer_init, |
473 | .init_machine = poodle_init, | 473 | .init_machine = poodle_init, |
474 | .restart = pxa_restart, | 474 | .restart = pxa_restart, |
475 | MACHINE_END | 475 | MACHINE_END |
diff --git a/arch/arm/mach-pxa/pxa-dt.c b/arch/arm/mach-pxa/pxa-dt.c index c9192cea0033..3835979a0dd3 100644 --- a/arch/arm/mach-pxa/pxa-dt.c +++ b/arch/arm/mach-pxa/pxa-dt.c | |||
@@ -55,7 +55,7 @@ DT_MACHINE_START(PXA_DT, "Marvell PXA3xx (Device Tree Support)") | |||
55 | .map_io = pxa3xx_map_io, | 55 | .map_io = pxa3xx_map_io, |
56 | .init_irq = pxa3xx_dt_init_irq, | 56 | .init_irq = pxa3xx_dt_init_irq, |
57 | .handle_irq = pxa3xx_handle_irq, | 57 | .handle_irq = pxa3xx_handle_irq, |
58 | .timer = &pxa_timer, | 58 | .init_time = pxa_timer_init, |
59 | .restart = pxa_restart, | 59 | .restart = pxa_restart, |
60 | .init_machine = pxa3xx_dt_init, | 60 | .init_machine = pxa3xx_dt_init, |
61 | .dt_compat = pxa3xx_dt_board_compat, | 61 | .dt_compat = pxa3xx_dt_board_compat, |
diff --git a/arch/arm/mach-pxa/pxa27x.c b/arch/arm/mach-pxa/pxa27x.c index 616cb87b6179..3203a9f5b4a2 100644 --- a/arch/arm/mach-pxa/pxa27x.c +++ b/arch/arm/mach-pxa/pxa27x.c | |||
@@ -53,17 +53,25 @@ static unsigned long ac97_reset_config[] = { | |||
53 | GPIO95_AC97_nRESET, | 53 | GPIO95_AC97_nRESET, |
54 | }; | 54 | }; |
55 | 55 | ||
56 | void pxa27x_assert_ac97reset(int reset_gpio, int on) | 56 | void pxa27x_configure_ac97reset(int reset_gpio, bool to_gpio) |
57 | { | 57 | { |
58 | /* | ||
59 | * This helper function is used to work around a bug in the pxa27x's | ||
60 | * ac97 controller during a warm reset. The configuration of the | ||
61 | * reset_gpio is changed as follows: | ||
62 | * to_gpio == true: configured to generic output gpio and driven high | ||
63 | * to_gpio == false: configured to ac97 controller alt fn AC97_nRESET | ||
64 | */ | ||
65 | |||
58 | if (reset_gpio == 113) | 66 | if (reset_gpio == 113) |
59 | pxa2xx_mfp_config(on ? &ac97_reset_config[0] : | 67 | pxa2xx_mfp_config(to_gpio ? &ac97_reset_config[0] : |
60 | &ac97_reset_config[1], 1); | 68 | &ac97_reset_config[1], 1); |
61 | 69 | ||
62 | if (reset_gpio == 95) | 70 | if (reset_gpio == 95) |
63 | pxa2xx_mfp_config(on ? &ac97_reset_config[2] : | 71 | pxa2xx_mfp_config(to_gpio ? &ac97_reset_config[2] : |
64 | &ac97_reset_config[3], 1); | 72 | &ac97_reset_config[3], 1); |
65 | } | 73 | } |
66 | EXPORT_SYMBOL_GPL(pxa27x_assert_ac97reset); | 74 | EXPORT_SYMBOL_GPL(pxa27x_configure_ac97reset); |
67 | 75 | ||
68 | /* Crystal clock: 13MHz */ | 76 | /* Crystal clock: 13MHz */ |
69 | #define BASE_CLK 13000000 | 77 | #define BASE_CLK 13000000 |
@@ -230,6 +238,7 @@ static struct clk_lookup pxa27x_clkregs[] = { | |||
230 | INIT_CLKREG(&clk_pxa27x_memc, NULL, "MEMCLK"), | 238 | INIT_CLKREG(&clk_pxa27x_memc, NULL, "MEMCLK"), |
231 | INIT_CLKREG(&clk_pxa27x_mem, "pxa2xx-pcmcia", NULL), | 239 | INIT_CLKREG(&clk_pxa27x_mem, "pxa2xx-pcmcia", NULL), |
232 | INIT_CLKREG(&clk_dummy, "pxa-gpio", NULL), | 240 | INIT_CLKREG(&clk_dummy, "pxa-gpio", NULL), |
241 | INIT_CLKREG(&clk_dummy, "sa1100-rtc", NULL), | ||
233 | }; | 242 | }; |
234 | 243 | ||
235 | #ifdef CONFIG_PM | 244 | #ifdef CONFIG_PM |
diff --git a/arch/arm/mach-pxa/raumfeld.c b/arch/arm/mach-pxa/raumfeld.c index 25b08bfa997b..af41888acbd6 100644 --- a/arch/arm/mach-pxa/raumfeld.c +++ b/arch/arm/mach-pxa/raumfeld.c | |||
@@ -1095,7 +1095,7 @@ MACHINE_START(RAUMFELD_RC, "Raumfeld Controller") | |||
1095 | .nr_irqs = PXA_NR_IRQS, | 1095 | .nr_irqs = PXA_NR_IRQS, |
1096 | .init_irq = pxa3xx_init_irq, | 1096 | .init_irq = pxa3xx_init_irq, |
1097 | .handle_irq = pxa3xx_handle_irq, | 1097 | .handle_irq = pxa3xx_handle_irq, |
1098 | .timer = &pxa_timer, | 1098 | .init_time = pxa_timer_init, |
1099 | .restart = pxa_restart, | 1099 | .restart = pxa_restart, |
1100 | MACHINE_END | 1100 | MACHINE_END |
1101 | #endif | 1101 | #endif |
@@ -1108,7 +1108,7 @@ MACHINE_START(RAUMFELD_CONNECTOR, "Raumfeld Connector") | |||
1108 | .nr_irqs = PXA_NR_IRQS, | 1108 | .nr_irqs = PXA_NR_IRQS, |
1109 | .init_irq = pxa3xx_init_irq, | 1109 | .init_irq = pxa3xx_init_irq, |
1110 | .handle_irq = pxa3xx_handle_irq, | 1110 | .handle_irq = pxa3xx_handle_irq, |
1111 | .timer = &pxa_timer, | 1111 | .init_time = pxa_timer_init, |
1112 | .restart = pxa_restart, | 1112 | .restart = pxa_restart, |
1113 | MACHINE_END | 1113 | MACHINE_END |
1114 | #endif | 1114 | #endif |
@@ -1121,7 +1121,7 @@ MACHINE_START(RAUMFELD_SPEAKER, "Raumfeld Speaker") | |||
1121 | .nr_irqs = PXA_NR_IRQS, | 1121 | .nr_irqs = PXA_NR_IRQS, |
1122 | .init_irq = pxa3xx_init_irq, | 1122 | .init_irq = pxa3xx_init_irq, |
1123 | .handle_irq = pxa3xx_handle_irq, | 1123 | .handle_irq = pxa3xx_handle_irq, |
1124 | .timer = &pxa_timer, | 1124 | .init_time = pxa_timer_init, |
1125 | .restart = pxa_restart, | 1125 | .restart = pxa_restart, |
1126 | MACHINE_END | 1126 | MACHINE_END |
1127 | #endif | 1127 | #endif |
diff --git a/arch/arm/mach-pxa/saar.c b/arch/arm/mach-pxa/saar.c index 08d87a5d2639..710c493eac89 100644 --- a/arch/arm/mach-pxa/saar.c +++ b/arch/arm/mach-pxa/saar.c | |||
@@ -601,7 +601,7 @@ MACHINE_START(SAAR, "PXA930 Handheld Platform (aka SAAR)") | |||
601 | .nr_irqs = PXA_NR_IRQS, | 601 | .nr_irqs = PXA_NR_IRQS, |
602 | .init_irq = pxa3xx_init_irq, | 602 | .init_irq = pxa3xx_init_irq, |
603 | .handle_irq = pxa3xx_handle_irq, | 603 | .handle_irq = pxa3xx_handle_irq, |
604 | .timer = &pxa_timer, | 604 | .init_time = pxa_timer_init, |
605 | .init_machine = saar_init, | 605 | .init_machine = saar_init, |
606 | .restart = pxa_restart, | 606 | .restart = pxa_restart, |
607 | MACHINE_END | 607 | MACHINE_END |
diff --git a/arch/arm/mach-pxa/smemc.c b/arch/arm/mach-pxa/smemc.c index 79923058d10f..f38aa890b2c9 100644 --- a/arch/arm/mach-pxa/smemc.c +++ b/arch/arm/mach-pxa/smemc.c | |||
@@ -40,6 +40,8 @@ static void pxa3xx_smemc_resume(void) | |||
40 | __raw_writel(csadrcfg[1], CSADRCFG1); | 40 | __raw_writel(csadrcfg[1], CSADRCFG1); |
41 | __raw_writel(csadrcfg[2], CSADRCFG2); | 41 | __raw_writel(csadrcfg[2], CSADRCFG2); |
42 | __raw_writel(csadrcfg[3], CSADRCFG3); | 42 | __raw_writel(csadrcfg[3], CSADRCFG3); |
43 | /* CSMSADRCFG wakes up in its default state (0), so we need to set it */ | ||
44 | __raw_writel(0x2, CSMSADRCFG); | ||
43 | } | 45 | } |
44 | 46 | ||
45 | static struct syscore_ops smemc_syscore_ops = { | 47 | static struct syscore_ops smemc_syscore_ops = { |
@@ -49,8 +51,19 @@ static struct syscore_ops smemc_syscore_ops = { | |||
49 | 51 | ||
50 | static int __init smemc_init(void) | 52 | static int __init smemc_init(void) |
51 | { | 53 | { |
52 | if (cpu_is_pxa3xx()) | 54 | if (cpu_is_pxa3xx()) { |
55 | /* | ||
56 | * The only documentation we have on the | ||
57 | * Chip Select Configuration Register (CSMSADRCFG) is that | ||
58 | * it must be programmed to 0x2. | ||
59 | * Moreover, in the bit definitions, the second bit | ||
60 | * (CSMSADRCFG[1]) is called "SETALWAYS". | ||
61 | * Other bits are reserved in this register. | ||
62 | */ | ||
63 | __raw_writel(0x2, CSMSADRCFG); | ||
64 | |||
53 | register_syscore_ops(&smemc_syscore_ops); | 65 | register_syscore_ops(&smemc_syscore_ops); |
66 | } | ||
54 | 67 | ||
55 | return 0; | 68 | return 0; |
56 | } | 69 | } |
diff --git a/arch/arm/mach-pxa/spitz.c b/arch/arm/mach-pxa/spitz.c index 2073f0e6db0d..362726c49c70 100644 --- a/arch/arm/mach-pxa/spitz.c +++ b/arch/arm/mach-pxa/spitz.c | |||
@@ -732,7 +732,7 @@ static inline void spitz_lcd_init(void) {} | |||
732 | #endif | 732 | #endif |
733 | 733 | ||
734 | /****************************************************************************** | 734 | /****************************************************************************** |
735 | * Framebuffer | 735 | * NAND Flash |
736 | ******************************************************************************/ | 736 | ******************************************************************************/ |
737 | #if defined(CONFIG_MTD_NAND_SHARPSL) || defined(CONFIG_MTD_NAND_SHARPSL_MODULE) | 737 | #if defined(CONFIG_MTD_NAND_SHARPSL) || defined(CONFIG_MTD_NAND_SHARPSL_MODULE) |
738 | static struct mtd_partition spitz_nand_partitions[] = { | 738 | static struct mtd_partition spitz_nand_partitions[] = { |
@@ -858,7 +858,7 @@ static inline void spitz_nor_init(void) {} | |||
858 | #endif | 858 | #endif |
859 | 859 | ||
860 | /****************************************************************************** | 860 | /****************************************************************************** |
861 | * GPIO expander | 861 | * I2C devices |
862 | ******************************************************************************/ | 862 | ******************************************************************************/ |
863 | #if defined(CONFIG_I2C_PXA) || defined(CONFIG_I2C_PXA_MODULE) | 863 | #if defined(CONFIG_I2C_PXA) || defined(CONFIG_I2C_PXA_MODULE) |
864 | static struct pca953x_platform_data akita_pca953x_pdata = { | 864 | static struct pca953x_platform_data akita_pca953x_pdata = { |
@@ -986,7 +986,7 @@ MACHINE_START(SPITZ, "SHARP Spitz") | |||
986 | .init_irq = pxa27x_init_irq, | 986 | .init_irq = pxa27x_init_irq, |
987 | .handle_irq = pxa27x_handle_irq, | 987 | .handle_irq = pxa27x_handle_irq, |
988 | .init_machine = spitz_init, | 988 | .init_machine = spitz_init, |
989 | .timer = &pxa_timer, | 989 | .init_time = pxa_timer_init, |
990 | .restart = spitz_restart, | 990 | .restart = spitz_restart, |
991 | MACHINE_END | 991 | MACHINE_END |
992 | #endif | 992 | #endif |
@@ -1000,7 +1000,7 @@ MACHINE_START(BORZOI, "SHARP Borzoi") | |||
1000 | .init_irq = pxa27x_init_irq, | 1000 | .init_irq = pxa27x_init_irq, |
1001 | .handle_irq = pxa27x_handle_irq, | 1001 | .handle_irq = pxa27x_handle_irq, |
1002 | .init_machine = spitz_init, | 1002 | .init_machine = spitz_init, |
1003 | .timer = &pxa_timer, | 1003 | .init_time = pxa_timer_init, |
1004 | .restart = spitz_restart, | 1004 | .restart = spitz_restart, |
1005 | MACHINE_END | 1005 | MACHINE_END |
1006 | #endif | 1006 | #endif |
@@ -1014,7 +1014,7 @@ MACHINE_START(AKITA, "SHARP Akita") | |||
1014 | .init_irq = pxa27x_init_irq, | 1014 | .init_irq = pxa27x_init_irq, |
1015 | .handle_irq = pxa27x_handle_irq, | 1015 | .handle_irq = pxa27x_handle_irq, |
1016 | .init_machine = spitz_init, | 1016 | .init_machine = spitz_init, |
1017 | .timer = &pxa_timer, | 1017 | .init_time = pxa_timer_init, |
1018 | .restart = spitz_restart, | 1018 | .restart = spitz_restart, |
1019 | MACHINE_END | 1019 | MACHINE_END |
1020 | #endif | 1020 | #endif |
diff --git a/arch/arm/mach-pxa/stargate2.c b/arch/arm/mach-pxa/stargate2.c index 456560b5aad4..88fde43c948c 100644 --- a/arch/arm/mach-pxa/stargate2.c +++ b/arch/arm/mach-pxa/stargate2.c | |||
@@ -1006,7 +1006,7 @@ MACHINE_START(INTELMOTE2, "IMOTE 2") | |||
1006 | .nr_irqs = PXA_NR_IRQS, | 1006 | .nr_irqs = PXA_NR_IRQS, |
1007 | .init_irq = pxa27x_init_irq, | 1007 | .init_irq = pxa27x_init_irq, |
1008 | .handle_irq = pxa27x_handle_irq, | 1008 | .handle_irq = pxa27x_handle_irq, |
1009 | .timer = &pxa_timer, | 1009 | .init_time = pxa_timer_init, |
1010 | .init_machine = imote2_init, | 1010 | .init_machine = imote2_init, |
1011 | .atag_offset = 0x100, | 1011 | .atag_offset = 0x100, |
1012 | .restart = pxa_restart, | 1012 | .restart = pxa_restart, |
@@ -1019,7 +1019,7 @@ MACHINE_START(STARGATE2, "Stargate 2") | |||
1019 | .nr_irqs = STARGATE_NR_IRQS, | 1019 | .nr_irqs = STARGATE_NR_IRQS, |
1020 | .init_irq = pxa27x_init_irq, | 1020 | .init_irq = pxa27x_init_irq, |
1021 | .handle_irq = pxa27x_handle_irq, | 1021 | .handle_irq = pxa27x_handle_irq, |
1022 | .timer = &pxa_timer, | 1022 | .init_time = pxa_timer_init, |
1023 | .init_machine = stargate2_init, | 1023 | .init_machine = stargate2_init, |
1024 | .atag_offset = 0x100, | 1024 | .atag_offset = 0x100, |
1025 | .restart = pxa_restart, | 1025 | .restart = pxa_restart, |
diff --git a/arch/arm/mach-pxa/tavorevb.c b/arch/arm/mach-pxa/tavorevb.c index 1a25f8a7b0ce..f55979c09a5f 100644 --- a/arch/arm/mach-pxa/tavorevb.c +++ b/arch/arm/mach-pxa/tavorevb.c | |||
@@ -494,7 +494,7 @@ MACHINE_START(TAVOREVB, "PXA930 Evaluation Board (aka TavorEVB)") | |||
494 | .nr_irqs = PXA_NR_IRQS, | 494 | .nr_irqs = PXA_NR_IRQS, |
495 | .init_irq = pxa3xx_init_irq, | 495 | .init_irq = pxa3xx_init_irq, |
496 | .handle_irq = pxa3xx_handle_irq, | 496 | .handle_irq = pxa3xx_handle_irq, |
497 | .timer = &pxa_timer, | 497 | .init_time = pxa_timer_init, |
498 | .init_machine = tavorevb_init, | 498 | .init_machine = tavorevb_init, |
499 | .restart = pxa_restart, | 499 | .restart = pxa_restart, |
500 | MACHINE_END | 500 | MACHINE_END |
diff --git a/arch/arm/mach-pxa/time.c b/arch/arm/mach-pxa/time.c index 4bc47d63698b..8f1ee92aea30 100644 --- a/arch/arm/mach-pxa/time.c +++ b/arch/arm/mach-pxa/time.c | |||
@@ -89,48 +89,10 @@ pxa_osmr0_set_mode(enum clock_event_mode mode, struct clock_event_device *dev) | |||
89 | } | 89 | } |
90 | } | 90 | } |
91 | 91 | ||
92 | static struct clock_event_device ckevt_pxa_osmr0 = { | ||
93 | .name = "osmr0", | ||
94 | .features = CLOCK_EVT_FEAT_ONESHOT, | ||
95 | .rating = 200, | ||
96 | .set_next_event = pxa_osmr0_set_next_event, | ||
97 | .set_mode = pxa_osmr0_set_mode, | ||
98 | }; | ||
99 | |||
100 | static struct irqaction pxa_ost0_irq = { | ||
101 | .name = "ost0", | ||
102 | .flags = IRQF_DISABLED | IRQF_TIMER | IRQF_IRQPOLL, | ||
103 | .handler = pxa_ost0_interrupt, | ||
104 | .dev_id = &ckevt_pxa_osmr0, | ||
105 | }; | ||
106 | |||
107 | static void __init pxa_timer_init(void) | ||
108 | { | ||
109 | unsigned long clock_tick_rate = get_clock_tick_rate(); | ||
110 | |||
111 | writel_relaxed(0, OIER); | ||
112 | writel_relaxed(OSSR_M0 | OSSR_M1 | OSSR_M2 | OSSR_M3, OSSR); | ||
113 | |||
114 | setup_sched_clock(pxa_read_sched_clock, 32, clock_tick_rate); | ||
115 | |||
116 | clockevents_calc_mult_shift(&ckevt_pxa_osmr0, clock_tick_rate, 4); | ||
117 | ckevt_pxa_osmr0.max_delta_ns = | ||
118 | clockevent_delta2ns(0x7fffffff, &ckevt_pxa_osmr0); | ||
119 | ckevt_pxa_osmr0.min_delta_ns = | ||
120 | clockevent_delta2ns(MIN_OSCR_DELTA * 2, &ckevt_pxa_osmr0) + 1; | ||
121 | ckevt_pxa_osmr0.cpumask = cpumask_of(0); | ||
122 | |||
123 | setup_irq(IRQ_OST0, &pxa_ost0_irq); | ||
124 | |||
125 | clocksource_mmio_init(OSCR, "oscr0", clock_tick_rate, 200, 32, | ||
126 | clocksource_mmio_readl_up); | ||
127 | clockevents_register_device(&ckevt_pxa_osmr0); | ||
128 | } | ||
129 | |||
130 | #ifdef CONFIG_PM | 92 | #ifdef CONFIG_PM |
131 | static unsigned long osmr[4], oier, oscr; | 93 | static unsigned long osmr[4], oier, oscr; |
132 | 94 | ||
133 | static void pxa_timer_suspend(void) | 95 | static void pxa_timer_suspend(struct clock_event_device *cedev) |
134 | { | 96 | { |
135 | osmr[0] = readl_relaxed(OSMR0); | 97 | osmr[0] = readl_relaxed(OSMR0); |
136 | osmr[1] = readl_relaxed(OSMR1); | 98 | osmr[1] = readl_relaxed(OSMR1); |
@@ -140,7 +102,7 @@ static void pxa_timer_suspend(void) | |||
140 | oscr = readl_relaxed(OSCR); | 102 | oscr = readl_relaxed(OSCR); |
141 | } | 103 | } |
142 | 104 | ||
143 | static void pxa_timer_resume(void) | 105 | static void pxa_timer_resume(struct clock_event_device *cedev) |
144 | { | 106 | { |
145 | /* | 107 | /* |
146 | * Ensure that we have at least MIN_OSCR_DELTA between match | 108 | * Ensure that we have at least MIN_OSCR_DELTA between match |
@@ -163,8 +125,38 @@ static void pxa_timer_resume(void) | |||
163 | #define pxa_timer_resume NULL | 125 | #define pxa_timer_resume NULL |
164 | #endif | 126 | #endif |
165 | 127 | ||
166 | struct sys_timer pxa_timer = { | 128 | static struct clock_event_device ckevt_pxa_osmr0 = { |
167 | .init = pxa_timer_init, | 129 | .name = "osmr0", |
130 | .features = CLOCK_EVT_FEAT_ONESHOT, | ||
131 | .rating = 200, | ||
132 | .set_next_event = pxa_osmr0_set_next_event, | ||
133 | .set_mode = pxa_osmr0_set_mode, | ||
168 | .suspend = pxa_timer_suspend, | 134 | .suspend = pxa_timer_suspend, |
169 | .resume = pxa_timer_resume, | 135 | .resume = pxa_timer_resume, |
170 | }; | 136 | }; |
137 | |||
138 | static struct irqaction pxa_ost0_irq = { | ||
139 | .name = "ost0", | ||
140 | .flags = IRQF_DISABLED | IRQF_TIMER | IRQF_IRQPOLL, | ||
141 | .handler = pxa_ost0_interrupt, | ||
142 | .dev_id = &ckevt_pxa_osmr0, | ||
143 | }; | ||
144 | |||
145 | void __init pxa_timer_init(void) | ||
146 | { | ||
147 | unsigned long clock_tick_rate = get_clock_tick_rate(); | ||
148 | |||
149 | writel_relaxed(0, OIER); | ||
150 | writel_relaxed(OSSR_M0 | OSSR_M1 | OSSR_M2 | OSSR_M3, OSSR); | ||
151 | |||
152 | setup_sched_clock(pxa_read_sched_clock, 32, clock_tick_rate); | ||
153 | |||
154 | ckevt_pxa_osmr0.cpumask = cpumask_of(0); | ||
155 | |||
156 | setup_irq(IRQ_OST0, &pxa_ost0_irq); | ||
157 | |||
158 | clocksource_mmio_init(OSCR, "oscr0", clock_tick_rate, 200, 32, | ||
159 | clocksource_mmio_readl_up); | ||
160 | clockevents_config_and_register(&ckevt_pxa_osmr0, clock_tick_rate, | ||
161 | MIN_OSCR_DELTA * 2, 0x7fffffff); | ||
162 | } | ||
diff --git a/arch/arm/mach-pxa/tosa.c b/arch/arm/mach-pxa/tosa.c index 233629edf7ee..9e7998d3635f 100644 --- a/arch/arm/mach-pxa/tosa.c +++ b/arch/arm/mach-pxa/tosa.c | |||
@@ -982,6 +982,6 @@ MACHINE_START(TOSA, "SHARP Tosa") | |||
982 | .init_irq = pxa25x_init_irq, | 982 | .init_irq = pxa25x_init_irq, |
983 | .handle_irq = pxa25x_handle_irq, | 983 | .handle_irq = pxa25x_handle_irq, |
984 | .init_machine = tosa_init, | 984 | .init_machine = tosa_init, |
985 | .timer = &pxa_timer, | 985 | .init_time = pxa_timer_init, |
986 | .restart = tosa_restart, | 986 | .restart = tosa_restart, |
987 | MACHINE_END | 987 | MACHINE_END |
diff --git a/arch/arm/mach-pxa/trizeps4.c b/arch/arm/mach-pxa/trizeps4.c index fbbcbed4d1d4..c58043462acd 100644 --- a/arch/arm/mach-pxa/trizeps4.c +++ b/arch/arm/mach-pxa/trizeps4.c | |||
@@ -561,7 +561,7 @@ MACHINE_START(TRIZEPS4, "Keith und Koep Trizeps IV module") | |||
561 | .nr_irqs = PXA_NR_IRQS, | 561 | .nr_irqs = PXA_NR_IRQS, |
562 | .init_irq = pxa27x_init_irq, | 562 | .init_irq = pxa27x_init_irq, |
563 | .handle_irq = pxa27x_handle_irq, | 563 | .handle_irq = pxa27x_handle_irq, |
564 | .timer = &pxa_timer, | 564 | .init_time = pxa_timer_init, |
565 | .restart = pxa_restart, | 565 | .restart = pxa_restart, |
566 | MACHINE_END | 566 | MACHINE_END |
567 | 567 | ||
@@ -573,6 +573,6 @@ MACHINE_START(TRIZEPS4WL, "Keith und Koep Trizeps IV-WL module") | |||
573 | .nr_irqs = PXA_NR_IRQS, | 573 | .nr_irqs = PXA_NR_IRQS, |
574 | .init_irq = pxa27x_init_irq, | 574 | .init_irq = pxa27x_init_irq, |
575 | .handle_irq = pxa27x_handle_irq, | 575 | .handle_irq = pxa27x_handle_irq, |
576 | .timer = &pxa_timer, | 576 | .init_time = pxa_timer_init, |
577 | .restart = pxa_restart, | 577 | .restart = pxa_restart, |
578 | MACHINE_END | 578 | MACHINE_END |
diff --git a/arch/arm/mach-pxa/viper.c b/arch/arm/mach-pxa/viper.c index c773e4dded64..9c363c081d3f 100644 --- a/arch/arm/mach-pxa/viper.c +++ b/arch/arm/mach-pxa/viper.c | |||
@@ -997,7 +997,7 @@ MACHINE_START(VIPER, "Arcom/Eurotech VIPER SBC") | |||
997 | .nr_irqs = PXA_NR_IRQS, | 997 | .nr_irqs = PXA_NR_IRQS, |
998 | .init_irq = viper_init_irq, | 998 | .init_irq = viper_init_irq, |
999 | .handle_irq = pxa25x_handle_irq, | 999 | .handle_irq = pxa25x_handle_irq, |
1000 | .timer = &pxa_timer, | 1000 | .init_time = pxa_timer_init, |
1001 | .init_machine = viper_init, | 1001 | .init_machine = viper_init, |
1002 | .restart = pxa_restart, | 1002 | .restart = pxa_restart, |
1003 | MACHINE_END | 1003 | MACHINE_END |
diff --git a/arch/arm/mach-pxa/vpac270.c b/arch/arm/mach-pxa/vpac270.c index 491b6c9a2a9b..aa89488f961e 100644 --- a/arch/arm/mach-pxa/vpac270.c +++ b/arch/arm/mach-pxa/vpac270.c | |||
@@ -719,7 +719,7 @@ MACHINE_START(VPAC270, "Voipac PXA270") | |||
719 | .nr_irqs = PXA_NR_IRQS, | 719 | .nr_irqs = PXA_NR_IRQS, |
720 | .init_irq = pxa27x_init_irq, | 720 | .init_irq = pxa27x_init_irq, |
721 | .handle_irq = pxa27x_handle_irq, | 721 | .handle_irq = pxa27x_handle_irq, |
722 | .timer = &pxa_timer, | 722 | .init_time = pxa_timer_init, |
723 | .init_machine = vpac270_init, | 723 | .init_machine = vpac270_init, |
724 | .restart = pxa_restart, | 724 | .restart = pxa_restart, |
725 | MACHINE_END | 725 | MACHINE_END |
diff --git a/arch/arm/mach-pxa/xcep.c b/arch/arm/mach-pxa/xcep.c index 4275713ccd10..13b1d4586d7d 100644 --- a/arch/arm/mach-pxa/xcep.c +++ b/arch/arm/mach-pxa/xcep.c | |||
@@ -185,7 +185,7 @@ MACHINE_START(XCEP, "Iskratel XCEP") | |||
185 | .nr_irqs = PXA_NR_IRQS, | 185 | .nr_irqs = PXA_NR_IRQS, |
186 | .init_irq = pxa25x_init_irq, | 186 | .init_irq = pxa25x_init_irq, |
187 | .handle_irq = pxa25x_handle_irq, | 187 | .handle_irq = pxa25x_handle_irq, |
188 | .timer = &pxa_timer, | 188 | .init_time = pxa_timer_init, |
189 | .restart = pxa_restart, | 189 | .restart = pxa_restart, |
190 | MACHINE_END | 190 | MACHINE_END |
191 | 191 | ||
diff --git a/arch/arm/mach-pxa/z2.c b/arch/arm/mach-pxa/z2.c index 97529face7aa..989903a7e467 100644 --- a/arch/arm/mach-pxa/z2.c +++ b/arch/arm/mach-pxa/z2.c | |||
@@ -722,7 +722,7 @@ MACHINE_START(ZIPIT2, "Zipit Z2") | |||
722 | .nr_irqs = PXA_NR_IRQS, | 722 | .nr_irqs = PXA_NR_IRQS, |
723 | .init_irq = pxa27x_init_irq, | 723 | .init_irq = pxa27x_init_irq, |
724 | .handle_irq = pxa27x_handle_irq, | 724 | .handle_irq = pxa27x_handle_irq, |
725 | .timer = &pxa_timer, | 725 | .init_time = pxa_timer_init, |
726 | .init_machine = z2_init, | 726 | .init_machine = z2_init, |
727 | .restart = pxa_restart, | 727 | .restart = pxa_restart, |
728 | MACHINE_END | 728 | MACHINE_END |
diff --git a/arch/arm/mach-pxa/zeus.c b/arch/arm/mach-pxa/zeus.c index abd3aa145083..f5d436434566 100644 --- a/arch/arm/mach-pxa/zeus.c +++ b/arch/arm/mach-pxa/zeus.c | |||
@@ -910,7 +910,7 @@ MACHINE_START(ARCOM_ZEUS, "Arcom/Eurotech ZEUS") | |||
910 | .nr_irqs = ZEUS_NR_IRQS, | 910 | .nr_irqs = ZEUS_NR_IRQS, |
911 | .init_irq = zeus_init_irq, | 911 | .init_irq = zeus_init_irq, |
912 | .handle_irq = pxa27x_handle_irq, | 912 | .handle_irq = pxa27x_handle_irq, |
913 | .timer = &pxa_timer, | 913 | .init_time = pxa_timer_init, |
914 | .init_machine = zeus_init, | 914 | .init_machine = zeus_init, |
915 | .restart = pxa_restart, | 915 | .restart = pxa_restart, |
916 | MACHINE_END | 916 | MACHINE_END |
diff --git a/arch/arm/mach-pxa/zylonite.c b/arch/arm/mach-pxa/zylonite.c index 226279fac9d4..1f00d650ac27 100644 --- a/arch/arm/mach-pxa/zylonite.c +++ b/arch/arm/mach-pxa/zylonite.c | |||
@@ -428,7 +428,7 @@ MACHINE_START(ZYLONITE, "PXA3xx Platform Development Kit (aka Zylonite)") | |||
428 | .nr_irqs = ZYLONITE_NR_IRQS, | 428 | .nr_irqs = ZYLONITE_NR_IRQS, |
429 | .init_irq = pxa3xx_init_irq, | 429 | .init_irq = pxa3xx_init_irq, |
430 | .handle_irq = pxa3xx_handle_irq, | 430 | .handle_irq = pxa3xx_handle_irq, |
431 | .timer = &pxa_timer, | 431 | .init_time = pxa_timer_init, |
432 | .init_machine = zylonite_init, | 432 | .init_machine = zylonite_init, |
433 | .restart = pxa_restart, | 433 | .restart = pxa_restart, |
434 | MACHINE_END | 434 | MACHINE_END |