aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarek Vasut <marek.vasut@gmail.com>2010-10-10 20:20:19 -0400
committerEric Miao <eric.y.miao@gmail.com>2010-12-16 01:31:15 -0500
commit851982c1b6ca18cedf6d01e4529a0c1ddb30771e (patch)
tree08438d74fabb2ce7a4fa0abd97b18b7b59c54f6f
parent64ed267bdac799485a938dd2cba8243ba383cd5f (diff)
ARM: pxa: Introduce pxa{25x,27x,3xx}_map_io()
This patch introduces pxa2xx_map_io() and pxa3xx_map_io() to distinguish between PXA25x/PXA27x and PXA3xx memory mapping. Also, fixup for platforms broken after introducing pxa{25x,27x}_map_io() and pxa3xx_map_io() is included. Signed-off-by: Marek Vasut <marek.vasut@gmail.com> Signed-off-by: Eric Miao <eric.y.miao@gmail.com>
-rw-r--r--arch/arm/mach-pxa/balloon3.c2
-rw-r--r--arch/arm/mach-pxa/capc7117.c2
-rw-r--r--arch/arm/mach-pxa/cm-x2xx.c13
-rw-r--r--arch/arm/mach-pxa/cm-x300.c2
-rw-r--r--arch/arm/mach-pxa/colibri-pxa270.c4
-rw-r--r--arch/arm/mach-pxa/colibri-pxa300.c2
-rw-r--r--arch/arm/mach-pxa/colibri-pxa320.c2
-rw-r--r--arch/arm/mach-pxa/corgi.c6
-rw-r--r--arch/arm/mach-pxa/csb726.c2
-rw-r--r--arch/arm/mach-pxa/em-x270.c4
-rw-r--r--arch/arm/mach-pxa/eseries.c12
-rw-r--r--arch/arm/mach-pxa/ezx.c12
-rw-r--r--arch/arm/mach-pxa/generic.c21
-rw-r--r--arch/arm/mach-pxa/generic.h4
-rw-r--r--arch/arm/mach-pxa/gumstix.c2
-rw-r--r--arch/arm/mach-pxa/h5000.c2
-rw-r--r--arch/arm/mach-pxa/himalaya.c2
-rw-r--r--arch/arm/mach-pxa/hx4700.c2
-rw-r--r--arch/arm/mach-pxa/icontrol.c2
-rw-r--r--arch/arm/mach-pxa/idp.c2
-rw-r--r--arch/arm/mach-pxa/littleton.c2
-rw-r--r--arch/arm/mach-pxa/lpd270.c2
-rw-r--r--arch/arm/mach-pxa/lubbock.c2
-rw-r--r--arch/arm/mach-pxa/magician.c2
-rw-r--r--arch/arm/mach-pxa/mainstone.c2
-rw-r--r--arch/arm/mach-pxa/mioa701.c2
-rw-r--r--arch/arm/mach-pxa/mp900.c2
-rw-r--r--arch/arm/mach-pxa/palmld.c2
-rw-r--r--arch/arm/mach-pxa/palmt5.c2
-rw-r--r--arch/arm/mach-pxa/palmtc.c2
-rw-r--r--arch/arm/mach-pxa/palmte2.c2
-rw-r--r--arch/arm/mach-pxa/palmtreo.c4
-rw-r--r--arch/arm/mach-pxa/palmtx.c2
-rw-r--r--arch/arm/mach-pxa/palmz72.c2
-rw-r--r--arch/arm/mach-pxa/pcm027.c2
-rw-r--r--arch/arm/mach-pxa/poodle.c2
-rw-r--r--arch/arm/mach-pxa/pxa25x.c17
-rw-r--r--arch/arm/mach-pxa/pxa27x.c22
-rw-r--r--arch/arm/mach-pxa/pxa3xx.c17
-rw-r--r--arch/arm/mach-pxa/raumfeld.c6
-rw-r--r--arch/arm/mach-pxa/saar.c2
-rw-r--r--arch/arm/mach-pxa/spitz.c7
-rw-r--r--arch/arm/mach-pxa/stargate2.c4
-rw-r--r--arch/arm/mach-pxa/tavorevb.c2
-rw-r--r--arch/arm/mach-pxa/tavorevb3.c2
-rw-r--r--arch/arm/mach-pxa/tosa.c2
-rw-r--r--arch/arm/mach-pxa/trizeps4.c2
-rw-r--r--arch/arm/mach-pxa/viper.c2
-rw-r--r--arch/arm/mach-pxa/vpac270.c2
-rw-r--r--arch/arm/mach-pxa/xcep.c2
-rw-r--r--arch/arm/mach-pxa/z2.c2
-rw-r--r--arch/arm/mach-pxa/zeus.c2
-rw-r--r--arch/arm/mach-pxa/zylonite.c2
53 files changed, 143 insertions, 86 deletions
diff --git a/arch/arm/mach-pxa/balloon3.c b/arch/arm/mach-pxa/balloon3.c
index 21e188901935..adb8e9f355d1 100644
--- a/arch/arm/mach-pxa/balloon3.c
+++ b/arch/arm/mach-pxa/balloon3.c
@@ -802,7 +802,7 @@ static struct map_desc balloon3_io_desc[] __initdata = {
802 802
803static void __init balloon3_map_io(void) 803static void __init balloon3_map_io(void)
804{ 804{
805 pxa_map_io(); 805 pxa27x_map_io();
806 iotable_init(balloon3_io_desc, ARRAY_SIZE(balloon3_io_desc)); 806 iotable_init(balloon3_io_desc, ARRAY_SIZE(balloon3_io_desc));
807} 807}
808 808
diff --git a/arch/arm/mach-pxa/capc7117.c b/arch/arm/mach-pxa/capc7117.c
index 4bd7a3cda48c..4284513f396a 100644
--- a/arch/arm/mach-pxa/capc7117.c
+++ b/arch/arm/mach-pxa/capc7117.c
@@ -149,7 +149,7 @@ static void __init capc7117_init(void)
149MACHINE_START(CAPC7117, 149MACHINE_START(CAPC7117,
150 "Embedian CAPC-7117 evaluation kit based on the MXM-8x10 CoM") 150 "Embedian CAPC-7117 evaluation kit based on the MXM-8x10 CoM")
151 .boot_params = 0xa0000100, 151 .boot_params = 0xa0000100,
152 .map_io = pxa_map_io, 152 .map_io = pxa3xx_map_io,
153 .init_irq = pxa3xx_init_irq, 153 .init_irq = pxa3xx_init_irq,
154 .timer = &pxa_timer, 154 .timer = &pxa_timer,
155 .init_machine = capc7117_init 155 .init_machine = capc7117_init
diff --git a/arch/arm/mach-pxa/cm-x2xx.c b/arch/arm/mach-pxa/cm-x2xx.c
index d34b99febeb9..47e242005fac 100644
--- a/arch/arm/mach-pxa/cm-x2xx.c
+++ b/arch/arm/mach-pxa/cm-x2xx.c
@@ -498,7 +498,12 @@ static struct map_desc cmx2xx_io_desc[] __initdata = {
498 498
499static void __init cmx2xx_map_io(void) 499static void __init cmx2xx_map_io(void)
500{ 500{
501 pxa_map_io(); 501 if (cpu_is_pxa25x())
502 pxa25x_map_io();
503
504 if (cpu_is_pxa27x())
505 pxa27x_map_io();
506
502 iotable_init(cmx2xx_io_desc, ARRAY_SIZE(cmx2xx_io_desc)); 507 iotable_init(cmx2xx_io_desc, ARRAY_SIZE(cmx2xx_io_desc));
503 508
504 it8152_base_address = CMX2XX_IT8152_VIRT; 509 it8152_base_address = CMX2XX_IT8152_VIRT;
@@ -506,7 +511,11 @@ static void __init cmx2xx_map_io(void)
506#else 511#else
507static void __init cmx2xx_map_io(void) 512static void __init cmx2xx_map_io(void)
508{ 513{
509 pxa_map_io(); 514 if (cpu_is_pxa25x())
515 pxa25x_map_io();
516
517 if (cpu_is_pxa27x())
518 pxa27x_map_io();
510} 519}
511#endif 520#endif
512 521
diff --git a/arch/arm/mach-pxa/cm-x300.c b/arch/arm/mach-pxa/cm-x300.c
index 922b1075b9de..7984268508b6 100644
--- a/arch/arm/mach-pxa/cm-x300.c
+++ b/arch/arm/mach-pxa/cm-x300.c
@@ -857,7 +857,7 @@ static void __init cm_x300_fixup(struct machine_desc *mdesc, struct tag *tags,
857 857
858MACHINE_START(CM_X300, "CM-X300 module") 858MACHINE_START(CM_X300, "CM-X300 module")
859 .boot_params = 0xa0000100, 859 .boot_params = 0xa0000100,
860 .map_io = pxa_map_io, 860 .map_io = pxa3xx_map_io,
861 .init_irq = pxa3xx_init_irq, 861 .init_irq = pxa3xx_init_irq,
862 .timer = &pxa_timer, 862 .timer = &pxa_timer,
863 .init_machine = cm_x300_init, 863 .init_machine = cm_x300_init,
diff --git a/arch/arm/mach-pxa/colibri-pxa270.c b/arch/arm/mach-pxa/colibri-pxa270.c
index bc045100ec15..73205bc4a13c 100644
--- a/arch/arm/mach-pxa/colibri-pxa270.c
+++ b/arch/arm/mach-pxa/colibri-pxa270.c
@@ -209,7 +209,7 @@ static void __init colibri_pxa270_income_init(void)
209MACHINE_START(COLIBRI, "Toradex Colibri PXA270") 209MACHINE_START(COLIBRI, "Toradex Colibri PXA270")
210 .boot_params = COLIBRI_SDRAM_BASE + 0x100, 210 .boot_params = COLIBRI_SDRAM_BASE + 0x100,
211 .init_machine = colibri_pxa270_init, 211 .init_machine = colibri_pxa270_init,
212 .map_io = pxa_map_io, 212 .map_io = pxa27x_map_io,
213 .init_irq = pxa27x_init_irq, 213 .init_irq = pxa27x_init_irq,
214 .timer = &pxa_timer, 214 .timer = &pxa_timer,
215MACHINE_END 215MACHINE_END
@@ -217,7 +217,7 @@ MACHINE_END
217MACHINE_START(INCOME, "Income s.r.o. SH-Dmaster PXA270 SBC") 217MACHINE_START(INCOME, "Income s.r.o. SH-Dmaster PXA270 SBC")
218 .boot_params = 0xa0000100, 218 .boot_params = 0xa0000100,
219 .init_machine = colibri_pxa270_income_init, 219 .init_machine = colibri_pxa270_income_init,
220 .map_io = pxa_map_io, 220 .map_io = pxa27x_map_io,
221 .init_irq = pxa27x_init_irq, 221 .init_irq = pxa27x_init_irq,
222 .timer = &pxa_timer, 222 .timer = &pxa_timer,
223MACHINE_END 223MACHINE_END
diff --git a/arch/arm/mach-pxa/colibri-pxa300.c b/arch/arm/mach-pxa/colibri-pxa300.c
index a70b256591e6..d039bd1e2e40 100644
--- a/arch/arm/mach-pxa/colibri-pxa300.c
+++ b/arch/arm/mach-pxa/colibri-pxa300.c
@@ -188,7 +188,7 @@ void __init colibri_pxa300_init(void)
188MACHINE_START(COLIBRI300, "Toradex Colibri PXA300") 188MACHINE_START(COLIBRI300, "Toradex Colibri PXA300")
189 .boot_params = COLIBRI_SDRAM_BASE + 0x100, 189 .boot_params = COLIBRI_SDRAM_BASE + 0x100,
190 .init_machine = colibri_pxa300_init, 190 .init_machine = colibri_pxa300_init,
191 .map_io = pxa_map_io, 191 .map_io = pxa3xx_map_io,
192 .init_irq = pxa3xx_init_irq, 192 .init_irq = pxa3xx_init_irq,
193 .timer = &pxa_timer, 193 .timer = &pxa_timer,
194MACHINE_END 194MACHINE_END
diff --git a/arch/arm/mach-pxa/colibri-pxa320.c b/arch/arm/mach-pxa/colibri-pxa320.c
index ca5f29e2e9cd..ccb2c59b2a3b 100644
--- a/arch/arm/mach-pxa/colibri-pxa320.c
+++ b/arch/arm/mach-pxa/colibri-pxa320.c
@@ -257,7 +257,7 @@ void __init colibri_pxa320_init(void)
257MACHINE_START(COLIBRI320, "Toradex Colibri PXA320") 257MACHINE_START(COLIBRI320, "Toradex Colibri PXA320")
258 .boot_params = COLIBRI_SDRAM_BASE + 0x100, 258 .boot_params = COLIBRI_SDRAM_BASE + 0x100,
259 .init_machine = colibri_pxa320_init, 259 .init_machine = colibri_pxa320_init,
260 .map_io = pxa_map_io, 260 .map_io = pxa3xx_map_io,
261 .init_irq = pxa3xx_init_irq, 261 .init_irq = pxa3xx_init_irq,
262 .timer = &pxa_timer, 262 .timer = &pxa_timer,
263MACHINE_END 263MACHINE_END
diff --git a/arch/arm/mach-pxa/corgi.c b/arch/arm/mach-pxa/corgi.c
index 821229acabe6..9f3e5af0a0db 100644
--- a/arch/arm/mach-pxa/corgi.c
+++ b/arch/arm/mach-pxa/corgi.c
@@ -721,7 +721,7 @@ static void __init fixup_corgi(struct machine_desc *desc,
721#ifdef CONFIG_MACH_CORGI 721#ifdef CONFIG_MACH_CORGI
722MACHINE_START(CORGI, "SHARP Corgi") 722MACHINE_START(CORGI, "SHARP Corgi")
723 .fixup = fixup_corgi, 723 .fixup = fixup_corgi,
724 .map_io = pxa_map_io, 724 .map_io = pxa25x_map_io,
725 .init_irq = pxa25x_init_irq, 725 .init_irq = pxa25x_init_irq,
726 .init_machine = corgi_init, 726 .init_machine = corgi_init,
727 .timer = &pxa_timer, 727 .timer = &pxa_timer,
@@ -731,7 +731,7 @@ MACHINE_END
731#ifdef CONFIG_MACH_SHEPHERD 731#ifdef CONFIG_MACH_SHEPHERD
732MACHINE_START(SHEPHERD, "SHARP Shepherd") 732MACHINE_START(SHEPHERD, "SHARP Shepherd")
733 .fixup = fixup_corgi, 733 .fixup = fixup_corgi,
734 .map_io = pxa_map_io, 734 .map_io = pxa25x_map_io,
735 .init_irq = pxa25x_init_irq, 735 .init_irq = pxa25x_init_irq,
736 .init_machine = corgi_init, 736 .init_machine = corgi_init,
737 .timer = &pxa_timer, 737 .timer = &pxa_timer,
@@ -741,7 +741,7 @@ MACHINE_END
741#ifdef CONFIG_MACH_HUSKY 741#ifdef CONFIG_MACH_HUSKY
742MACHINE_START(HUSKY, "SHARP Husky") 742MACHINE_START(HUSKY, "SHARP Husky")
743 .fixup = fixup_corgi, 743 .fixup = fixup_corgi,
744 .map_io = pxa_map_io, 744 .map_io = pxa25x_map_io,
745 .init_irq = pxa25x_init_irq, 745 .init_irq = pxa25x_init_irq,
746 .init_machine = corgi_init, 746 .init_machine = corgi_init,
747 .timer = &pxa_timer, 747 .timer = &pxa_timer,
diff --git a/arch/arm/mach-pxa/csb726.c b/arch/arm/mach-pxa/csb726.c
index 57cacaff194d..225a2a117812 100644
--- a/arch/arm/mach-pxa/csb726.c
+++ b/arch/arm/mach-pxa/csb726.c
@@ -273,7 +273,7 @@ static void __init csb726_init(void)
273 273
274MACHINE_START(CSB726, "Cogent CSB726") 274MACHINE_START(CSB726, "Cogent CSB726")
275 .boot_params = 0xa0000100, 275 .boot_params = 0xa0000100,
276 .map_io = pxa_map_io, 276 .map_io = pxa27x_map_io,
277 .init_irq = pxa27x_init_irq, 277 .init_irq = pxa27x_init_irq,
278 .init_machine = csb726_init, 278 .init_machine = csb726_init,
279 .timer = &pxa_timer, 279 .timer = &pxa_timer,
diff --git a/arch/arm/mach-pxa/em-x270.c b/arch/arm/mach-pxa/em-x270.c
index ed0dbfdb22ed..4cefd1d18afd 100644
--- a/arch/arm/mach-pxa/em-x270.c
+++ b/arch/arm/mach-pxa/em-x270.c
@@ -1300,7 +1300,7 @@ static void __init em_x270_init(void)
1300 1300
1301MACHINE_START(EM_X270, "Compulab EM-X270") 1301MACHINE_START(EM_X270, "Compulab EM-X270")
1302 .boot_params = 0xa0000100, 1302 .boot_params = 0xa0000100,
1303 .map_io = pxa_map_io, 1303 .map_io = pxa27x_map_io,
1304 .init_irq = pxa27x_init_irq, 1304 .init_irq = pxa27x_init_irq,
1305 .timer = &pxa_timer, 1305 .timer = &pxa_timer,
1306 .init_machine = em_x270_init, 1306 .init_machine = em_x270_init,
@@ -1308,7 +1308,7 @@ MACHINE_END
1308 1308
1309MACHINE_START(EXEDA, "Compulab eXeda") 1309MACHINE_START(EXEDA, "Compulab eXeda")
1310 .boot_params = 0xa0000100, 1310 .boot_params = 0xa0000100,
1311 .map_io = pxa_map_io, 1311 .map_io = pxa27x_map_io,
1312 .init_irq = pxa27x_init_irq, 1312 .init_irq = pxa27x_init_irq,
1313 .timer = &pxa_timer, 1313 .timer = &pxa_timer,
1314 .init_machine = em_x270_init, 1314 .init_machine = em_x270_init,
diff --git a/arch/arm/mach-pxa/eseries.c b/arch/arm/mach-pxa/eseries.c
index b25690ccadc4..edca0a043293 100644
--- a/arch/arm/mach-pxa/eseries.c
+++ b/arch/arm/mach-pxa/eseries.c
@@ -181,7 +181,7 @@ static void __init e330_init(void)
181MACHINE_START(E330, "Toshiba e330") 181MACHINE_START(E330, "Toshiba e330")
182 /* Maintainer: Ian Molton (spyro@f2s.com) */ 182 /* Maintainer: Ian Molton (spyro@f2s.com) */
183 .boot_params = 0xa0000100, 183 .boot_params = 0xa0000100,
184 .map_io = pxa_map_io, 184 .map_io = pxa25x_map_io,
185 .nr_irqs = ESERIES_NR_IRQS, 185 .nr_irqs = ESERIES_NR_IRQS,
186 .init_irq = pxa25x_init_irq, 186 .init_irq = pxa25x_init_irq,
187 .fixup = eseries_fixup, 187 .fixup = eseries_fixup,
@@ -230,7 +230,7 @@ static void __init e350_init(void)
230MACHINE_START(E350, "Toshiba e350") 230MACHINE_START(E350, "Toshiba e350")
231 /* Maintainer: Ian Molton (spyro@f2s.com) */ 231 /* Maintainer: Ian Molton (spyro@f2s.com) */
232 .boot_params = 0xa0000100, 232 .boot_params = 0xa0000100,
233 .map_io = pxa_map_io, 233 .map_io = pxa25x_map_io,
234 .nr_irqs = ESERIES_NR_IRQS, 234 .nr_irqs = ESERIES_NR_IRQS,
235 .init_irq = pxa25x_init_irq, 235 .init_irq = pxa25x_init_irq,
236 .fixup = eseries_fixup, 236 .fixup = eseries_fixup,
@@ -352,7 +352,7 @@ static void __init e400_init(void)
352MACHINE_START(E400, "Toshiba e400") 352MACHINE_START(E400, "Toshiba e400")
353 /* Maintainer: Ian Molton (spyro@f2s.com) */ 353 /* Maintainer: Ian Molton (spyro@f2s.com) */
354 .boot_params = 0xa0000100, 354 .boot_params = 0xa0000100,
355 .map_io = pxa_map_io, 355 .map_io = pxa25x_map_io,
356 .nr_irqs = ESERIES_NR_IRQS, 356 .nr_irqs = ESERIES_NR_IRQS,
357 .init_irq = pxa25x_init_irq, 357 .init_irq = pxa25x_init_irq,
358 .fixup = eseries_fixup, 358 .fixup = eseries_fixup,
@@ -540,7 +540,7 @@ static void __init e740_init(void)
540MACHINE_START(E740, "Toshiba e740") 540MACHINE_START(E740, "Toshiba e740")
541 /* Maintainer: Ian Molton (spyro@f2s.com) */ 541 /* Maintainer: Ian Molton (spyro@f2s.com) */
542 .boot_params = 0xa0000100, 542 .boot_params = 0xa0000100,
543 .map_io = pxa_map_io, 543 .map_io = pxa25x_map_io,
544 .nr_irqs = ESERIES_NR_IRQS, 544 .nr_irqs = ESERIES_NR_IRQS,
545 .init_irq = pxa25x_init_irq, 545 .init_irq = pxa25x_init_irq,
546 .fixup = eseries_fixup, 546 .fixup = eseries_fixup,
@@ -731,7 +731,7 @@ static void __init e750_init(void)
731MACHINE_START(E750, "Toshiba e750") 731MACHINE_START(E750, "Toshiba e750")
732 /* Maintainer: Ian Molton (spyro@f2s.com) */ 732 /* Maintainer: Ian Molton (spyro@f2s.com) */
733 .boot_params = 0xa0000100, 733 .boot_params = 0xa0000100,
734 .map_io = pxa_map_io, 734 .map_io = pxa25x_map_io,
735 .nr_irqs = ESERIES_NR_IRQS, 735 .nr_irqs = ESERIES_NR_IRQS,
736 .init_irq = pxa25x_init_irq, 736 .init_irq = pxa25x_init_irq,
737 .fixup = eseries_fixup, 737 .fixup = eseries_fixup,
@@ -926,7 +926,7 @@ static void __init e800_init(void)
926MACHINE_START(E800, "Toshiba e800") 926MACHINE_START(E800, "Toshiba e800")
927 /* Maintainer: Ian Molton (spyro@f2s.com) */ 927 /* Maintainer: Ian Molton (spyro@f2s.com) */
928 .boot_params = 0xa0000100, 928 .boot_params = 0xa0000100,
929 .map_io = pxa_map_io, 929 .map_io = pxa25x_map_io,
930 .nr_irqs = ESERIES_NR_IRQS, 930 .nr_irqs = ESERIES_NR_IRQS,
931 .init_irq = pxa25x_init_irq, 931 .init_irq = pxa25x_init_irq,
932 .fixup = eseries_fixup, 932 .fixup = eseries_fixup,
diff --git a/arch/arm/mach-pxa/ezx.c b/arch/arm/mach-pxa/ezx.c
index 142c711f4cda..87cec0abe5b0 100644
--- a/arch/arm/mach-pxa/ezx.c
+++ b/arch/arm/mach-pxa/ezx.c
@@ -798,7 +798,7 @@ static void __init a780_init(void)
798 798
799MACHINE_START(EZX_A780, "Motorola EZX A780") 799MACHINE_START(EZX_A780, "Motorola EZX A780")
800 .boot_params = 0xa0000100, 800 .boot_params = 0xa0000100,
801 .map_io = pxa_map_io, 801 .map_io = pxa27x_map_io,
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 .timer = &pxa_timer, 804 .timer = &pxa_timer,
@@ -863,7 +863,7 @@ static void __init e680_init(void)
863 863
864MACHINE_START(EZX_E680, "Motorola EZX E680") 864MACHINE_START(EZX_E680, "Motorola EZX E680")
865 .boot_params = 0xa0000100, 865 .boot_params = 0xa0000100,
866 .map_io = pxa_map_io, 866 .map_io = pxa27x_map_io,
867 .nr_irqs = EZX_NR_IRQS, 867 .nr_irqs = EZX_NR_IRQS,
868 .init_irq = pxa27x_init_irq, 868 .init_irq = pxa27x_init_irq,
869 .timer = &pxa_timer, 869 .timer = &pxa_timer,
@@ -928,7 +928,7 @@ static void __init a1200_init(void)
928 928
929MACHINE_START(EZX_A1200, "Motorola EZX A1200") 929MACHINE_START(EZX_A1200, "Motorola EZX A1200")
930 .boot_params = 0xa0000100, 930 .boot_params = 0xa0000100,
931 .map_io = pxa_map_io, 931 .map_io = pxa27x_map_io,
932 .nr_irqs = EZX_NR_IRQS, 932 .nr_irqs = EZX_NR_IRQS,
933 .init_irq = pxa27x_init_irq, 933 .init_irq = pxa27x_init_irq,
934 .timer = &pxa_timer, 934 .timer = &pxa_timer,
@@ -1118,7 +1118,7 @@ static void __init a910_init(void)
1118 1118
1119MACHINE_START(EZX_A910, "Motorola EZX A910") 1119MACHINE_START(EZX_A910, "Motorola EZX A910")
1120 .boot_params = 0xa0000100, 1120 .boot_params = 0xa0000100,
1121 .map_io = pxa_map_io, 1121 .map_io = pxa27x_map_io,
1122 .nr_irqs = EZX_NR_IRQS, 1122 .nr_irqs = EZX_NR_IRQS,
1123 .init_irq = pxa27x_init_irq, 1123 .init_irq = pxa27x_init_irq,
1124 .timer = &pxa_timer, 1124 .timer = &pxa_timer,
@@ -1183,7 +1183,7 @@ static void __init e6_init(void)
1183 1183
1184MACHINE_START(EZX_E6, "Motorola EZX E6") 1184MACHINE_START(EZX_E6, "Motorola EZX E6")
1185 .boot_params = 0xa0000100, 1185 .boot_params = 0xa0000100,
1186 .map_io = pxa_map_io, 1186 .map_io = pxa27x_map_io,
1187 .nr_irqs = EZX_NR_IRQS, 1187 .nr_irqs = EZX_NR_IRQS,
1188 .init_irq = pxa27x_init_irq, 1188 .init_irq = pxa27x_init_irq,
1189 .timer = &pxa_timer, 1189 .timer = &pxa_timer,
@@ -1222,7 +1222,7 @@ static void __init e2_init(void)
1222 1222
1223MACHINE_START(EZX_E2, "Motorola EZX E2") 1223MACHINE_START(EZX_E2, "Motorola EZX E2")
1224 .boot_params = 0xa0000100, 1224 .boot_params = 0xa0000100,
1225 .map_io = pxa_map_io, 1225 .map_io = pxa27x_map_io,
1226 .nr_irqs = EZX_NR_IRQS, 1226 .nr_irqs = EZX_NR_IRQS,
1227 .init_irq = pxa27x_init_irq, 1227 .init_irq = pxa27x_init_irq,
1228 .timer = &pxa_timer, 1228 .timer = &pxa_timer,
diff --git a/arch/arm/mach-pxa/generic.c b/arch/arm/mach-pxa/generic.c
index 69a89fe4ce8d..6a5f37935378 100644
--- a/arch/arm/mach-pxa/generic.c
+++ b/arch/arm/mach-pxa/generic.c
@@ -86,27 +86,15 @@ EXPORT_SYMBOL(get_memclk_frequency_10khz);
86/* 86/*
87 * Intel PXA2xx internal register mapping. 87 * Intel PXA2xx internal register mapping.
88 * 88 *
89 * Note 1: not all PXA2xx variants implement all those addresses. 89 * Note: virtual 0xfffe0000-0xffffffff is reserved for the vector table
90 * 90 * and cache flush area.
91 * Note 2: virtual 0xfffe0000-0xffffffff is reserved for the vector table
92 * and cache flush area.
93 */ 91 */
94static struct map_desc standard_io_desc[] __initdata = { 92static struct map_desc common_io_desc[] __initdata = {
95 { /* Devs */ 93 { /* Devs */
96 .virtual = 0xf2000000, 94 .virtual = 0xf2000000,
97 .pfn = __phys_to_pfn(0x40000000), 95 .pfn = __phys_to_pfn(0x40000000),
98 .length = 0x02000000, 96 .length = 0x02000000,
99 .type = MT_DEVICE 97 .type = MT_DEVICE
100 }, { /* Mem Ctl */
101 .virtual = 0xf6000000,
102 .pfn = __phys_to_pfn(0x48000000),
103 .length = 0x00200000,
104 .type = MT_DEVICE
105 }, { /* IMem ctl */
106 .virtual = 0xfe000000,
107 .pfn = __phys_to_pfn(0x58000000),
108 .length = 0x00100000,
109 .type = MT_DEVICE
110 }, { /* UNCACHED_PHYS_0 */ 98 }, { /* UNCACHED_PHYS_0 */
111 .virtual = 0xff000000, 99 .virtual = 0xff000000,
112 .pfn = __phys_to_pfn(0x00000000), 100 .pfn = __phys_to_pfn(0x00000000),
@@ -117,6 +105,5 @@ static struct map_desc standard_io_desc[] __initdata = {
117 105
118void __init pxa_map_io(void) 106void __init pxa_map_io(void)
119{ 107{
120 iotable_init(standard_io_desc, ARRAY_SIZE(standard_io_desc)); 108 iotable_init(ARRAY_AND_SIZE(common_io_desc));
121 get_clk_frequency_khz(1);
122} 109}
diff --git a/arch/arm/mach-pxa/generic.h b/arch/arm/mach-pxa/generic.h
index 4b1ad2769ed7..d2e8bc3aa521 100644
--- a/arch/arm/mach-pxa/generic.h
+++ b/arch/arm/mach-pxa/generic.h
@@ -20,7 +20,11 @@ extern void __init pxa26x_init_irq(void);
20#endif 20#endif
21extern void __init pxa27x_init_irq(void); 21extern void __init pxa27x_init_irq(void);
22extern void __init pxa3xx_init_irq(void); 22extern void __init pxa3xx_init_irq(void);
23
23extern void __init pxa_map_io(void); 24extern void __init pxa_map_io(void);
25extern void __init pxa25x_map_io(void);
26extern void __init pxa27x_map_io(void);
27extern void __init pxa3xx_map_io(void);
24 28
25extern unsigned int get_clk_frequency_khz(int info); 29extern unsigned int get_clk_frequency_khz(int info);
26 30
diff --git a/arch/arm/mach-pxa/gumstix.c b/arch/arm/mach-pxa/gumstix.c
index 1e2a9a13aec1..6fd319ea5284 100644
--- a/arch/arm/mach-pxa/gumstix.c
+++ b/arch/arm/mach-pxa/gumstix.c
@@ -225,7 +225,7 @@ static void __init gumstix_init(void)
225 225
226MACHINE_START(GUMSTIX, "Gumstix") 226MACHINE_START(GUMSTIX, "Gumstix")
227 .boot_params = 0xa0000100, /* match u-boot bi_boot_params */ 227 .boot_params = 0xa0000100, /* match u-boot bi_boot_params */
228 .map_io = pxa_map_io, 228 .map_io = pxa25x_map_io,
229 .init_irq = pxa25x_init_irq, 229 .init_irq = pxa25x_init_irq,
230 .timer = &pxa_timer, 230 .timer = &pxa_timer,
231 .init_machine = gumstix_init, 231 .init_machine = gumstix_init,
diff --git a/arch/arm/mach-pxa/h5000.c b/arch/arm/mach-pxa/h5000.c
index 7057a1f46db4..0ef16351bf9d 100644
--- a/arch/arm/mach-pxa/h5000.c
+++ b/arch/arm/mach-pxa/h5000.c
@@ -202,7 +202,7 @@ static void __init h5000_init(void)
202 202
203MACHINE_START(H5400, "HP iPAQ H5000") 203MACHINE_START(H5400, "HP iPAQ H5000")
204 .boot_params = 0xa0000100, 204 .boot_params = 0xa0000100,
205 .map_io = pxa_map_io, 205 .map_io = pxa25x_map_io,
206 .init_irq = pxa25x_init_irq, 206 .init_irq = pxa25x_init_irq,
207 .timer = &pxa_timer, 207 .timer = &pxa_timer,
208 .init_machine = h5000_init, 208 .init_machine = h5000_init,
diff --git a/arch/arm/mach-pxa/himalaya.c b/arch/arm/mach-pxa/himalaya.c
index 01b7f07ebad2..e8603eba54bd 100644
--- a/arch/arm/mach-pxa/himalaya.c
+++ b/arch/arm/mach-pxa/himalaya.c
@@ -160,7 +160,7 @@ static void __init himalaya_init(void)
160 160
161MACHINE_START(HIMALAYA, "HTC Himalaya") 161MACHINE_START(HIMALAYA, "HTC Himalaya")
162 .boot_params = 0xa0000100, 162 .boot_params = 0xa0000100,
163 .map_io = pxa_map_io, 163 .map_io = pxa25x_map_io,
164 .init_irq = pxa25x_init_irq, 164 .init_irq = pxa25x_init_irq,
165 .init_machine = himalaya_init, 165 .init_machine = himalaya_init,
166 .timer = &pxa_timer, 166 .timer = &pxa_timer,
diff --git a/arch/arm/mach-pxa/hx4700.c b/arch/arm/mach-pxa/hx4700.c
index 76d93a25bab6..cacb21b7014d 100644
--- a/arch/arm/mach-pxa/hx4700.c
+++ b/arch/arm/mach-pxa/hx4700.c
@@ -871,7 +871,7 @@ static void __init hx4700_init(void)
871 871
872MACHINE_START(H4700, "HP iPAQ HX4700") 872MACHINE_START(H4700, "HP iPAQ HX4700")
873 .boot_params = 0xa0000100, 873 .boot_params = 0xa0000100,
874 .map_io = pxa_map_io, 874 .map_io = pxa27x_map_io,
875 .nr_irqs = HX4700_NR_IRQS, 875 .nr_irqs = HX4700_NR_IRQS,
876 .init_irq = pxa27x_init_irq, 876 .init_irq = pxa27x_init_irq,
877 .init_machine = hx4700_init, 877 .init_machine = hx4700_init,
diff --git a/arch/arm/mach-pxa/icontrol.c b/arch/arm/mach-pxa/icontrol.c
index d51ee3d25e70..ac6ee12e400e 100644
--- a/arch/arm/mach-pxa/icontrol.c
+++ b/arch/arm/mach-pxa/icontrol.c
@@ -192,7 +192,7 @@ static void __init icontrol_init(void)
192 192
193MACHINE_START(ICONTROL, "iControl/SafeTcam boards using Embedian MXM-8x10 CoM") 193MACHINE_START(ICONTROL, "iControl/SafeTcam boards using Embedian MXM-8x10 CoM")
194 .boot_params = 0xa0000100, 194 .boot_params = 0xa0000100,
195 .map_io = pxa_map_io, 195 .map_io = pxa3xx_map_io,
196 .init_irq = pxa3xx_init_irq, 196 .init_irq = pxa3xx_init_irq,
197 .timer = &pxa_timer, 197 .timer = &pxa_timer,
198 .init_machine = icontrol_init 198 .init_machine = icontrol_init
diff --git a/arch/arm/mach-pxa/idp.c b/arch/arm/mach-pxa/idp.c
index e773dceeabc6..dd40e4a9291c 100644
--- a/arch/arm/mach-pxa/idp.c
+++ b/arch/arm/mach-pxa/idp.c
@@ -187,7 +187,7 @@ static struct map_desc idp_io_desc[] __initdata = {
187 187
188static void __init idp_map_io(void) 188static void __init idp_map_io(void)
189{ 189{
190 pxa_map_io(); 190 pxa25x_map_io();
191 iotable_init(idp_io_desc, ARRAY_SIZE(idp_io_desc)); 191 iotable_init(idp_io_desc, ARRAY_SIZE(idp_io_desc));
192} 192}
193 193
diff --git a/arch/arm/mach-pxa/littleton.c b/arch/arm/mach-pxa/littleton.c
index 41aa89e35772..719c260597e7 100644
--- a/arch/arm/mach-pxa/littleton.c
+++ b/arch/arm/mach-pxa/littleton.c
@@ -438,7 +438,7 @@ static void __init littleton_init(void)
438 438
439MACHINE_START(LITTLETON, "Marvell Form Factor Development Platform (aka Littleton)") 439MACHINE_START(LITTLETON, "Marvell Form Factor Development Platform (aka Littleton)")
440 .boot_params = 0xa0000100, 440 .boot_params = 0xa0000100,
441 .map_io = pxa_map_io, 441 .map_io = pxa3xx_map_io,
442 .nr_irqs = LITTLETON_NR_IRQS, 442 .nr_irqs = LITTLETON_NR_IRQS,
443 .init_irq = pxa3xx_init_irq, 443 .init_irq = pxa3xx_init_irq,
444 .timer = &pxa_timer, 444 .timer = &pxa_timer,
diff --git a/arch/arm/mach-pxa/lpd270.c b/arch/arm/mach-pxa/lpd270.c
index 623af0232a54..db615d578c0e 100644
--- a/arch/arm/mach-pxa/lpd270.c
+++ b/arch/arm/mach-pxa/lpd270.c
@@ -495,7 +495,7 @@ static struct map_desc lpd270_io_desc[] __initdata = {
495 495
496static void __init lpd270_map_io(void) 496static void __init lpd270_map_io(void)
497{ 497{
498 pxa_map_io(); 498 pxa27x_map_io();
499 iotable_init(lpd270_io_desc, ARRAY_SIZE(lpd270_io_desc)); 499 iotable_init(lpd270_io_desc, ARRAY_SIZE(lpd270_io_desc));
500 500
501 /* for use I SRAM as framebuffer. */ 501 /* for use I SRAM as framebuffer. */
diff --git a/arch/arm/mach-pxa/lubbock.c b/arch/arm/mach-pxa/lubbock.c
index 1499493cd070..5b1cc1c01c67 100644
--- a/arch/arm/mach-pxa/lubbock.c
+++ b/arch/arm/mach-pxa/lubbock.c
@@ -549,7 +549,7 @@ static struct map_desc lubbock_io_desc[] __initdata = {
549 549
550static void __init lubbock_map_io(void) 550static void __init lubbock_map_io(void)
551{ 551{
552 pxa_map_io(); 552 pxa25x_map_io();
553 iotable_init(lubbock_io_desc, ARRAY_SIZE(lubbock_io_desc)); 553 iotable_init(lubbock_io_desc, ARRAY_SIZE(lubbock_io_desc));
554 554
555 PCFR |= PCFR_OPDE; 555 PCFR |= PCFR_OPDE;
diff --git a/arch/arm/mach-pxa/magician.c b/arch/arm/mach-pxa/magician.c
index 90663760307a..41198f0dc3ac 100644
--- a/arch/arm/mach-pxa/magician.c
+++ b/arch/arm/mach-pxa/magician.c
@@ -765,7 +765,7 @@ static void __init magician_init(void)
765 765
766MACHINE_START(MAGICIAN, "HTC Magician") 766MACHINE_START(MAGICIAN, "HTC Magician")
767 .boot_params = 0xa0000100, 767 .boot_params = 0xa0000100,
768 .map_io = pxa_map_io, 768 .map_io = pxa27x_map_io,
769 .nr_irqs = MAGICIAN_NR_IRQS, 769 .nr_irqs = MAGICIAN_NR_IRQS,
770 .init_irq = pxa27x_init_irq, 770 .init_irq = pxa27x_init_irq,
771 .init_machine = magician_init, 771 .init_machine = magician_init,
diff --git a/arch/arm/mach-pxa/mainstone.c b/arch/arm/mach-pxa/mainstone.c
index a980a5c93e49..8bef7c8bcbb7 100644
--- a/arch/arm/mach-pxa/mainstone.c
+++ b/arch/arm/mach-pxa/mainstone.c
@@ -614,7 +614,7 @@ static struct map_desc mainstone_io_desc[] __initdata = {
614 614
615static void __init mainstone_map_io(void) 615static void __init mainstone_map_io(void)
616{ 616{
617 pxa_map_io(); 617 pxa27x_map_io();
618 iotable_init(mainstone_io_desc, ARRAY_SIZE(mainstone_io_desc)); 618 iotable_init(mainstone_io_desc, ARRAY_SIZE(mainstone_io_desc));
619 619
620 /* for use I SRAM as framebuffer. */ 620 /* for use I SRAM as framebuffer. */
diff --git a/arch/arm/mach-pxa/mioa701.c b/arch/arm/mach-pxa/mioa701.c
index f5fb915e1315..faafea3542fb 100644
--- a/arch/arm/mach-pxa/mioa701.c
+++ b/arch/arm/mach-pxa/mioa701.c
@@ -819,7 +819,7 @@ static void mioa701_machine_exit(void)
819 819
820MACHINE_START(MIOA701, "MIO A701") 820MACHINE_START(MIOA701, "MIO A701")
821 .boot_params = 0xa0000100, 821 .boot_params = 0xa0000100,
822 .map_io = &pxa_map_io, 822 .map_io = &pxa27x_map_io,
823 .init_irq = &pxa27x_init_irq, 823 .init_irq = &pxa27x_init_irq,
824 .init_machine = mioa701_machine_init, 824 .init_machine = mioa701_machine_init,
825 .timer = &pxa_timer, 825 .timer = &pxa_timer,
diff --git a/arch/arm/mach-pxa/mp900.c b/arch/arm/mach-pxa/mp900.c
index 116167aaba68..59cce78aebd1 100644
--- a/arch/arm/mach-pxa/mp900.c
+++ b/arch/arm/mach-pxa/mp900.c
@@ -94,7 +94,7 @@ static void __init mp900c_init(void)
94MACHINE_START(NEC_MP900, "MobilePro900/C") 94MACHINE_START(NEC_MP900, "MobilePro900/C")
95 .boot_params = 0xa0220100, 95 .boot_params = 0xa0220100,
96 .timer = &pxa_timer, 96 .timer = &pxa_timer,
97 .map_io = pxa_map_io, 97 .map_io = pxa25x_map_io,
98 .init_irq = pxa25x_init_irq, 98 .init_irq = pxa25x_init_irq,
99 .init_machine = mp900c_init, 99 .init_machine = mp900c_init,
100MACHINE_END 100MACHINE_END
diff --git a/arch/arm/mach-pxa/palmld.c b/arch/arm/mach-pxa/palmld.c
index ce092c521e6d..a6f898cbfac9 100644
--- a/arch/arm/mach-pxa/palmld.c
+++ b/arch/arm/mach-pxa/palmld.c
@@ -313,7 +313,7 @@ static struct map_desc palmld_io_desc[] __initdata = {
313 313
314static void __init palmld_map_io(void) 314static void __init palmld_map_io(void)
315{ 315{
316 pxa_map_io(); 316 pxa27x_map_io();
317 iotable_init(palmld_io_desc, ARRAY_SIZE(palmld_io_desc)); 317 iotable_init(palmld_io_desc, ARRAY_SIZE(palmld_io_desc));
318} 318}
319 319
diff --git a/arch/arm/mach-pxa/palmt5.c b/arch/arm/mach-pxa/palmt5.c
index 862da812cd10..df4d7d009fbb 100644
--- a/arch/arm/mach-pxa/palmt5.c
+++ b/arch/arm/mach-pxa/palmt5.c
@@ -203,7 +203,7 @@ static void __init palmt5_init(void)
203 203
204MACHINE_START(PALMT5, "Palm Tungsten|T5") 204MACHINE_START(PALMT5, "Palm Tungsten|T5")
205 .boot_params = 0xa0000100, 205 .boot_params = 0xa0000100,
206 .map_io = pxa_map_io, 206 .map_io = pxa27x_map_io,
207 .reserve = palmt5_reserve, 207 .reserve = palmt5_reserve,
208 .init_irq = pxa27x_init_irq, 208 .init_irq = pxa27x_init_irq,
209 .timer = &pxa_timer, 209 .timer = &pxa_timer,
diff --git a/arch/arm/mach-pxa/palmtc.c b/arch/arm/mach-pxa/palmtc.c
index 2131d5860919..b8cda11b3013 100644
--- a/arch/arm/mach-pxa/palmtc.c
+++ b/arch/arm/mach-pxa/palmtc.c
@@ -413,7 +413,7 @@ static void __init palmtc_init(void)
413 413
414MACHINE_START(PALMTC, "Palm Tungsten|C") 414MACHINE_START(PALMTC, "Palm Tungsten|C")
415 .boot_params = 0xa0000100, 415 .boot_params = 0xa0000100,
416 .map_io = pxa_map_io, 416 .map_io = pxa25x_map_io,
417 .init_irq = pxa25x_init_irq, 417 .init_irq = pxa25x_init_irq,
418 .timer = &pxa_timer, 418 .timer = &pxa_timer,
419 .init_machine = palmtc_init 419 .init_machine = palmtc_init
diff --git a/arch/arm/mach-pxa/palmte2.c b/arch/arm/mach-pxa/palmte2.c
index a9dae7bc35d9..3f25014a136c 100644
--- a/arch/arm/mach-pxa/palmte2.c
+++ b/arch/arm/mach-pxa/palmte2.c
@@ -374,7 +374,7 @@ static void __init palmte2_init(void)
374 374
375MACHINE_START(PALMTE2, "Palm Tungsten|E2") 375MACHINE_START(PALMTE2, "Palm Tungsten|E2")
376 .boot_params = 0xa0000100, 376 .boot_params = 0xa0000100,
377 .map_io = pxa_map_io, 377 .map_io = pxa25x_map_io,
378 .init_irq = pxa25x_init_irq, 378 .init_irq = pxa25x_init_irq,
379 .timer = &pxa_timer, 379 .timer = &pxa_timer,
380 .init_machine = palmte2_init 380 .init_machine = palmte2_init
diff --git a/arch/arm/mach-pxa/palmtreo.c b/arch/arm/mach-pxa/palmtreo.c
index 00e2d7ba84ed..8aadad55fbe4 100644
--- a/arch/arm/mach-pxa/palmtreo.c
+++ b/arch/arm/mach-pxa/palmtreo.c
@@ -442,7 +442,7 @@ static void __init centro_init(void)
442 442
443MACHINE_START(TREO680, "Palm Treo 680") 443MACHINE_START(TREO680, "Palm Treo 680")
444 .boot_params = 0xa0000100, 444 .boot_params = 0xa0000100,
445 .map_io = pxa_map_io, 445 .map_io = pxa27x_map_io,
446 .reserve = treo_reserve, 446 .reserve = treo_reserve,
447 .init_irq = pxa27x_init_irq, 447 .init_irq = pxa27x_init_irq,
448 .timer = &pxa_timer, 448 .timer = &pxa_timer,
@@ -451,7 +451,7 @@ MACHINE_END
451 451
452MACHINE_START(CENTRO, "Palm Centro 685") 452MACHINE_START(CENTRO, "Palm Centro 685")
453 .boot_params = 0xa0000100, 453 .boot_params = 0xa0000100,
454 .map_io = pxa_map_io, 454 .map_io = pxa27x_map_io,
455 .reserve = treo_reserve, 455 .reserve = treo_reserve,
456 .init_irq = pxa27x_init_irq, 456 .init_irq = pxa27x_init_irq,
457 .timer = &pxa_timer, 457 .timer = &pxa_timer,
diff --git a/arch/arm/mach-pxa/palmtx.c b/arch/arm/mach-pxa/palmtx.c
index e5c9932b7588..595f002066cc 100644
--- a/arch/arm/mach-pxa/palmtx.c
+++ b/arch/arm/mach-pxa/palmtx.c
@@ -334,7 +334,7 @@ static struct map_desc palmtx_io_desc[] __initdata = {
334 334
335static void __init palmtx_map_io(void) 335static void __init palmtx_map_io(void)
336{ 336{
337 pxa_map_io(); 337 pxa27x_map_io();
338 iotable_init(palmtx_io_desc, ARRAY_SIZE(palmtx_io_desc)); 338 iotable_init(palmtx_io_desc, ARRAY_SIZE(palmtx_io_desc));
339} 339}
340 340
diff --git a/arch/arm/mach-pxa/palmz72.c b/arch/arm/mach-pxa/palmz72.c
index af6203fbca9c..7bf4017326e3 100644
--- a/arch/arm/mach-pxa/palmz72.c
+++ b/arch/arm/mach-pxa/palmz72.c
@@ -280,7 +280,7 @@ static void __init palmz72_init(void)
280 280
281MACHINE_START(PALMZ72, "Palm Zire72") 281MACHINE_START(PALMZ72, "Palm Zire72")
282 .boot_params = 0xa0000100, 282 .boot_params = 0xa0000100,
283 .map_io = pxa_map_io, 283 .map_io = pxa27x_map_io,
284 .init_irq = pxa27x_init_irq, 284 .init_irq = pxa27x_init_irq,
285 .timer = &pxa_timer, 285 .timer = &pxa_timer,
286 .init_machine = palmz72_init 286 .init_machine = palmz72_init
diff --git a/arch/arm/mach-pxa/pcm027.c b/arch/arm/mach-pxa/pcm027.c
index c77e8f30a439..8547c9abc40a 100644
--- a/arch/arm/mach-pxa/pcm027.c
+++ b/arch/arm/mach-pxa/pcm027.c
@@ -244,7 +244,7 @@ static void __init pcm027_init(void)
244 244
245static void __init pcm027_map_io(void) 245static void __init pcm027_map_io(void)
246{ 246{
247 pxa_map_io(); 247 pxa27x_map_io();
248 248
249 /* initialize sleep mode regs (wake-up sources, etc) */ 249 /* initialize sleep mode regs (wake-up sources, etc) */
250 PGSR0 = 0x01308000; 250 PGSR0 = 0x01308000;
diff --git a/arch/arm/mach-pxa/poodle.c b/arch/arm/mach-pxa/poodle.c
index 93a191c889df..8451790cb48d 100644
--- a/arch/arm/mach-pxa/poodle.c
+++ b/arch/arm/mach-pxa/poodle.c
@@ -466,7 +466,7 @@ static void __init fixup_poodle(struct machine_desc *desc,
466 466
467MACHINE_START(POODLE, "SHARP Poodle") 467MACHINE_START(POODLE, "SHARP Poodle")
468 .fixup = fixup_poodle, 468 .fixup = fixup_poodle,
469 .map_io = pxa_map_io, 469 .map_io = pxa25x_map_io,
470 .nr_irqs = POODLE_NR_IRQS, /* 4 for LoCoMo */ 470 .nr_irqs = POODLE_NR_IRQS, /* 4 for LoCoMo */
471 .init_irq = pxa25x_init_irq, 471 .init_irq = pxa25x_init_irq,
472 .timer = &pxa_timer, 472 .timer = &pxa_timer,
diff --git a/arch/arm/mach-pxa/pxa25x.c b/arch/arm/mach-pxa/pxa25x.c
index de53f2e4aa39..67200ce25e1c 100644
--- a/arch/arm/mach-pxa/pxa25x.c
+++ b/arch/arm/mach-pxa/pxa25x.c
@@ -23,6 +23,7 @@
23#include <linux/suspend.h> 23#include <linux/suspend.h>
24#include <linux/sysdev.h> 24#include <linux/sysdev.h>
25 25
26#include <asm/mach/map.h>
26#include <mach/hardware.h> 27#include <mach/hardware.h>
27#include <mach/irqs.h> 28#include <mach/irqs.h>
28#include <mach/gpio.h> 29#include <mach/gpio.h>
@@ -320,6 +321,22 @@ void __init pxa26x_init_irq(void)
320} 321}
321#endif 322#endif
322 323
324static struct map_desc pxa25x_io_desc[] __initdata = {
325 { /* Mem Ctl */
326 .virtual = 0xf6000000,
327 .pfn = __phys_to_pfn(0x48000000),
328 .length = 0x00200000,
329 .type = MT_DEVICE
330 },
331};
332
333void __init pxa25x_map_io(void)
334{
335 pxa_map_io();
336 iotable_init(ARRAY_AND_SIZE(pxa25x_io_desc));
337 pxa25x_get_clk_frequency_khz(1);
338}
339
323static struct platform_device *pxa25x_devices[] __initdata = { 340static struct platform_device *pxa25x_devices[] __initdata = {
324 &pxa25x_device_udc, 341 &pxa25x_device_udc,
325 &pxa_device_pmu, 342 &pxa_device_pmu,
diff --git a/arch/arm/mach-pxa/pxa27x.c b/arch/arm/mach-pxa/pxa27x.c
index d1fbf29d561c..71dbee42edf9 100644
--- a/arch/arm/mach-pxa/pxa27x.c
+++ b/arch/arm/mach-pxa/pxa27x.c
@@ -18,6 +18,7 @@
18#include <linux/platform_device.h> 18#include <linux/platform_device.h>
19#include <linux/sysdev.h> 19#include <linux/sysdev.h>
20 20
21#include <asm/mach/map.h>
21#include <mach/hardware.h> 22#include <mach/hardware.h>
22#include <asm/irq.h> 23#include <asm/irq.h>
23#include <mach/irqs.h> 24#include <mach/irqs.h>
@@ -370,6 +371,27 @@ void __init pxa27x_init_irq(void)
370 pxa_init_gpio(IRQ_GPIO_2_x, 2, 120, pxa27x_set_wake); 371 pxa_init_gpio(IRQ_GPIO_2_x, 2, 120, pxa27x_set_wake);
371} 372}
372 373
374static struct map_desc pxa27x_io_desc[] __initdata = {
375 { /* Mem Ctl */
376 .virtual = 0xf6000000,
377 .pfn = __phys_to_pfn(0x48000000),
378 .length = 0x00200000,
379 .type = MT_DEVICE
380 }, { /* IMem ctl */
381 .virtual = 0xfe000000,
382 .pfn = __phys_to_pfn(0x58000000),
383 .length = 0x00100000,
384 .type = MT_DEVICE
385 },
386};
387
388void __init pxa27x_map_io(void)
389{
390 pxa_map_io();
391 iotable_init(ARRAY_AND_SIZE(pxa27x_io_desc));
392 pxa27x_get_clk_frequency_khz(1);
393}
394
373/* 395/*
374 * device registration specific to PXA27x. 396 * device registration specific to PXA27x.
375 */ 397 */
diff --git a/arch/arm/mach-pxa/pxa3xx.c b/arch/arm/mach-pxa/pxa3xx.c
index d1c747cdacf8..5480a94e6469 100644
--- a/arch/arm/mach-pxa/pxa3xx.c
+++ b/arch/arm/mach-pxa/pxa3xx.c
@@ -22,6 +22,7 @@
22#include <linux/io.h> 22#include <linux/io.h>
23#include <linux/sysdev.h> 23#include <linux/sysdev.h>
24 24
25#include <asm/mach/map.h>
25#include <mach/hardware.h> 26#include <mach/hardware.h>
26#include <mach/gpio.h> 27#include <mach/gpio.h>
27#include <mach/pxa3xx-regs.h> 28#include <mach/pxa3xx-regs.h>
@@ -580,6 +581,22 @@ void __init pxa3xx_init_irq(void)
580 pxa_init_gpio(IRQ_GPIO_2_x, 2, 127, NULL); 581 pxa_init_gpio(IRQ_GPIO_2_x, 2, 127, NULL);
581} 582}
582 583
584static struct map_desc pxa3xx_io_desc[] __initdata = {
585 { /* Mem Ctl */
586 .virtual = 0xf6000000,
587 .pfn = __phys_to_pfn(0x4a000000),
588 .length = 0x00200000,
589 .type = MT_DEVICE
590 }
591};
592
593void __init pxa3xx_map_io(void)
594{
595 pxa_map_io();
596 iotable_init(ARRAY_AND_SIZE(pxa3xx_io_desc));
597 pxa3xx_get_clk_frequency_khz(1);
598}
599
583/* 600/*
584 * device registration specific to PXA3xx. 601 * device registration specific to PXA3xx.
585 */ 602 */
diff --git a/arch/arm/mach-pxa/raumfeld.c b/arch/arm/mach-pxa/raumfeld.c
index 4121d03ea2c3..117c703750f0 100644
--- a/arch/arm/mach-pxa/raumfeld.c
+++ b/arch/arm/mach-pxa/raumfeld.c
@@ -1085,7 +1085,7 @@ static void __init raumfeld_speaker_init(void)
1085MACHINE_START(RAUMFELD_RC, "Raumfeld Controller") 1085MACHINE_START(RAUMFELD_RC, "Raumfeld Controller")
1086 .boot_params = RAUMFELD_SDRAM_BASE + 0x100, 1086 .boot_params = RAUMFELD_SDRAM_BASE + 0x100,
1087 .init_machine = raumfeld_controller_init, 1087 .init_machine = raumfeld_controller_init,
1088 .map_io = pxa_map_io, 1088 .map_io = pxa3xx_map_io,
1089 .init_irq = pxa3xx_init_irq, 1089 .init_irq = pxa3xx_init_irq,
1090 .timer = &pxa_timer, 1090 .timer = &pxa_timer,
1091MACHINE_END 1091MACHINE_END
@@ -1095,7 +1095,7 @@ MACHINE_END
1095MACHINE_START(RAUMFELD_CONNECTOR, "Raumfeld Connector") 1095MACHINE_START(RAUMFELD_CONNECTOR, "Raumfeld Connector")
1096 .boot_params = RAUMFELD_SDRAM_BASE + 0x100, 1096 .boot_params = RAUMFELD_SDRAM_BASE + 0x100,
1097 .init_machine = raumfeld_connector_init, 1097 .init_machine = raumfeld_connector_init,
1098 .map_io = pxa_map_io, 1098 .map_io = pxa3xx_map_io,
1099 .init_irq = pxa3xx_init_irq, 1099 .init_irq = pxa3xx_init_irq,
1100 .timer = &pxa_timer, 1100 .timer = &pxa_timer,
1101MACHINE_END 1101MACHINE_END
@@ -1105,7 +1105,7 @@ MACHINE_END
1105MACHINE_START(RAUMFELD_SPEAKER, "Raumfeld Speaker") 1105MACHINE_START(RAUMFELD_SPEAKER, "Raumfeld Speaker")
1106 .boot_params = RAUMFELD_SDRAM_BASE + 0x100, 1106 .boot_params = RAUMFELD_SDRAM_BASE + 0x100,
1107 .init_machine = raumfeld_speaker_init, 1107 .init_machine = raumfeld_speaker_init,
1108 .map_io = pxa_map_io, 1108 .map_io = pxa3xx_map_io,
1109 .init_irq = pxa3xx_init_irq, 1109 .init_irq = pxa3xx_init_irq,
1110 .timer = &pxa_timer, 1110 .timer = &pxa_timer,
1111MACHINE_END 1111MACHINE_END
diff --git a/arch/arm/mach-pxa/saar.c b/arch/arm/mach-pxa/saar.c
index ffa50e633ee6..c1ca8cb467fc 100644
--- a/arch/arm/mach-pxa/saar.c
+++ b/arch/arm/mach-pxa/saar.c
@@ -597,7 +597,7 @@ static void __init saar_init(void)
597MACHINE_START(SAAR, "PXA930 Handheld Platform (aka SAAR)") 597MACHINE_START(SAAR, "PXA930 Handheld Platform (aka SAAR)")
598 /* Maintainer: Eric Miao <eric.miao@marvell.com> */ 598 /* Maintainer: Eric Miao <eric.miao@marvell.com> */
599 .boot_params = 0xa0000100, 599 .boot_params = 0xa0000100,
600 .map_io = pxa_map_io, 600 .map_io = pxa3xx_map_io,
601 .init_irq = pxa3xx_init_irq, 601 .init_irq = pxa3xx_init_irq,
602 .timer = &pxa_timer, 602 .timer = &pxa_timer,
603 .init_machine = saar_init, 603 .init_machine = saar_init,
diff --git a/arch/arm/mach-pxa/spitz.c b/arch/arm/mach-pxa/spitz.c
index f736119f1ebf..38bcc2a0c515 100644
--- a/arch/arm/mach-pxa/spitz.c
+++ b/arch/arm/mach-pxa/spitz.c
@@ -27,6 +27,7 @@
27#include <linux/mtd/sharpsl.h> 27#include <linux/mtd/sharpsl.h>
28#include <linux/input/matrix_keypad.h> 28#include <linux/input/matrix_keypad.h>
29#include <linux/regulator/machine.h> 29#include <linux/regulator/machine.h>
30#include <linux/io.h>
30 31
31#include <asm/setup.h> 32#include <asm/setup.h>
32#include <asm/mach-types.h> 33#include <asm/mach-types.h>
@@ -980,7 +981,7 @@ static void __init spitz_fixup(struct machine_desc *desc,
980#ifdef CONFIG_MACH_SPITZ 981#ifdef CONFIG_MACH_SPITZ
981MACHINE_START(SPITZ, "SHARP Spitz") 982MACHINE_START(SPITZ, "SHARP Spitz")
982 .fixup = spitz_fixup, 983 .fixup = spitz_fixup,
983 .map_io = pxa_map_io, 984 .map_io = pxa27x_map_io,
984 .init_irq = pxa27x_init_irq, 985 .init_irq = pxa27x_init_irq,
985 .init_machine = spitz_init, 986 .init_machine = spitz_init,
986 .timer = &pxa_timer, 987 .timer = &pxa_timer,
@@ -990,7 +991,7 @@ MACHINE_END
990#ifdef CONFIG_MACH_BORZOI 991#ifdef CONFIG_MACH_BORZOI
991MACHINE_START(BORZOI, "SHARP Borzoi") 992MACHINE_START(BORZOI, "SHARP Borzoi")
992 .fixup = spitz_fixup, 993 .fixup = spitz_fixup,
993 .map_io = pxa_map_io, 994 .map_io = pxa27x_map_io,
994 .init_irq = pxa27x_init_irq, 995 .init_irq = pxa27x_init_irq,
995 .init_machine = spitz_init, 996 .init_machine = spitz_init,
996 .timer = &pxa_timer, 997 .timer = &pxa_timer,
@@ -1000,7 +1001,7 @@ MACHINE_END
1000#ifdef CONFIG_MACH_AKITA 1001#ifdef CONFIG_MACH_AKITA
1001MACHINE_START(AKITA, "SHARP Akita") 1002MACHINE_START(AKITA, "SHARP Akita")
1002 .fixup = spitz_fixup, 1003 .fixup = spitz_fixup,
1003 .map_io = pxa_map_io, 1004 .map_io = pxa27x_map_io,
1004 .init_irq = pxa27x_init_irq, 1005 .init_irq = pxa27x_init_irq,
1005 .init_machine = spitz_init, 1006 .init_machine = spitz_init,
1006 .timer = &pxa_timer, 1007 .timer = &pxa_timer,
diff --git a/arch/arm/mach-pxa/stargate2.c b/arch/arm/mach-pxa/stargate2.c
index 738adc1773fd..19f5378e766d 100644
--- a/arch/arm/mach-pxa/stargate2.c
+++ b/arch/arm/mach-pxa/stargate2.c
@@ -998,7 +998,7 @@ static void __init stargate2_init(void)
998 998
999#ifdef CONFIG_MACH_INTELMOTE2 999#ifdef CONFIG_MACH_INTELMOTE2
1000MACHINE_START(INTELMOTE2, "IMOTE 2") 1000MACHINE_START(INTELMOTE2, "IMOTE 2")
1001 .map_io = pxa_map_io, 1001 .map_io = pxa27x_map_io,
1002 .init_irq = pxa27x_init_irq, 1002 .init_irq = pxa27x_init_irq,
1003 .timer = &pxa_timer, 1003 .timer = &pxa_timer,
1004 .init_machine = imote2_init, 1004 .init_machine = imote2_init,
@@ -1008,7 +1008,7 @@ MACHINE_END
1008 1008
1009#ifdef CONFIG_MACH_STARGATE2 1009#ifdef CONFIG_MACH_STARGATE2
1010MACHINE_START(STARGATE2, "Stargate 2") 1010MACHINE_START(STARGATE2, "Stargate 2")
1011 .map_io = pxa_map_io, 1011 .map_io = pxa27x_map_io,
1012 .nr_irqs = STARGATE_NR_IRQS, 1012 .nr_irqs = STARGATE_NR_IRQS,
1013 .init_irq = pxa27x_init_irq, 1013 .init_irq = pxa27x_init_irq,
1014 .timer = &pxa_timer, 1014 .timer = &pxa_timer,
diff --git a/arch/arm/mach-pxa/tavorevb.c b/arch/arm/mach-pxa/tavorevb.c
index 2ea7545273ad..9cecf8366db8 100644
--- a/arch/arm/mach-pxa/tavorevb.c
+++ b/arch/arm/mach-pxa/tavorevb.c
@@ -490,7 +490,7 @@ static void __init tavorevb_init(void)
490MACHINE_START(TAVOREVB, "PXA930 Evaluation Board (aka TavorEVB)") 490MACHINE_START(TAVOREVB, "PXA930 Evaluation Board (aka TavorEVB)")
491 /* Maintainer: Eric Miao <eric.miao@marvell.com> */ 491 /* Maintainer: Eric Miao <eric.miao@marvell.com> */
492 .boot_params = 0xa0000100, 492 .boot_params = 0xa0000100,
493 .map_io = pxa_map_io, 493 .map_io = pxa3xx_map_io,
494 .init_irq = pxa3xx_init_irq, 494 .init_irq = pxa3xx_init_irq,
495 .timer = &pxa_timer, 495 .timer = &pxa_timer,
496 .init_machine = tavorevb_init, 496 .init_machine = tavorevb_init,
diff --git a/arch/arm/mach-pxa/tavorevb3.c b/arch/arm/mach-pxa/tavorevb3.c
index dc3011697bbf..70191a9450eb 100644
--- a/arch/arm/mach-pxa/tavorevb3.c
+++ b/arch/arm/mach-pxa/tavorevb3.c
@@ -127,7 +127,7 @@ static void __init evb3_init(void)
127 127
128MACHINE_START(TAVOREVB3, "PXA950 Evaluation Board (aka TavorEVB3)") 128MACHINE_START(TAVOREVB3, "PXA950 Evaluation Board (aka TavorEVB3)")
129 .boot_params = 0xa0000100, 129 .boot_params = 0xa0000100,
130 .map_io = pxa_map_io, 130 .map_io = pxa3xx_map_io,
131 .nr_irqs = TAVOREVB3_NR_IRQS, 131 .nr_irqs = TAVOREVB3_NR_IRQS,
132 .init_irq = pxa3xx_init_irq, 132 .init_irq = pxa3xx_init_irq,
133 .timer = &pxa_timer, 133 .timer = &pxa_timer,
diff --git a/arch/arm/mach-pxa/tosa.c b/arch/arm/mach-pxa/tosa.c
index 0ee1df49606d..38833858cf82 100644
--- a/arch/arm/mach-pxa/tosa.c
+++ b/arch/arm/mach-pxa/tosa.c
@@ -953,7 +953,7 @@ static void __init fixup_tosa(struct machine_desc *desc,
953 953
954MACHINE_START(TOSA, "SHARP Tosa") 954MACHINE_START(TOSA, "SHARP Tosa")
955 .fixup = fixup_tosa, 955 .fixup = fixup_tosa,
956 .map_io = pxa_map_io, 956 .map_io = pxa25x_map_io,
957 .nr_irqs = TOSA_NR_IRQS, 957 .nr_irqs = TOSA_NR_IRQS,
958 .init_irq = pxa25x_init_irq, 958 .init_irq = pxa25x_init_irq,
959 .init_machine = tosa_init, 959 .init_machine = tosa_init,
diff --git a/arch/arm/mach-pxa/trizeps4.c b/arch/arm/mach-pxa/trizeps4.c
index 565d062f51d5..ab3b933e3461 100644
--- a/arch/arm/mach-pxa/trizeps4.c
+++ b/arch/arm/mach-pxa/trizeps4.c
@@ -539,7 +539,7 @@ static void __init trizeps4_init(void)
539 539
540static void __init trizeps4_map_io(void) 540static void __init trizeps4_map_io(void)
541{ 541{
542 pxa_map_io(); 542 pxa27x_map_io();
543 iotable_init(trizeps4_io_desc, ARRAY_SIZE(trizeps4_io_desc)); 543 iotable_init(trizeps4_io_desc, ARRAY_SIZE(trizeps4_io_desc));
544 544
545 if ((MSC0 & 0x8) && (BOOT_DEF & 0x1)) { 545 if ((MSC0 & 0x8) && (BOOT_DEF & 0x1)) {
diff --git a/arch/arm/mach-pxa/viper.c b/arch/arm/mach-pxa/viper.c
index 438fc9a5ed59..de69b203afa7 100644
--- a/arch/arm/mach-pxa/viper.c
+++ b/arch/arm/mach-pxa/viper.c
@@ -983,7 +983,7 @@ static struct map_desc viper_io_desc[] __initdata = {
983 983
984static void __init viper_map_io(void) 984static void __init viper_map_io(void)
985{ 985{
986 pxa_map_io(); 986 pxa25x_map_io();
987 987
988 iotable_init(viper_io_desc, ARRAY_SIZE(viper_io_desc)); 988 iotable_init(viper_io_desc, ARRAY_SIZE(viper_io_desc));
989 989
diff --git a/arch/arm/mach-pxa/vpac270.c b/arch/arm/mach-pxa/vpac270.c
index f45ac0961778..b9b579715ff6 100644
--- a/arch/arm/mach-pxa/vpac270.c
+++ b/arch/arm/mach-pxa/vpac270.c
@@ -719,7 +719,7 @@ static void __init vpac270_init(void)
719 719
720MACHINE_START(VPAC270, "Voipac PXA270") 720MACHINE_START(VPAC270, "Voipac PXA270")
721 .boot_params = 0xa0000100, 721 .boot_params = 0xa0000100,
722 .map_io = pxa_map_io, 722 .map_io = pxa27x_map_io,
723 .init_irq = pxa27x_init_irq, 723 .init_irq = pxa27x_init_irq,
724 .timer = &pxa_timer, 724 .timer = &pxa_timer,
725 .init_machine = vpac270_init 725 .init_machine = vpac270_init
diff --git a/arch/arm/mach-pxa/xcep.c b/arch/arm/mach-pxa/xcep.c
index 3260ce73d327..99744f4d05a1 100644
--- a/arch/arm/mach-pxa/xcep.c
+++ b/arch/arm/mach-pxa/xcep.c
@@ -183,7 +183,7 @@ static void __init xcep_init(void)
183MACHINE_START(XCEP, "Iskratel XCEP") 183MACHINE_START(XCEP, "Iskratel XCEP")
184 .boot_params = 0xa0000100, 184 .boot_params = 0xa0000100,
185 .init_machine = xcep_init, 185 .init_machine = xcep_init,
186 .map_io = pxa_map_io, 186 .map_io = pxa25x_map_io,
187 .init_irq = pxa25x_init_irq, 187 .init_irq = pxa25x_init_irq,
188 .timer = &pxa_timer, 188 .timer = &pxa_timer,
189MACHINE_END 189MACHINE_END
diff --git a/arch/arm/mach-pxa/z2.c b/arch/arm/mach-pxa/z2.c
index fefde9848d82..527c2a1ed310 100644
--- a/arch/arm/mach-pxa/z2.c
+++ b/arch/arm/mach-pxa/z2.c
@@ -704,7 +704,7 @@ static void __init z2_init(void)
704 704
705MACHINE_START(ZIPIT2, "Zipit Z2") 705MACHINE_START(ZIPIT2, "Zipit Z2")
706 .boot_params = 0xa0000100, 706 .boot_params = 0xa0000100,
707 .map_io = pxa_map_io, 707 .map_io = pxa27x_map_io,
708 .init_irq = pxa27x_init_irq, 708 .init_irq = pxa27x_init_irq,
709 .timer = &pxa_timer, 709 .timer = &pxa_timer,
710 .init_machine = z2_init, 710 .init_machine = z2_init,
diff --git a/arch/arm/mach-pxa/zeus.c b/arch/arm/mach-pxa/zeus.c
index dea46a2d089b..0909df2151e8 100644
--- a/arch/arm/mach-pxa/zeus.c
+++ b/arch/arm/mach-pxa/zeus.c
@@ -883,7 +883,7 @@ static struct map_desc zeus_io_desc[] __initdata = {
883 883
884static void __init zeus_map_io(void) 884static void __init zeus_map_io(void)
885{ 885{
886 pxa_map_io(); 886 pxa27x_map_io();
887 887
888 iotable_init(zeus_io_desc, ARRAY_SIZE(zeus_io_desc)); 888 iotable_init(zeus_io_desc, ARRAY_SIZE(zeus_io_desc));
889 889
diff --git a/arch/arm/mach-pxa/zylonite.c b/arch/arm/mach-pxa/zylonite.c
index 702f7a68e87d..a4c784aab764 100644
--- a/arch/arm/mach-pxa/zylonite.c
+++ b/arch/arm/mach-pxa/zylonite.c
@@ -423,7 +423,7 @@ static void __init zylonite_init(void)
423 423
424MACHINE_START(ZYLONITE, "PXA3xx Platform Development Kit (aka Zylonite)") 424MACHINE_START(ZYLONITE, "PXA3xx Platform Development Kit (aka Zylonite)")
425 .boot_params = 0xa0000100, 425 .boot_params = 0xa0000100,
426 .map_io = pxa_map_io, 426 .map_io = pxa3xx_map_io,
427 .nr_irqs = ZYLONITE_NR_IRQS, 427 .nr_irqs = ZYLONITE_NR_IRQS,
428 .init_irq = pxa3xx_init_irq, 428 .init_irq = pxa3xx_init_irq,
429 .timer = &pxa_timer, 429 .timer = &pxa_timer,