We only want this initcall to run when the kernel is
booted on omap SoCs. Fix the issue by initializing the
the initcall from separately for omap1 and omap2+.
This fixes the issue for omap2+ multiplatform configs
as we are using omap_subsys_initcall there.
Tested-by: Ezequiel Garcia <ezequiel.garcia@free-electrons.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
 
        return platform_device_register(pdev);
 }
+
+static  int __init omap_i2c_cmdline(void)
+{
+       return omap_register_i2c_bus_cmdline();
+}
+subsys_initcall(omap_i2c_cmdline);
 
        return PTR_RET(pdev);
 }
 
+static  int __init omap_i2c_cmdline(void)
+{
+       return omap_register_i2c_bus_cmdline();
+}
+omap_subsys_initcall(omap_i2c_cmdline);
 
  * Register busses defined in command line but that are not registered with
  * omap_register_i2c_bus from board initialization code.
  */
-static int __init omap_register_i2c_bus_cmdline(void)
+int __init omap_register_i2c_bus_cmdline(void)
 {
        int i, err = 0;
 
 out:
        return err;
 }
-subsys_initcall(omap_register_i2c_bus_cmdline);
 
 /**
  * omap_register_i2c_bus - register I2C bus with device descriptors
 
 extern int omap_register_i2c_bus(int bus_id, u32 clkrate,
                                 struct i2c_board_info const *info,
                                 unsigned len);
+extern int omap_register_i2c_bus_cmdline(void);
 #else
 static inline int omap_register_i2c_bus(int bus_id, u32 clkrate,
                                 struct i2c_board_info const *info,
 {
        return 0;
 }
+
+static inline int omap_register_i2c_bus_cmdline(void)
+{
+       return 0;
+}
 #endif
 
 struct omap_hwmod;