aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorRussell King - ARM Linux <linux@arm.linux.org.uk>2011-02-14 18:40:20 -0500
committerTony Lindgren <tony@atomide.com>2011-02-14 18:40:20 -0500
commit3dc3bad6f1b316d79d9d1d596a590b5097cb3dc4 (patch)
tree2c8376da2652ac81bbadd08ef2ff8a28e1757c8e /arch
parent100b33c8bd8a3235fd0b7948338d6cbb3db3c63d (diff)
ARM: OMAP2: use early init hook
Move non-mapping and non-irq initialization code out of .map_io and .init_irq respectively into the new init_early hook. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> Signed-off-by: Tony Lindgren <tony@atomide.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/mach-omap2/board-2430sdp.c8
-rw-r--r--arch/arm/mach-omap2/board-3430sdp.c8
-rw-r--r--arch/arm/mach-omap2/board-3630sdp.c8
-rw-r--r--arch/arm/mach-omap2/board-4430sdp.c8
-rw-r--r--arch/arm/mach-omap2/board-am3517crane.c8
-rw-r--r--arch/arm/mach-omap2/board-am3517evm.c8
-rw-r--r--arch/arm/mach-omap2/board-apollon.c8
-rw-r--r--arch/arm/mach-omap2/board-cm-t35.c8
-rw-r--r--arch/arm/mach-omap2/board-cm-t3517.c8
-rw-r--r--arch/arm/mach-omap2/board-devkit8000.c9
-rw-r--r--arch/arm/mach-omap2/board-generic.c8
-rw-r--r--arch/arm/mach-omap2/board-h4.c9
-rw-r--r--arch/arm/mach-omap2/board-igep0020.c8
-rw-r--r--arch/arm/mach-omap2/board-igep0030.c6
-rw-r--r--arch/arm/mach-omap2/board-ldp.c8
-rw-r--r--arch/arm/mach-omap2/board-n8x0.c18
-rw-r--r--arch/arm/mach-omap2/board-omap3beagle.c9
-rw-r--r--arch/arm/mach-omap2/board-omap3evm.c8
-rw-r--r--arch/arm/mach-omap2/board-omap3logic.c9
-rw-r--r--arch/arm/mach-omap2/board-omap3pandora.c8
-rw-r--r--arch/arm/mach-omap2/board-omap3stalker.c7
-rw-r--r--arch/arm/mach-omap2/board-omap3touchbook.c9
-rw-r--r--arch/arm/mach-omap2/board-omap4panda.c6
-rw-r--r--arch/arm/mach-omap2/board-overo.c8
-rw-r--r--arch/arm/mach-omap2/board-rm680.c8
-rw-r--r--arch/arm/mach-omap2/board-rx51.c8
-rw-r--r--arch/arm/mach-omap2/board-zoom.c14
27 files changed, 130 insertions, 102 deletions
diff --git a/arch/arm/mach-omap2/board-2430sdp.c b/arch/arm/mach-omap2/board-2430sdp.c
index e0661777f599..ec74c0f2051c 100644
--- a/arch/arm/mach-omap2/board-2430sdp.c
+++ b/arch/arm/mach-omap2/board-2430sdp.c
@@ -139,13 +139,12 @@ static struct omap_board_config_kernel sdp2430_config[] __initdata = {
139 {OMAP_TAG_LCD, &sdp2430_lcd_config}, 139 {OMAP_TAG_LCD, &sdp2430_lcd_config},
140}; 140};
141 141
142static void __init omap_2430sdp_init_irq(void) 142static void __init omap_2430sdp_init_early(void)
143{ 143{
144 omap_board_config = sdp2430_config; 144 omap_board_config = sdp2430_config;
145 omap_board_config_size = ARRAY_SIZE(sdp2430_config); 145 omap_board_config_size = ARRAY_SIZE(sdp2430_config);
146 omap2_init_common_infrastructure(); 146 omap2_init_common_infrastructure();
147 omap2_init_common_devices(NULL, NULL); 147 omap2_init_common_devices(NULL, NULL);
148 omap_init_irq();
149} 148}
150 149
151static struct twl4030_gpio_platform_data sdp2430_gpio_data = { 150static struct twl4030_gpio_platform_data sdp2430_gpio_data = {
@@ -253,9 +252,10 @@ static void __init omap_2430sdp_map_io(void)
253MACHINE_START(OMAP_2430SDP, "OMAP2430 sdp2430 board") 252MACHINE_START(OMAP_2430SDP, "OMAP2430 sdp2430 board")
254 /* Maintainer: Syed Khasim - Texas Instruments Inc */ 253 /* Maintainer: Syed Khasim - Texas Instruments Inc */
255 .boot_params = 0x80000100, 254 .boot_params = 0x80000100,
256 .map_io = omap_2430sdp_map_io,
257 .reserve = omap_reserve, 255 .reserve = omap_reserve,
258 .init_irq = omap_2430sdp_init_irq, 256 .map_io = omap_2430sdp_map_io,
257 .init_early = omap_2430sdp_init_early,
258 .init_irq = omap_init_irq,
259 .init_machine = omap_2430sdp_init, 259 .init_machine = omap_2430sdp_init,
260 .timer = &omap_timer, 260 .timer = &omap_timer,
261MACHINE_END 261MACHINE_END
diff --git a/arch/arm/mach-omap2/board-3430sdp.c b/arch/arm/mach-omap2/board-3430sdp.c
index d4e41ef86aa5..31085883199e 100644
--- a/arch/arm/mach-omap2/board-3430sdp.c
+++ b/arch/arm/mach-omap2/board-3430sdp.c
@@ -327,14 +327,13 @@ static struct platform_device *sdp3430_devices[] __initdata = {
327static struct omap_board_config_kernel sdp3430_config[] __initdata = { 327static struct omap_board_config_kernel sdp3430_config[] __initdata = {
328}; 328};
329 329
330static void __init omap_3430sdp_init_irq(void) 330static void __init omap_3430sdp_init_early(void)
331{ 331{
332 omap_board_config = sdp3430_config; 332 omap_board_config = sdp3430_config;
333 omap_board_config_size = ARRAY_SIZE(sdp3430_config); 333 omap_board_config_size = ARRAY_SIZE(sdp3430_config);
334 omap3_pm_init_cpuidle(omap3_cpuidle_params_table); 334 omap3_pm_init_cpuidle(omap3_cpuidle_params_table);
335 omap2_init_common_infrastructure(); 335 omap2_init_common_infrastructure();
336 omap2_init_common_devices(hyb18m512160af6_sdrc_params, NULL); 336 omap2_init_common_devices(hyb18m512160af6_sdrc_params, NULL);
337 omap_init_irq();
338} 337}
339 338
340static int sdp3430_batt_table[] = { 339static int sdp3430_batt_table[] = {
@@ -822,9 +821,10 @@ static void __init omap_3430sdp_init(void)
822MACHINE_START(OMAP_3430SDP, "OMAP3430 3430SDP board") 821MACHINE_START(OMAP_3430SDP, "OMAP3430 3430SDP board")
823 /* Maintainer: Syed Khasim - Texas Instruments Inc */ 822 /* Maintainer: Syed Khasim - Texas Instruments Inc */
824 .boot_params = 0x80000100, 823 .boot_params = 0x80000100,
825 .map_io = omap3_map_io,
826 .reserve = omap_reserve, 824 .reserve = omap_reserve,
827 .init_irq = omap_3430sdp_init_irq, 825 .map_io = omap3_map_io,
826 .init_early = omap_3430sdp_init_early,
827 .init_irq = omap_init_irq,
828 .init_machine = omap_3430sdp_init, 828 .init_machine = omap_3430sdp_init,
829 .timer = &omap_timer, 829 .timer = &omap_timer,
830MACHINE_END 830MACHINE_END
diff --git a/arch/arm/mach-omap2/board-3630sdp.c b/arch/arm/mach-omap2/board-3630sdp.c
index 62645640f5e4..16538757291a 100644
--- a/arch/arm/mach-omap2/board-3630sdp.c
+++ b/arch/arm/mach-omap2/board-3630sdp.c
@@ -69,14 +69,13 @@ static const struct ehci_hcd_omap_platform_data ehci_pdata __initconst = {
69static struct omap_board_config_kernel sdp_config[] __initdata = { 69static struct omap_board_config_kernel sdp_config[] __initdata = {
70}; 70};
71 71
72static void __init omap_sdp_init_irq(void) 72static void __init omap_sdp_init_early(void)
73{ 73{
74 omap_board_config = sdp_config; 74 omap_board_config = sdp_config;
75 omap_board_config_size = ARRAY_SIZE(sdp_config); 75 omap_board_config_size = ARRAY_SIZE(sdp_config);
76 omap2_init_common_infrastructure(); 76 omap2_init_common_infrastructure();
77 omap2_init_common_devices(h8mbx00u0mer0em_sdrc_params, 77 omap2_init_common_devices(h8mbx00u0mer0em_sdrc_params,
78 h8mbx00u0mer0em_sdrc_params); 78 h8mbx00u0mer0em_sdrc_params);
79 omap_init_irq();
80} 79}
81 80
82#ifdef CONFIG_OMAP_MUX 81#ifdef CONFIG_OMAP_MUX
@@ -216,9 +215,10 @@ static void __init omap_sdp_init(void)
216 215
217MACHINE_START(OMAP_3630SDP, "OMAP 3630SDP board") 216MACHINE_START(OMAP_3630SDP, "OMAP 3630SDP board")
218 .boot_params = 0x80000100, 217 .boot_params = 0x80000100,
219 .map_io = omap3_map_io,
220 .reserve = omap_reserve, 218 .reserve = omap_reserve,
221 .init_irq = omap_sdp_init_irq, 219 .map_io = omap3_map_io,
220 .init_early = omap_sdp_init_early,
221 .init_irq = omap_init_irq,
222 .init_machine = omap_sdp_init, 222 .init_machine = omap_sdp_init,
223 .timer = &omap_timer, 223 .timer = &omap_timer,
224MACHINE_END 224MACHINE_END
diff --git a/arch/arm/mach-omap2/board-4430sdp.c b/arch/arm/mach-omap2/board-4430sdp.c
index 07d1b20b1148..12d99e582cd6 100644
--- a/arch/arm/mach-omap2/board-4430sdp.c
+++ b/arch/arm/mach-omap2/board-4430sdp.c
@@ -239,7 +239,7 @@ static struct omap_board_config_kernel sdp4430_config[] __initdata = {
239 { OMAP_TAG_LCD, &sdp4430_lcd_config }, 239 { OMAP_TAG_LCD, &sdp4430_lcd_config },
240}; 240};
241 241
242static void __init omap_4430sdp_init_irq(void) 242static void __init omap_4430sdp_init_early(void)
243{ 243{
244 omap_board_config = sdp4430_config; 244 omap_board_config = sdp4430_config;
245 omap_board_config_size = ARRAY_SIZE(sdp4430_config); 245 omap_board_config_size = ARRAY_SIZE(sdp4430_config);
@@ -248,7 +248,6 @@ static void __init omap_4430sdp_init_irq(void)
248#ifdef CONFIG_OMAP_32K_TIMER 248#ifdef CONFIG_OMAP_32K_TIMER
249 omap2_gp_clockevent_set_gptimer(1); 249 omap2_gp_clockevent_set_gptimer(1);
250#endif 250#endif
251 gic_init_irq();
252} 251}
253 252
254static const struct ehci_hcd_omap_platform_data ehci_pdata __initconst = { 253static const struct ehci_hcd_omap_platform_data ehci_pdata __initconst = {
@@ -605,9 +604,10 @@ static void __init omap_4430sdp_map_io(void)
605MACHINE_START(OMAP_4430SDP, "OMAP4430 4430SDP board") 604MACHINE_START(OMAP_4430SDP, "OMAP4430 4430SDP board")
606 /* Maintainer: Santosh Shilimkar - Texas Instruments Inc */ 605 /* Maintainer: Santosh Shilimkar - Texas Instruments Inc */
607 .boot_params = 0x80000100, 606 .boot_params = 0x80000100,
608 .map_io = omap_4430sdp_map_io,
609 .reserve = omap_reserve, 607 .reserve = omap_reserve,
610 .init_irq = omap_4430sdp_init_irq, 608 .map_io = omap_4430sdp_map_io,
609 .init_early = omap_4430sdp_init_early,
610 .init_irq = gic_init_irq,
611 .init_machine = omap_4430sdp_init, 611 .init_machine = omap_4430sdp_init,
612 .timer = &omap_timer, 612 .timer = &omap_timer,
613MACHINE_END 613MACHINE_END
diff --git a/arch/arm/mach-omap2/board-am3517crane.c b/arch/arm/mach-omap2/board-am3517crane.c
index 71acb5ab281c..ae3a83d47dab 100644
--- a/arch/arm/mach-omap2/board-am3517crane.c
+++ b/arch/arm/mach-omap2/board-am3517crane.c
@@ -49,14 +49,13 @@ static struct omap_board_mux board_mux[] __initdata = {
49#define board_mux NULL 49#define board_mux NULL
50#endif 50#endif
51 51
52static void __init am3517_crane_init_irq(void) 52static void __init am3517_crane_init_early(void)
53{ 53{
54 omap_board_config = am3517_crane_config; 54 omap_board_config = am3517_crane_config;
55 omap_board_config_size = ARRAY_SIZE(am3517_crane_config); 55 omap_board_config_size = ARRAY_SIZE(am3517_crane_config);
56 56
57 omap2_init_common_infrastructure(); 57 omap2_init_common_infrastructure();
58 omap2_init_common_devices(NULL, NULL); 58 omap2_init_common_devices(NULL, NULL);
59 omap_init_irq();
60} 59}
61 60
62static struct ehci_hcd_omap_platform_data ehci_pdata __initdata = { 61static struct ehci_hcd_omap_platform_data ehci_pdata __initdata = {
@@ -108,9 +107,10 @@ static void __init am3517_crane_init(void)
108 107
109MACHINE_START(CRANEBOARD, "AM3517/05 CRANEBOARD") 108MACHINE_START(CRANEBOARD, "AM3517/05 CRANEBOARD")
110 .boot_params = 0x80000100, 109 .boot_params = 0x80000100,
111 .map_io = omap3_map_io,
112 .reserve = omap_reserve, 110 .reserve = omap_reserve,
113 .init_irq = am3517_crane_init_irq, 111 .map_io = omap3_map_io,
112 .init_early = am3517_crane_init_early,
113 .init_irq = omap_init_irq,
114 .init_machine = am3517_crane_init, 114 .init_machine = am3517_crane_init,
115 .timer = &omap_timer, 115 .timer = &omap_timer,
116MACHINE_END 116MACHINE_END
diff --git a/arch/arm/mach-omap2/board-am3517evm.c b/arch/arm/mach-omap2/board-am3517evm.c
index 10d60b7743cf..d0d0f5528132 100644
--- a/arch/arm/mach-omap2/board-am3517evm.c
+++ b/arch/arm/mach-omap2/board-am3517evm.c
@@ -396,13 +396,12 @@ static struct platform_device *am3517_evm_devices[] __initdata = {
396 &am3517_evm_dss_device, 396 &am3517_evm_dss_device,
397}; 397};
398 398
399static void __init am3517_evm_init_irq(void) 399static void __init am3517_evm_init_early(void)
400{ 400{
401 omap_board_config = am3517_evm_config; 401 omap_board_config = am3517_evm_config;
402 omap_board_config_size = ARRAY_SIZE(am3517_evm_config); 402 omap_board_config_size = ARRAY_SIZE(am3517_evm_config);
403 omap2_init_common_infrastructure(); 403 omap2_init_common_infrastructure();
404 omap2_init_common_devices(NULL, NULL); 404 omap2_init_common_devices(NULL, NULL);
405 omap_init_irq();
406} 405}
407 406
408static struct omap_musb_board_data musb_board_data = { 407static struct omap_musb_board_data musb_board_data = {
@@ -521,9 +520,10 @@ static void __init am3517_evm_init(void)
521 520
522MACHINE_START(OMAP3517EVM, "OMAP3517/AM3517 EVM") 521MACHINE_START(OMAP3517EVM, "OMAP3517/AM3517 EVM")
523 .boot_params = 0x80000100, 522 .boot_params = 0x80000100,
524 .map_io = omap3_map_io,
525 .reserve = omap_reserve, 523 .reserve = omap_reserve,
526 .init_irq = am3517_evm_init_irq, 524 .map_io = omap3_map_io,
525 .init_early = am3517_evm_init_early,
526 .init_irq = omap_init_irq,
527 .init_machine = am3517_evm_init, 527 .init_machine = am3517_evm_init,
528 .timer = &omap_timer, 528 .timer = &omap_timer,
529MACHINE_END 529MACHINE_END
diff --git a/arch/arm/mach-omap2/board-apollon.c b/arch/arm/mach-omap2/board-apollon.c
index 9f55b68687f7..4ef4aad4e719 100644
--- a/arch/arm/mach-omap2/board-apollon.c
+++ b/arch/arm/mach-omap2/board-apollon.c
@@ -274,13 +274,12 @@ static struct omap_board_config_kernel apollon_config[] __initdata = {
274 { OMAP_TAG_LCD, &apollon_lcd_config }, 274 { OMAP_TAG_LCD, &apollon_lcd_config },
275}; 275};
276 276
277static void __init omap_apollon_init_irq(void) 277static void __init omap_apollon_init_early(void)
278{ 278{
279 omap_board_config = apollon_config; 279 omap_board_config = apollon_config;
280 omap_board_config_size = ARRAY_SIZE(apollon_config); 280 omap_board_config_size = ARRAY_SIZE(apollon_config);
281 omap2_init_common_infrastructure(); 281 omap2_init_common_infrastructure();
282 omap2_init_common_devices(NULL, NULL); 282 omap2_init_common_devices(NULL, NULL);
283 omap_init_irq();
284} 283}
285 284
286static void __init apollon_led_init(void) 285static void __init apollon_led_init(void)
@@ -355,9 +354,10 @@ static void __init omap_apollon_map_io(void)
355MACHINE_START(OMAP_APOLLON, "OMAP24xx Apollon") 354MACHINE_START(OMAP_APOLLON, "OMAP24xx Apollon")
356 /* Maintainer: Kyungmin Park <kyungmin.park@samsung.com> */ 355 /* Maintainer: Kyungmin Park <kyungmin.park@samsung.com> */
357 .boot_params = 0x80000100, 356 .boot_params = 0x80000100,
358 .map_io = omap_apollon_map_io,
359 .reserve = omap_reserve, 357 .reserve = omap_reserve,
360 .init_irq = omap_apollon_init_irq, 358 .map_io = omap_apollon_map_io,
359 .init_early = omap_apollon_init_early,
360 .init_irq = omap_init_irq,
361 .init_machine = omap_apollon_init, 361 .init_machine = omap_apollon_init,
362 .timer = &omap_timer, 362 .timer = &omap_timer,
363MACHINE_END 363MACHINE_END
diff --git a/arch/arm/mach-omap2/board-cm-t35.c b/arch/arm/mach-omap2/board-cm-t35.c
index dac141610666..9e4de92a5798 100644
--- a/arch/arm/mach-omap2/board-cm-t35.c
+++ b/arch/arm/mach-omap2/board-cm-t35.c
@@ -683,7 +683,7 @@ static void __init cm_t35_init_i2c(void)
683static struct omap_board_config_kernel cm_t35_config[] __initdata = { 683static struct omap_board_config_kernel cm_t35_config[] __initdata = {
684}; 684};
685 685
686static void __init cm_t35_init_irq(void) 686static void __init cm_t35_init_early(void)
687{ 687{
688 omap_board_config = cm_t35_config; 688 omap_board_config = cm_t35_config;
689 omap_board_config_size = ARRAY_SIZE(cm_t35_config); 689 omap_board_config_size = ARRAY_SIZE(cm_t35_config);
@@ -691,7 +691,6 @@ static void __init cm_t35_init_irq(void)
691 omap2_init_common_infrastructure(); 691 omap2_init_common_infrastructure();
692 omap2_init_common_devices(mt46h32m32lf6_sdrc_params, 692 omap2_init_common_devices(mt46h32m32lf6_sdrc_params,
693 mt46h32m32lf6_sdrc_params); 693 mt46h32m32lf6_sdrc_params);
694 omap_init_irq();
695} 694}
696 695
697static struct omap_board_mux board_mux[] __initdata = { 696static struct omap_board_mux board_mux[] __initdata = {
@@ -815,9 +814,10 @@ static void __init cm_t35_init(void)
815 814
816MACHINE_START(CM_T35, "Compulab CM-T35") 815MACHINE_START(CM_T35, "Compulab CM-T35")
817 .boot_params = 0x80000100, 816 .boot_params = 0x80000100,
818 .map_io = omap3_map_io,
819 .reserve = omap_reserve, 817 .reserve = omap_reserve,
820 .init_irq = cm_t35_init_irq, 818 .map_io = omap3_map_io,
819 .init_early = cm_t35_init_early,
820 .init_irq = omap_init_irq,
821 .init_machine = cm_t35_init, 821 .init_machine = cm_t35_init,
822 .timer = &omap_timer, 822 .timer = &omap_timer,
823MACHINE_END 823MACHINE_END
diff --git a/arch/arm/mach-omap2/board-cm-t3517.c b/arch/arm/mach-omap2/board-cm-t3517.c
index 8f9a64d650ee..38bef6d004c9 100644
--- a/arch/arm/mach-omap2/board-cm-t3517.c
+++ b/arch/arm/mach-omap2/board-cm-t3517.c
@@ -254,14 +254,13 @@ static inline void cm_t3517_init_nand(void) {}
254static struct omap_board_config_kernel cm_t3517_config[] __initdata = { 254static struct omap_board_config_kernel cm_t3517_config[] __initdata = {
255}; 255};
256 256
257static void __init cm_t3517_init_irq(void) 257static void __init cm_t3517_init_early(void)
258{ 258{
259 omap_board_config = cm_t3517_config; 259 omap_board_config = cm_t3517_config;
260 omap_board_config_size = ARRAY_SIZE(cm_t3517_config); 260 omap_board_config_size = ARRAY_SIZE(cm_t3517_config);
261 261
262 omap2_init_common_infrastructure(); 262 omap2_init_common_infrastructure();
263 omap2_init_common_devices(NULL, NULL); 263 omap2_init_common_devices(NULL, NULL);
264 omap_init_irq();
265} 264}
266 265
267static struct omap_board_mux board_mux[] __initdata = { 266static struct omap_board_mux board_mux[] __initdata = {
@@ -303,9 +302,10 @@ static void __init cm_t3517_init(void)
303 302
304MACHINE_START(CM_T3517, "Compulab CM-T3517") 303MACHINE_START(CM_T3517, "Compulab CM-T3517")
305 .boot_params = 0x80000100, 304 .boot_params = 0x80000100,
306 .map_io = omap3_map_io,
307 .reserve = omap_reserve, 305 .reserve = omap_reserve,
308 .init_irq = cm_t3517_init_irq, 306 .map_io = omap3_map_io,
307 .init_early = cm_t3517_init_early,
308 .init_irq = omap_init_irq,
309 .init_machine = cm_t3517_init, 309 .init_machine = cm_t3517_init,
310 .timer = &omap_timer, 310 .timer = &omap_timer,
311MACHINE_END 311MACHINE_END
diff --git a/arch/arm/mach-omap2/board-devkit8000.c b/arch/arm/mach-omap2/board-devkit8000.c
index 9a2a31e011ce..af742887e834 100644
--- a/arch/arm/mach-omap2/board-devkit8000.c
+++ b/arch/arm/mach-omap2/board-devkit8000.c
@@ -456,11 +456,15 @@ static struct platform_device keys_gpio = {
456}; 456};
457 457
458 458
459static void __init devkit8000_init_irq(void) 459static void __init devkit8000_init_early(void)
460{ 460{
461 omap2_init_common_infrastructure(); 461 omap2_init_common_infrastructure();
462 omap2_init_common_devices(mt46h32m32lf6_sdrc_params, 462 omap2_init_common_devices(mt46h32m32lf6_sdrc_params,
463 mt46h32m32lf6_sdrc_params); 463 mt46h32m32lf6_sdrc_params);
464}
465
466static void __init devkit8000_init_irq(void)
467{
464 omap_init_irq(); 468 omap_init_irq();
465#ifdef CONFIG_OMAP_32K_TIMER 469#ifdef CONFIG_OMAP_32K_TIMER
466 omap2_gp_clockevent_set_gptimer(12); 470 omap2_gp_clockevent_set_gptimer(12);
@@ -813,8 +817,9 @@ static void __init devkit8000_init(void)
813 817
814MACHINE_START(DEVKIT8000, "OMAP3 Devkit8000") 818MACHINE_START(DEVKIT8000, "OMAP3 Devkit8000")
815 .boot_params = 0x80000100, 819 .boot_params = 0x80000100,
816 .map_io = omap3_map_io,
817 .reserve = omap_reserve, 820 .reserve = omap_reserve,
821 .map_io = omap3_map_io,
822 .init_early = devkit8000_init_early,
818 .init_irq = devkit8000_init_irq, 823 .init_irq = devkit8000_init_irq,
819 .init_machine = devkit8000_init, 824 .init_machine = devkit8000_init,
820 .timer = &omap_timer, 825 .timer = &omap_timer,
diff --git a/arch/arm/mach-omap2/board-generic.c b/arch/arm/mach-omap2/board-generic.c
index 0e3d81e09f89..682da9251db6 100644
--- a/arch/arm/mach-omap2/board-generic.c
+++ b/arch/arm/mach-omap2/board-generic.c
@@ -33,13 +33,12 @@
33static struct omap_board_config_kernel generic_config[] = { 33static struct omap_board_config_kernel generic_config[] = {
34}; 34};
35 35
36static void __init omap_generic_init_irq(void) 36static void __init omap_generic_init_early(void)
37{ 37{
38 omap_board_config = generic_config; 38 omap_board_config = generic_config;
39 omap_board_config_size = ARRAY_SIZE(generic_config); 39 omap_board_config_size = ARRAY_SIZE(generic_config);
40 omap2_init_common_infrastructure(); 40 omap2_init_common_infrastructure();
41 omap2_init_common_devices(NULL, NULL); 41 omap2_init_common_devices(NULL, NULL);
42 omap_init_irq();
43} 42}
44 43
45static void __init omap_generic_init(void) 44static void __init omap_generic_init(void)
@@ -68,9 +67,10 @@ static void __init omap_generic_map_io(void)
68MACHINE_START(OMAP_GENERIC, "Generic OMAP24xx") 67MACHINE_START(OMAP_GENERIC, "Generic OMAP24xx")
69 /* Maintainer: Paul Mundt <paul.mundt@nokia.com> */ 68 /* Maintainer: Paul Mundt <paul.mundt@nokia.com> */
70 .boot_params = 0x80000100, 69 .boot_params = 0x80000100,
71 .map_io = omap_generic_map_io,
72 .reserve = omap_reserve, 70 .reserve = omap_reserve,
73 .init_irq = omap_generic_init_irq, 71 .map_io = omap_generic_map_io,
72 .init_early = omap_generic_init_early,
73 .init_irq = omap_init_irq,
74 .init_machine = omap_generic_init, 74 .init_machine = omap_generic_init,
75 .timer = &omap_timer, 75 .timer = &omap_timer,
76MACHINE_END 76MACHINE_END
diff --git a/arch/arm/mach-omap2/board-h4.c b/arch/arm/mach-omap2/board-h4.c
index 25cc9dad4b02..f6a3872f72fa 100644
--- a/arch/arm/mach-omap2/board-h4.c
+++ b/arch/arm/mach-omap2/board-h4.c
@@ -290,12 +290,16 @@ static struct omap_board_config_kernel h4_config[] __initdata = {
290 { OMAP_TAG_LCD, &h4_lcd_config }, 290 { OMAP_TAG_LCD, &h4_lcd_config },
291}; 291};
292 292
293static void __init omap_h4_init_irq(void) 293static void __init omap_h4_init_early(void)
294{ 294{
295 omap_board_config = h4_config; 295 omap_board_config = h4_config;
296 omap_board_config_size = ARRAY_SIZE(h4_config); 296 omap_board_config_size = ARRAY_SIZE(h4_config);
297 omap2_init_common_infrastructure(); 297 omap2_init_common_infrastructure();
298 omap2_init_common_devices(NULL, NULL); 298 omap2_init_common_devices(NULL, NULL);
299}
300
301static void __init omap_h4_init_irq(void)
302{
299 omap_init_irq(); 303 omap_init_irq();
300 h4_init_flash(); 304 h4_init_flash();
301} 305}
@@ -378,8 +382,9 @@ static void __init omap_h4_map_io(void)
378MACHINE_START(OMAP_H4, "OMAP2420 H4 board") 382MACHINE_START(OMAP_H4, "OMAP2420 H4 board")
379 /* Maintainer: Paul Mundt <paul.mundt@nokia.com> */ 383 /* Maintainer: Paul Mundt <paul.mundt@nokia.com> */
380 .boot_params = 0x80000100, 384 .boot_params = 0x80000100,
381 .map_io = omap_h4_map_io,
382 .reserve = omap_reserve, 385 .reserve = omap_reserve,
386 .map_io = omap_h4_map_io,
387 .init_early = omap_h4_init_early,
383 .init_irq = omap_h4_init_irq, 388 .init_irq = omap_h4_init_irq,
384 .init_machine = omap_h4_init, 389 .init_machine = omap_h4_init,
385 .timer = &omap_timer, 390 .timer = &omap_timer,
diff --git a/arch/arm/mach-omap2/board-igep0020.c b/arch/arm/mach-omap2/board-igep0020.c
index 3be85a1f55f4..dd0b1ac3b662 100644
--- a/arch/arm/mach-omap2/board-igep0020.c
+++ b/arch/arm/mach-omap2/board-igep0020.c
@@ -525,12 +525,11 @@ static struct platform_device *igep2_devices[] __initdata = {
525 &igep2_vwlan_device, 525 &igep2_vwlan_device,
526}; 526};
527 527
528static void __init igep2_init_irq(void) 528static void __init igep2_init_early(void)
529{ 529{
530 omap2_init_common_infrastructure(); 530 omap2_init_common_infrastructure();
531 omap2_init_common_devices(m65kxxxxam_sdrc_params, 531 omap2_init_common_devices(m65kxxxxam_sdrc_params,
532 m65kxxxxam_sdrc_params); 532 m65kxxxxam_sdrc_params);
533 omap_init_irq();
534} 533}
535 534
536static struct twl4030_codec_audio_data igep2_audio_data = { 535static struct twl4030_codec_audio_data igep2_audio_data = {
@@ -716,9 +715,10 @@ static void __init igep2_init(void)
716 715
717MACHINE_START(IGEP0020, "IGEP v2 board") 716MACHINE_START(IGEP0020, "IGEP v2 board")
718 .boot_params = 0x80000100, 717 .boot_params = 0x80000100,
719 .map_io = omap3_map_io,
720 .reserve = omap_reserve, 718 .reserve = omap_reserve,
721 .init_irq = igep2_init_irq, 719 .map_io = omap3_map_io,
720 .init_early = igep2_init_early,
721 .init_irq = omap_init_irq,
722 .init_machine = igep2_init, 722 .init_machine = igep2_init,
723 .timer = &omap_timer, 723 .timer = &omap_timer,
724MACHINE_END 724MACHINE_END
diff --git a/arch/arm/mach-omap2/board-igep0030.c b/arch/arm/mach-omap2/board-igep0030.c
index 4dc62a9b9cb2..d75028e48f5d 100644
--- a/arch/arm/mach-omap2/board-igep0030.c
+++ b/arch/arm/mach-omap2/board-igep0030.c
@@ -331,12 +331,11 @@ static struct platform_device *igep3_devices[] __initdata = {
331 &igep3_vwlan_device, 331 &igep3_vwlan_device,
332}; 332};
333 333
334static void __init igep3_init_irq(void) 334static void __init igep3_init_early(void)
335{ 335{
336 omap2_init_common_infrastructure(); 336 omap2_init_common_infrastructure();
337 omap2_init_common_devices(m65kxxxxam_sdrc_params, 337 omap2_init_common_devices(m65kxxxxam_sdrc_params,
338 m65kxxxxam_sdrc_params); 338 m65kxxxxam_sdrc_params);
339 omap_init_irq();
340} 339}
341 340
342static struct twl4030_platform_data igep3_twl4030_pdata = { 341static struct twl4030_platform_data igep3_twl4030_pdata = {
@@ -452,7 +451,8 @@ MACHINE_START(IGEP0030, "IGEP OMAP3 module")
452 .boot_params = 0x80000100, 451 .boot_params = 0x80000100,
453 .reserve = omap_reserve, 452 .reserve = omap_reserve,
454 .map_io = omap3_map_io, 453 .map_io = omap3_map_io,
455 .init_irq = igep3_init_irq, 454 .init_early = igep3_init_early,
455 .init_irq = omap_init_irq,
456 .init_machine = igep3_init, 456 .init_machine = igep3_init,
457 .timer = &omap_timer, 457 .timer = &omap_timer,
458MACHINE_END 458MACHINE_END
diff --git a/arch/arm/mach-omap2/board-ldp.c b/arch/arm/mach-omap2/board-ldp.c
index e5dc74875f9d..d8eb2cb7cbc7 100644
--- a/arch/arm/mach-omap2/board-ldp.c
+++ b/arch/arm/mach-omap2/board-ldp.c
@@ -288,13 +288,12 @@ static struct omap_board_config_kernel ldp_config[] __initdata = {
288 { OMAP_TAG_LCD, &ldp_lcd_config }, 288 { OMAP_TAG_LCD, &ldp_lcd_config },
289}; 289};
290 290
291static void __init omap_ldp_init_irq(void) 291static void __init omap_ldp_init_early(void)
292{ 292{
293 omap_board_config = ldp_config; 293 omap_board_config = ldp_config;
294 omap_board_config_size = ARRAY_SIZE(ldp_config); 294 omap_board_config_size = ARRAY_SIZE(ldp_config);
295 omap2_init_common_infrastructure(); 295 omap2_init_common_infrastructure();
296 omap2_init_common_devices(NULL, NULL); 296 omap2_init_common_devices(NULL, NULL);
297 omap_init_irq();
298} 297}
299 298
300static struct twl4030_usb_data ldp_usb_data = { 299static struct twl4030_usb_data ldp_usb_data = {
@@ -443,9 +442,10 @@ static void __init omap_ldp_init(void)
443 442
444MACHINE_START(OMAP_LDP, "OMAP LDP board") 443MACHINE_START(OMAP_LDP, "OMAP LDP board")
445 .boot_params = 0x80000100, 444 .boot_params = 0x80000100,
446 .map_io = omap3_map_io,
447 .reserve = omap_reserve, 445 .reserve = omap_reserve,
448 .init_irq = omap_ldp_init_irq, 446 .map_io = omap3_map_io,
447 .init_early = omap_ldp_init_early,
448 .init_irq = omap_init_irq,
449 .init_machine = omap_ldp_init, 449 .init_machine = omap_ldp_init,
450 .timer = &omap_timer, 450 .timer = &omap_timer,
451MACHINE_END 451MACHINE_END
diff --git a/arch/arm/mach-omap2/board-n8x0.c b/arch/arm/mach-omap2/board-n8x0.c
index f396756872b7..b36cbd21e2d0 100644
--- a/arch/arm/mach-omap2/board-n8x0.c
+++ b/arch/arm/mach-omap2/board-n8x0.c
@@ -628,11 +628,10 @@ static void __init n8x0_map_io(void)
628 omap242x_map_common_io(); 628 omap242x_map_common_io();
629} 629}
630 630
631static void __init n8x0_init_irq(void) 631static void __init n8x0_init_early(void)
632{ 632{
633 omap2_init_common_infrastructure(); 633 omap2_init_common_infrastructure();
634 omap2_init_common_devices(NULL, NULL); 634 omap2_init_common_devices(NULL, NULL);
635 omap_init_irq();
636} 635}
637 636
638#ifdef CONFIG_OMAP_MUX 637#ifdef CONFIG_OMAP_MUX
@@ -703,27 +702,30 @@ static void __init n8x0_init_machine(void)
703 702
704MACHINE_START(NOKIA_N800, "Nokia N800") 703MACHINE_START(NOKIA_N800, "Nokia N800")
705 .boot_params = 0x80000100, 704 .boot_params = 0x80000100,
706 .map_io = n8x0_map_io,
707 .reserve = omap_reserve, 705 .reserve = omap_reserve,
708 .init_irq = n8x0_init_irq, 706 .map_io = n8x0_map_io,
707 .init_early = n8x0_init_early,
708 .init_irq = omap_init_irq,
709 .init_machine = n8x0_init_machine, 709 .init_machine = n8x0_init_machine,
710 .timer = &omap_timer, 710 .timer = &omap_timer,
711MACHINE_END 711MACHINE_END
712 712
713MACHINE_START(NOKIA_N810, "Nokia N810") 713MACHINE_START(NOKIA_N810, "Nokia N810")
714 .boot_params = 0x80000100, 714 .boot_params = 0x80000100,
715 .map_io = n8x0_map_io,
716 .reserve = omap_reserve, 715 .reserve = omap_reserve,
717 .init_irq = n8x0_init_irq, 716 .map_io = n8x0_map_io,
717 .init_early = n8x0_init_early,
718 .init_irq = omap_init_irq,
718 .init_machine = n8x0_init_machine, 719 .init_machine = n8x0_init_machine,
719 .timer = &omap_timer, 720 .timer = &omap_timer,
720MACHINE_END 721MACHINE_END
721 722
722MACHINE_START(NOKIA_N810_WIMAX, "Nokia N810 WiMAX") 723MACHINE_START(NOKIA_N810_WIMAX, "Nokia N810 WiMAX")
723 .boot_params = 0x80000100, 724 .boot_params = 0x80000100,
724 .map_io = n8x0_map_io,
725 .reserve = omap_reserve, 725 .reserve = omap_reserve,
726 .init_irq = n8x0_init_irq, 726 .map_io = n8x0_map_io,
727 .init_early = n8x0_init_early,
728 .init_irq = omap_init_irq,
727 .init_machine = n8x0_init_machine, 729 .init_machine = n8x0_init_machine,
728 .timer = &omap_timer, 730 .timer = &omap_timer,
729MACHINE_END 731MACHINE_END
diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c
index 46d814ab5656..19bcd004d604 100644
--- a/arch/arm/mach-omap2/board-omap3beagle.c
+++ b/arch/arm/mach-omap2/board-omap3beagle.c
@@ -536,11 +536,15 @@ static struct platform_device keys_gpio = {
536 }, 536 },
537}; 537};
538 538
539static void __init omap3_beagle_init_irq(void) 539static void __init omap3_beagle_init_early(void)
540{ 540{
541 omap2_init_common_infrastructure(); 541 omap2_init_common_infrastructure();
542 omap2_init_common_devices(mt46h32m32lf6_sdrc_params, 542 omap2_init_common_devices(mt46h32m32lf6_sdrc_params,
543 mt46h32m32lf6_sdrc_params); 543 mt46h32m32lf6_sdrc_params);
544}
545
546static void __init omap3_beagle_init_irq(void)
547{
544 omap_init_irq(); 548 omap_init_irq();
545#ifdef CONFIG_OMAP_32K_TIMER 549#ifdef CONFIG_OMAP_32K_TIMER
546 omap2_gp_clockevent_set_gptimer(12); 550 omap2_gp_clockevent_set_gptimer(12);
@@ -638,8 +642,9 @@ static void __init omap3_beagle_init(void)
638MACHINE_START(OMAP3_BEAGLE, "OMAP3 Beagle Board") 642MACHINE_START(OMAP3_BEAGLE, "OMAP3 Beagle Board")
639 /* Maintainer: Syed Mohammed Khasim - http://beagleboard.org */ 643 /* Maintainer: Syed Mohammed Khasim - http://beagleboard.org */
640 .boot_params = 0x80000100, 644 .boot_params = 0x80000100,
641 .map_io = omap3_map_io,
642 .reserve = omap_reserve, 645 .reserve = omap_reserve,
646 .map_io = omap3_map_io,
647 .init_early = omap3_beagle_init_early,
643 .init_irq = omap3_beagle_init_irq, 648 .init_irq = omap3_beagle_init_irq,
644 .init_machine = omap3_beagle_init, 649 .init_machine = omap3_beagle_init,
645 .timer = &omap_timer, 650 .timer = &omap_timer,
diff --git a/arch/arm/mach-omap2/board-omap3evm.c b/arch/arm/mach-omap2/board-omap3evm.c
index 323c3809ce39..c2a0fca4aa53 100644
--- a/arch/arm/mach-omap2/board-omap3evm.c
+++ b/arch/arm/mach-omap2/board-omap3evm.c
@@ -625,13 +625,12 @@ static struct spi_board_info omap3evm_spi_board_info[] = {
625static struct omap_board_config_kernel omap3_evm_config[] __initdata = { 625static struct omap_board_config_kernel omap3_evm_config[] __initdata = {
626}; 626};
627 627
628static void __init omap3_evm_init_irq(void) 628static void __init omap3_evm_init_early(void)
629{ 629{
630 omap_board_config = omap3_evm_config; 630 omap_board_config = omap3_evm_config;
631 omap_board_config_size = ARRAY_SIZE(omap3_evm_config); 631 omap_board_config_size = ARRAY_SIZE(omap3_evm_config);
632 omap2_init_common_infrastructure(); 632 omap2_init_common_infrastructure();
633 omap2_init_common_devices(mt46h32m32lf6_sdrc_params, NULL); 633 omap2_init_common_devices(mt46h32m32lf6_sdrc_params, NULL);
634 omap_init_irq();
635} 634}
636 635
637static struct platform_device *omap3_evm_devices[] __initdata = { 636static struct platform_device *omap3_evm_devices[] __initdata = {
@@ -720,9 +719,10 @@ static void __init omap3_evm_init(void)
720MACHINE_START(OMAP3EVM, "OMAP3 EVM") 719MACHINE_START(OMAP3EVM, "OMAP3 EVM")
721 /* Maintainer: Syed Mohammed Khasim - Texas Instruments */ 720 /* Maintainer: Syed Mohammed Khasim - Texas Instruments */
722 .boot_params = 0x80000100, 721 .boot_params = 0x80000100,
723 .map_io = omap3_map_io,
724 .reserve = omap_reserve, 722 .reserve = omap_reserve,
725 .init_irq = omap3_evm_init_irq, 723 .map_io = omap3_map_io,
724 .init_early = omap3_evm_init_early,
725 .init_irq = omap_init_irq,
726 .init_machine = omap3_evm_init, 726 .init_machine = omap3_evm_init,
727 .timer = &omap_timer, 727 .timer = &omap_timer,
728MACHINE_END 728MACHINE_END
diff --git a/arch/arm/mach-omap2/board-omap3logic.c b/arch/arm/mach-omap2/board-omap3logic.c
index 15e4b08e99ba..b726943d7c93 100644
--- a/arch/arm/mach-omap2/board-omap3logic.c
+++ b/arch/arm/mach-omap2/board-omap3logic.c
@@ -195,11 +195,10 @@ static inline void __init board_smsc911x_init(void)
195 gpmc_smsc911x_init(&board_smsc911x_data); 195 gpmc_smsc911x_init(&board_smsc911x_data);
196} 196}
197 197
198static void __init omap3logic_init_irq(void) 198static void __init omap3logic_init_early(void)
199{ 199{
200 omap2_init_common_infrastructure(); 200 omap2_init_common_infrastructure();
201 omap2_init_common_devices(NULL, NULL); 201 omap2_init_common_devices(NULL, NULL);
202 omap_init_irq();
203} 202}
204 203
205#ifdef CONFIG_OMAP_MUX 204#ifdef CONFIG_OMAP_MUX
@@ -225,7 +224,8 @@ static void __init omap3logic_init(void)
225MACHINE_START(OMAP3_TORPEDO, "Logic OMAP3 Torpedo board") 224MACHINE_START(OMAP3_TORPEDO, "Logic OMAP3 Torpedo board")
226 .boot_params = 0x80000100, 225 .boot_params = 0x80000100,
227 .map_io = omap3_map_io, 226 .map_io = omap3_map_io,
228 .init_irq = omap3logic_init_irq, 227 .init_early = omap3logic_init_early,
228 .init_irq = omap_init_irq,
229 .init_machine = omap3logic_init, 229 .init_machine = omap3logic_init,
230 .timer = &omap_timer, 230 .timer = &omap_timer,
231MACHINE_END 231MACHINE_END
@@ -233,7 +233,8 @@ MACHINE_END
233MACHINE_START(OMAP3530_LV_SOM, "OMAP Logic 3530 LV SOM board") 233MACHINE_START(OMAP3530_LV_SOM, "OMAP Logic 3530 LV SOM board")
234 .boot_params = 0x80000100, 234 .boot_params = 0x80000100,
235 .map_io = omap3_map_io, 235 .map_io = omap3_map_io,
236 .init_irq = omap3logic_init_irq, 236 .init_early = omap3logic_init_early,
237 .init_irq = omap_init_irq,
237 .init_machine = omap3logic_init, 238 .init_machine = omap3logic_init,
238 .timer = &omap_timer, 239 .timer = &omap_timer,
239MACHINE_END 240MACHINE_END
diff --git a/arch/arm/mach-omap2/board-omap3pandora.c b/arch/arm/mach-omap2/board-omap3pandora.c
index 0b34beded11f..b91f74ce3a9f 100644
--- a/arch/arm/mach-omap2/board-omap3pandora.c
+++ b/arch/arm/mach-omap2/board-omap3pandora.c
@@ -634,12 +634,11 @@ static struct spi_board_info omap3pandora_spi_board_info[] __initdata = {
634 } 634 }
635}; 635};
636 636
637static void __init omap3pandora_init_irq(void) 637static void __init omap3pandora_init_early(void)
638{ 638{
639 omap2_init_common_infrastructure(); 639 omap2_init_common_infrastructure();
640 omap2_init_common_devices(mt46h32m32lf6_sdrc_params, 640 omap2_init_common_devices(mt46h32m32lf6_sdrc_params,
641 mt46h32m32lf6_sdrc_params); 641 mt46h32m32lf6_sdrc_params);
642 omap_init_irq();
643} 642}
644 643
645static void __init pandora_wl1251_init(void) 644static void __init pandora_wl1251_init(void)
@@ -727,9 +726,10 @@ static void __init omap3pandora_init(void)
727 726
728MACHINE_START(OMAP3_PANDORA, "Pandora Handheld Console") 727MACHINE_START(OMAP3_PANDORA, "Pandora Handheld Console")
729 .boot_params = 0x80000100, 728 .boot_params = 0x80000100,
730 .map_io = omap3_map_io,
731 .reserve = omap_reserve, 729 .reserve = omap_reserve,
732 .init_irq = omap3pandora_init_irq, 730 .map_io = omap3_map_io,
731 .init_early = omap3pandora_init_early,
732 .init_irq = omap_init_irq,
733 .init_machine = omap3pandora_init, 733 .init_machine = omap3pandora_init,
734 .timer = &omap_timer, 734 .timer = &omap_timer,
735MACHINE_END 735MACHINE_END
diff --git a/arch/arm/mach-omap2/board-omap3stalker.c b/arch/arm/mach-omap2/board-omap3stalker.c
index 2a2dad447e86..5d1ccef69164 100644
--- a/arch/arm/mach-omap2/board-omap3stalker.c
+++ b/arch/arm/mach-omap2/board-omap3stalker.c
@@ -591,12 +591,16 @@ static struct spi_board_info omap3stalker_spi_board_info[] = {
591static struct omap_board_config_kernel omap3_stalker_config[] __initdata = { 591static struct omap_board_config_kernel omap3_stalker_config[] __initdata = {
592}; 592};
593 593
594static void __init omap3_stalker_init_irq(void) 594static void __init omap3_stalker_init_early(void)
595{ 595{
596 omap_board_config = omap3_stalker_config; 596 omap_board_config = omap3_stalker_config;
597 omap_board_config_size = ARRAY_SIZE(omap3_stalker_config); 597 omap_board_config_size = ARRAY_SIZE(omap3_stalker_config);
598 omap2_init_common_infrastructure(); 598 omap2_init_common_infrastructure();
599 omap2_init_common_devices(mt46h32m32lf6_sdrc_params, NULL); 599 omap2_init_common_devices(mt46h32m32lf6_sdrc_params, NULL);
600}
601
602static void __init omap3_stalker_init_irq(void)
603{
600 omap_init_irq(); 604 omap_init_irq();
601#ifdef CONFIG_OMAP_32K_TIMER 605#ifdef CONFIG_OMAP_32K_TIMER
602 omap2_gp_clockevent_set_gptimer(12); 606 omap2_gp_clockevent_set_gptimer(12);
@@ -666,6 +670,7 @@ MACHINE_START(SBC3530, "OMAP3 STALKER")
666 /* Maintainer: Jason Lam -lzg@ema-tech.com */ 670 /* Maintainer: Jason Lam -lzg@ema-tech.com */
667 .boot_params = 0x80000100, 671 .boot_params = 0x80000100,
668 .map_io = omap3_map_io, 672 .map_io = omap3_map_io,
673 .init_early = omap3_stalker_init_early,
669 .init_irq = omap3_stalker_init_irq, 674 .init_irq = omap3_stalker_init_irq,
670 .init_machine = omap3_stalker_init, 675 .init_machine = omap3_stalker_init,
671 .timer = &omap_timer, 676 .timer = &omap_timer,
diff --git a/arch/arm/mach-omap2/board-omap3touchbook.c b/arch/arm/mach-omap2/board-omap3touchbook.c
index db1f74fe6c4f..6a60f79dcccb 100644
--- a/arch/arm/mach-omap2/board-omap3touchbook.c
+++ b/arch/arm/mach-omap2/board-omap3touchbook.c
@@ -415,7 +415,7 @@ static struct omap_board_mux board_mux[] __initdata = {
415}; 415};
416#endif 416#endif
417 417
418static void __init omap3_touchbook_init_irq(void) 418static void __init omap3_touchbook_init_early(void)
419{ 419{
420 omap3_mux_init(board_mux, OMAP_PACKAGE_CBB); 420 omap3_mux_init(board_mux, OMAP_PACKAGE_CBB);
421 omap_board_config = omap3_touchbook_config; 421 omap_board_config = omap3_touchbook_config;
@@ -423,6 +423,10 @@ static void __init omap3_touchbook_init_irq(void)
423 omap2_init_common_infrastructure(); 423 omap2_init_common_infrastructure();
424 omap2_init_common_devices(mt46h32m32lf6_sdrc_params, 424 omap2_init_common_devices(mt46h32m32lf6_sdrc_params,
425 mt46h32m32lf6_sdrc_params); 425 mt46h32m32lf6_sdrc_params);
426}
427
428static void __init omap3_touchbook_init_irq(void)
429{
426 omap_init_irq(); 430 omap_init_irq();
427#ifdef CONFIG_OMAP_32K_TIMER 431#ifdef CONFIG_OMAP_32K_TIMER
428 omap2_gp_clockevent_set_gptimer(12); 432 omap2_gp_clockevent_set_gptimer(12);
@@ -538,8 +542,9 @@ static void __init omap3_touchbook_init(void)
538MACHINE_START(TOUCHBOOK, "OMAP3 touchbook Board") 542MACHINE_START(TOUCHBOOK, "OMAP3 touchbook Board")
539 /* Maintainer: Gregoire Gentil - http://www.alwaysinnovating.com */ 543 /* Maintainer: Gregoire Gentil - http://www.alwaysinnovating.com */
540 .boot_params = 0x80000100, 544 .boot_params = 0x80000100,
541 .map_io = omap3_map_io,
542 .reserve = omap_reserve, 545 .reserve = omap_reserve,
546 .map_io = omap3_map_io,
547 .init_early = omap3_touchbook_init_early,
543 .init_irq = omap3_touchbook_init_irq, 548 .init_irq = omap3_touchbook_init_irq,
544 .init_machine = omap3_touchbook_init, 549 .init_machine = omap3_touchbook_init,
545 .timer = &omap_timer, 550 .timer = &omap_timer,
diff --git a/arch/arm/mach-omap2/board-omap4panda.c b/arch/arm/mach-omap2/board-omap4panda.c
index e944025d5ef8..fca5b9e80c18 100644
--- a/arch/arm/mach-omap2/board-omap4panda.c
+++ b/arch/arm/mach-omap2/board-omap4panda.c
@@ -76,11 +76,10 @@ static struct platform_device *panda_devices[] __initdata = {
76 &leds_gpio, 76 &leds_gpio,
77}; 77};
78 78
79static void __init omap4_panda_init_irq(void) 79static void __init omap4_panda_init_early(void)
80{ 80{
81 omap2_init_common_infrastructure(); 81 omap2_init_common_infrastructure();
82 omap2_init_common_devices(NULL, NULL); 82 omap2_init_common_devices(NULL, NULL);
83 gic_init_irq();
84} 83}
85 84
86static const struct ehci_hcd_omap_platform_data ehci_pdata __initconst = { 85static const struct ehci_hcd_omap_platform_data ehci_pdata __initconst = {
@@ -424,7 +423,8 @@ MACHINE_START(OMAP4_PANDA, "OMAP4 Panda board")
424 .boot_params = 0x80000100, 423 .boot_params = 0x80000100,
425 .reserve = omap_reserve, 424 .reserve = omap_reserve,
426 .map_io = omap4_panda_map_io, 425 .map_io = omap4_panda_map_io,
427 .init_irq = omap4_panda_init_irq, 426 .init_early = omap4_panda_init_early,
427 .init_irq = gic_init_irq,
428 .init_machine = omap4_panda_init, 428 .init_machine = omap4_panda_init,
429 .timer = &omap_timer, 429 .timer = &omap_timer,
430MACHINE_END 430MACHINE_END
diff --git a/arch/arm/mach-omap2/board-overo.c b/arch/arm/mach-omap2/board-overo.c
index cb26e5d8268d..a33ec0edec13 100644
--- a/arch/arm/mach-omap2/board-overo.c
+++ b/arch/arm/mach-omap2/board-overo.c
@@ -409,14 +409,13 @@ static struct omap_board_config_kernel overo_config[] __initdata = {
409 { OMAP_TAG_LCD, &overo_lcd_config }, 409 { OMAP_TAG_LCD, &overo_lcd_config },
410}; 410};
411 411
412static void __init overo_init_irq(void) 412static void __init overo_init_early(void)
413{ 413{
414 omap_board_config = overo_config; 414 omap_board_config = overo_config;
415 omap_board_config_size = ARRAY_SIZE(overo_config); 415 omap_board_config_size = ARRAY_SIZE(overo_config);
416 omap2_init_common_infrastructure(); 416 omap2_init_common_infrastructure();
417 omap2_init_common_devices(mt46h32m32lf6_sdrc_params, 417 omap2_init_common_devices(mt46h32m32lf6_sdrc_params,
418 mt46h32m32lf6_sdrc_params); 418 mt46h32m32lf6_sdrc_params);
419 omap_init_irq();
420} 419}
421 420
422static struct platform_device *overo_devices[] __initdata = { 421static struct platform_device *overo_devices[] __initdata = {
@@ -501,9 +500,10 @@ static void __init overo_init(void)
501 500
502MACHINE_START(OVERO, "Gumstix Overo") 501MACHINE_START(OVERO, "Gumstix Overo")
503 .boot_params = 0x80000100, 502 .boot_params = 0x80000100,
504 .map_io = omap3_map_io,
505 .reserve = omap_reserve, 503 .reserve = omap_reserve,
506 .init_irq = overo_init_irq, 504 .map_io = omap3_map_io,
505 .init_early = overo_init_early,
506 .init_irq = omap_init_irq,
507 .init_machine = overo_init, 507 .init_machine = overo_init,
508 .timer = &omap_timer, 508 .timer = &omap_timer,
509MACHINE_END 509MACHINE_END
diff --git a/arch/arm/mach-omap2/board-rm680.c b/arch/arm/mach-omap2/board-rm680.c
index 39a71bb8a308..bdebcb7328e6 100644
--- a/arch/arm/mach-omap2/board-rm680.c
+++ b/arch/arm/mach-omap2/board-rm680.c
@@ -138,14 +138,13 @@ static void __init rm680_peripherals_init(void)
138 omap2_hsmmc_init(mmc); 138 omap2_hsmmc_init(mmc);
139} 139}
140 140
141static void __init rm680_init_irq(void) 141static void __init rm680_init_early(void)
142{ 142{
143 struct omap_sdrc_params *sdrc_params; 143 struct omap_sdrc_params *sdrc_params;
144 144
145 omap2_init_common_infrastructure(); 145 omap2_init_common_infrastructure();
146 sdrc_params = nokia_get_sdram_timings(); 146 sdrc_params = nokia_get_sdram_timings();
147 omap2_init_common_devices(sdrc_params, sdrc_params); 147 omap2_init_common_devices(sdrc_params, sdrc_params);
148 omap_init_irq();
149} 148}
150 149
151#ifdef CONFIG_OMAP_MUX 150#ifdef CONFIG_OMAP_MUX
@@ -176,9 +175,10 @@ static void __init rm680_map_io(void)
176 175
177MACHINE_START(NOKIA_RM680, "Nokia RM-680 board") 176MACHINE_START(NOKIA_RM680, "Nokia RM-680 board")
178 .boot_params = 0x80000100, 177 .boot_params = 0x80000100,
179 .map_io = rm680_map_io,
180 .reserve = omap_reserve, 178 .reserve = omap_reserve,
181 .init_irq = rm680_init_irq, 179 .map_io = rm680_map_io,
180 .init_early = rm680_init_early,
181 .init_irq = omap_init_irq,
182 .init_machine = rm680_init, 182 .init_machine = rm680_init,
183 .timer = &omap_timer, 183 .timer = &omap_timer,
184MACHINE_END 184MACHINE_END
diff --git a/arch/arm/mach-omap2/board-rx51.c b/arch/arm/mach-omap2/board-rx51.c
index f53fc551c58f..3cf72fe6d75b 100644
--- a/arch/arm/mach-omap2/board-rx51.c
+++ b/arch/arm/mach-omap2/board-rx51.c
@@ -98,7 +98,7 @@ static struct omap_board_config_kernel rx51_config[] = {
98 { OMAP_TAG_LCD, &rx51_lcd_config }, 98 { OMAP_TAG_LCD, &rx51_lcd_config },
99}; 99};
100 100
101static void __init rx51_init_irq(void) 101static void __init rx51_init_early(void)
102{ 102{
103 struct omap_sdrc_params *sdrc_params; 103 struct omap_sdrc_params *sdrc_params;
104 104
@@ -108,7 +108,6 @@ static void __init rx51_init_irq(void)
108 omap2_init_common_infrastructure(); 108 omap2_init_common_infrastructure();
109 sdrc_params = nokia_get_sdram_timings(); 109 sdrc_params = nokia_get_sdram_timings();
110 omap2_init_common_devices(sdrc_params, sdrc_params); 110 omap2_init_common_devices(sdrc_params, sdrc_params);
111 omap_init_irq();
112} 111}
113 112
114extern void __init rx51_peripherals_init(void); 113extern void __init rx51_peripherals_init(void);
@@ -149,9 +148,10 @@ static void __init rx51_map_io(void)
149MACHINE_START(NOKIA_RX51, "Nokia RX-51 board") 148MACHINE_START(NOKIA_RX51, "Nokia RX-51 board")
150 /* Maintainer: Lauri Leukkunen <lauri.leukkunen@nokia.com> */ 149 /* Maintainer: Lauri Leukkunen <lauri.leukkunen@nokia.com> */
151 .boot_params = 0x80000100, 150 .boot_params = 0x80000100,
152 .map_io = rx51_map_io,
153 .reserve = omap_reserve, 151 .reserve = omap_reserve,
154 .init_irq = rx51_init_irq, 152 .map_io = rx51_map_io,
153 .init_early = rx51_init_early,
154 .init_irq = omap_init_irq,
155 .init_machine = rx51_init, 155 .init_machine = rx51_init,
156 .timer = &omap_timer, 156 .timer = &omap_timer,
157MACHINE_END 157MACHINE_END
diff --git a/arch/arm/mach-omap2/board-zoom.c b/arch/arm/mach-omap2/board-zoom.c
index e26754c24ee8..85d4170f30ab 100644
--- a/arch/arm/mach-omap2/board-zoom.c
+++ b/arch/arm/mach-omap2/board-zoom.c
@@ -33,7 +33,7 @@
33 33
34#define ZOOM3_EHCI_RESET_GPIO 64 34#define ZOOM3_EHCI_RESET_GPIO 64
35 35
36static void __init omap_zoom_init_irq(void) 36static void __init omap_zoom_init_early(void)
37{ 37{
38 omap2_init_common_infrastructure(); 38 omap2_init_common_infrastructure();
39 if (machine_is_omap_zoom2()) 39 if (machine_is_omap_zoom2())
@@ -42,8 +42,6 @@ static void __init omap_zoom_init_irq(void)
42 else if (machine_is_omap_zoom3()) 42 else if (machine_is_omap_zoom3())
43 omap2_init_common_devices(h8mbx00u0mer0em_sdrc_params, 43 omap2_init_common_devices(h8mbx00u0mer0em_sdrc_params,
44 h8mbx00u0mer0em_sdrc_params); 44 h8mbx00u0mer0em_sdrc_params);
45
46 omap_init_irq();
47} 45}
48 46
49#ifdef CONFIG_OMAP_MUX 47#ifdef CONFIG_OMAP_MUX
@@ -135,18 +133,20 @@ static void __init omap_zoom_init(void)
135 133
136MACHINE_START(OMAP_ZOOM2, "OMAP Zoom2 board") 134MACHINE_START(OMAP_ZOOM2, "OMAP Zoom2 board")
137 .boot_params = 0x80000100, 135 .boot_params = 0x80000100,
138 .map_io = omap3_map_io,
139 .reserve = omap_reserve, 136 .reserve = omap_reserve,
140 .init_irq = omap_zoom_init_irq, 137 .map_io = omap3_map_io,
138 .init_early = omap_zoom_init_early,
139 .init_irq = omap_init_irq,
141 .init_machine = omap_zoom_init, 140 .init_machine = omap_zoom_init,
142 .timer = &omap_timer, 141 .timer = &omap_timer,
143MACHINE_END 142MACHINE_END
144 143
145MACHINE_START(OMAP_ZOOM3, "OMAP Zoom3 board") 144MACHINE_START(OMAP_ZOOM3, "OMAP Zoom3 board")
146 .boot_params = 0x80000100, 145 .boot_params = 0x80000100,
147 .map_io = omap3_map_io,
148 .reserve = omap_reserve, 146 .reserve = omap_reserve,
149 .init_irq = omap_zoom_init_irq, 147 .map_io = omap3_map_io,
148 .init_early = omap_zoom_init_early,
149 .init_irq = omap_init_irq,
150 .init_machine = omap_zoom_init, 150 .init_machine = omap_zoom_init,
151 .timer = &omap_timer, 151 .timer = &omap_timer,
152MACHINE_END 152MACHINE_END