omap2+: Minimize board specific init_early calls
[linux-2.6-block.git] / arch / arm / mach-omap2 / board-h4.c
index 25cc9dad4b02d2b66dd70c9cf026360890697bb4..7e6bf4fa15355b730e33570da97b4dceb489e250 100644 (file)
@@ -290,12 +290,14 @@ static struct omap_board_config_kernel h4_config[] __initdata = {
        { OMAP_TAG_LCD,         &h4_lcd_config },
 };
 
-static void __init omap_h4_init_irq(void)
+static void __init omap_h4_init_early(void)
 {
-       omap_board_config = h4_config;
-       omap_board_config_size = ARRAY_SIZE(h4_config);
        omap2_init_common_infrastructure();
        omap2_init_common_devices(NULL, NULL);
+}
+
+static void __init omap_h4_init_irq(void)
+{
        omap_init_irq();
        h4_init_flash();
 }
@@ -330,6 +332,9 @@ static void __init omap_h4_init(void)
 {
        omap2420_mux_init(board_mux, OMAP_PACKAGE_ZAF);
 
+       omap_board_config = h4_config;
+       omap_board_config_size = ARRAY_SIZE(h4_config);
+
        /*
         * Make sure the serial ports are muxed on at this point.
         * You have to mux them off in device drivers later on
@@ -378,8 +383,9 @@ static void __init omap_h4_map_io(void)
 MACHINE_START(OMAP_H4, "OMAP2420 H4 board")
        /* Maintainer: Paul Mundt <paul.mundt@nokia.com> */
        .boot_params    = 0x80000100,
-       .map_io         = omap_h4_map_io,
        .reserve        = omap_reserve,
+       .map_io         = omap_h4_map_io,
+       .init_early     = omap_h4_init_early,
        .init_irq       = omap_h4_init_irq,
        .init_machine   = omap_h4_init,
        .timer          = &omap_timer,