iwlwifi: mvm: rs: organize and cleanup consts
[cascardo/linux.git] / arch / arm / mach-omap2 / devices.c
index 324f02b..1afb50d 100644 (file)
@@ -49,7 +49,7 @@ static int __init omap3_l3_init(void)
         * To avoid code running on other OMAPs in
         * multi-omap builds
         */
-       if (!(cpu_is_omap34xx()))
+       if (!(cpu_is_omap34xx()) || of_have_populated_dt())
                return -ENODEV;
 
        snprintf(oh_name, L3_MODULES_MAX_LEN, "l3_main");
@@ -67,62 +67,6 @@ static int __init omap3_l3_init(void)
 }
 omap_postcore_initcall(omap3_l3_init);
 
-static int __init omap4_l3_init(void)
-{
-       int i;
-       struct omap_hwmod *oh[3];
-       struct platform_device *pdev;
-       char oh_name[L3_MODULES_MAX_LEN];
-
-       /* If dtb is there, the devices will be created dynamically */
-       if (of_have_populated_dt())
-               return -ENODEV;
-
-       /*
-        * To avoid code running on other OMAPs in
-        * multi-omap builds
-        */
-       if (!cpu_is_omap44xx() && !soc_is_omap54xx())
-               return -ENODEV;
-
-       for (i = 0; i < L3_MODULES; i++) {
-               snprintf(oh_name, L3_MODULES_MAX_LEN, "l3_main_%d", i+1);
-
-               oh[i] = omap_hwmod_lookup(oh_name);
-               if (!(oh[i]))
-                       pr_err("could not look up %s\n", oh_name);
-       }
-
-       pdev = omap_device_build_ss("omap_l3_noc", 0, oh, 3, NULL, 0);
-
-       WARN(IS_ERR(pdev), "could not build omap_device for %s\n", oh_name);
-
-       return PTR_RET(pdev);
-}
-omap_postcore_initcall(omap4_l3_init);
-
-#if defined(CONFIG_VIDEO_OMAP2) || defined(CONFIG_VIDEO_OMAP2_MODULE)
-
-static struct resource omap2cam_resources[] = {
-       {
-               .start          = OMAP24XX_CAMERA_BASE,
-               .end            = OMAP24XX_CAMERA_BASE + 0xfff,
-               .flags          = IORESOURCE_MEM,
-       },
-       {
-               .start          = 24 + OMAP_INTC_START,
-               .flags          = IORESOURCE_IRQ,
-       }
-};
-
-static struct platform_device omap2cam_device = {
-       .name           = "omap24xxcam",
-       .id             = -1,
-       .num_resources  = ARRAY_SIZE(omap2cam_resources),
-       .resource       = omap2cam_resources,
-};
-#endif
-
 #if defined(CONFIG_IOMMU_API)
 
 #include <linux/platform_data/iommu-omap.h>
@@ -245,14 +189,6 @@ int omap3_init_camera(struct isp_platform_data *pdata)
 
 #endif
 
-static inline void omap_init_camera(void)
-{
-#if defined(CONFIG_VIDEO_OMAP2) || defined(CONFIG_VIDEO_OMAP2_MODULE)
-       if (cpu_is_omap24xx())
-               platform_device_register(&omap2cam_device);
-#endif
-}
-
 #if defined(CONFIG_OMAP2PLUS_MBOX) || defined(CONFIG_OMAP2PLUS_MBOX_MODULE)
 static inline void __init omap_init_mbox(void)
 {
@@ -431,7 +367,6 @@ static int __init omap2_init_devices(void)
         * in alphabetical order so they're easier to sort through.
         */
        omap_init_audio();
-       omap_init_camera();
        /* If dtb is there, the devices will be created dynamically */
        if (!of_have_populated_dt()) {
                omap_init_mbox();
@@ -445,3 +380,29 @@ static int __init omap2_init_devices(void)
        return 0;
 }
 omap_arch_initcall(omap2_init_devices);
+
+static int __init omap_gpmc_init(void)
+{
+       struct omap_hwmod *oh;
+       struct platform_device *pdev;
+       char *oh_name = "gpmc";
+
+       /*
+        * if the board boots up with a populated DT, do not
+        * manually add the device from this initcall
+        */
+       if (of_have_populated_dt())
+               return -ENODEV;
+
+       oh = omap_hwmod_lookup(oh_name);
+       if (!oh) {
+               pr_err("Could not look up %s\n", oh_name);
+               return -ENODEV;
+       }
+
+       pdev = omap_device_build("omap-gpmc", -1, oh, NULL, 0);
+       WARN(IS_ERR(pdev), "could not build omap_device for %s\n", oh_name);
+
+       return PTR_RET(pdev);
+}
+omap_postcore_initcall(omap_gpmc_init);