Fix common misspellings
[linux-2.6.git] / arch / arm / mach-omap2 / devices.c
index 31632ac..7b85585 100644 (file)
 
 #include "mux.h"
 #include "control.h"
+#include "devices.h"
+
+#define L3_MODULES_MAX_LEN 12
+#define L3_MODULES 3
+
+static int __init omap3_l3_init(void)
+{
+       int l;
+       struct omap_hwmod *oh;
+       struct omap_device *od;
+       char oh_name[L3_MODULES_MAX_LEN];
+
+       /*
+        * To avoid code running on other OMAPs in
+        * multi-omap builds
+        */
+       if (!(cpu_is_omap34xx()))
+               return -ENODEV;
+
+       l = snprintf(oh_name, L3_MODULES_MAX_LEN, "l3_main");
+
+       oh = omap_hwmod_lookup(oh_name);
+
+       if (!oh)
+               pr_err("could not look up %s\n", oh_name);
+
+       od = omap_device_build("omap_l3_smx", 0, oh, NULL, 0,
+                                                          NULL, 0, 0);
+
+       WARN(IS_ERR(od), "could not build omap_device for %s\n", oh_name);
+
+       return IS_ERR(od) ? PTR_ERR(od) : 0;
+}
+postcore_initcall(omap3_l3_init);
+
+static int __init omap4_l3_init(void)
+{
+       int l, i;
+       struct omap_hwmod *oh[3];
+       struct omap_device *od;
+       char oh_name[L3_MODULES_MAX_LEN];
+
+       /*
+        * To avoid code running on other OMAPs in
+        * multi-omap builds
+        */
+       if (!(cpu_is_omap44xx()))
+               return -ENODEV;
+
+       for (i = 0; i < L3_MODULES; i++) {
+               l = 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);
+       }
+
+       od = omap_device_build_ss("omap_l3_noc", 0, oh, 3, NULL,
+                                                    0, NULL, 0, 0);
+
+       WARN(IS_ERR(od), "could not build omap_device for %s\n", oh_name);
+
+       return PTR_ERR(od);
+}
+postcore_initcall(omap4_l3_init);
 
 #if defined(CONFIG_VIDEO_OMAP2) || defined(CONFIG_VIDEO_OMAP2_MODULE)
 
-static struct resource cam_resources[] = {
+static struct resource omap2cam_resources[] = {
        {
                .start          = OMAP24XX_CAMERA_BASE,
                .end            = OMAP24XX_CAMERA_BASE + 0xfff,
@@ -50,19 +115,13 @@ static struct resource cam_resources[] = {
        }
 };
 
-static struct platform_device omap_cam_device = {
+static struct platform_device omap2cam_device = {
        .name           = "omap24xxcam",
        .id             = -1,
-       .num_resources  = ARRAY_SIZE(cam_resources),
-       .resource       = cam_resources,
+       .num_resources  = ARRAY_SIZE(omap2cam_resources),
+       .resource       = omap2cam_resources,
 };
-
-static inline void omap_init_camera(void)
-{
-       platform_device_register(&omap_cam_device);
-}
-
-#elif defined(CONFIG_VIDEO_OMAP3) || defined(CONFIG_VIDEO_OMAP3_MODULE)
+#endif
 
 static struct resource omap3isp_resources[] = {
        {
@@ -71,11 +130,6 @@ static struct resource omap3isp_resources[] = {
                .flags          = IORESOURCE_MEM,
        },
        {
-               .start          = OMAP3430_ISP_CBUFF_BASE,
-               .end            = OMAP3430_ISP_CBUFF_END,
-               .flags          = IORESOURCE_MEM,
-       },
-       {
                .start          = OMAP3430_ISP_CCP2_BASE,
                .end            = OMAP3430_ISP_CCP2_END,
                .flags          = IORESOURCE_MEM,
@@ -111,13 +165,33 @@ static struct resource omap3isp_resources[] = {
                .flags          = IORESOURCE_MEM,
        },
        {
-               .start          = OMAP3430_ISP_CSI2A_BASE,
-               .end            = OMAP3430_ISP_CSI2A_END,
+               .start          = OMAP3430_ISP_CSI2A_REGS1_BASE,
+               .end            = OMAP3430_ISP_CSI2A_REGS1_END,
                .flags          = IORESOURCE_MEM,
        },
        {
-               .start          = OMAP3430_ISP_CSI2PHY_BASE,
-               .end            = OMAP3430_ISP_CSI2PHY_END,
+               .start          = OMAP3430_ISP_CSIPHY2_BASE,
+               .end            = OMAP3430_ISP_CSIPHY2_END,
+               .flags          = IORESOURCE_MEM,
+       },
+       {
+               .start          = OMAP3630_ISP_CSI2A_REGS2_BASE,
+               .end            = OMAP3630_ISP_CSI2A_REGS2_END,
+               .flags          = IORESOURCE_MEM,
+       },
+       {
+               .start          = OMAP3630_ISP_CSI2C_REGS1_BASE,
+               .end            = OMAP3630_ISP_CSI2C_REGS1_END,
+               .flags          = IORESOURCE_MEM,
+       },
+       {
+               .start          = OMAP3630_ISP_CSIPHY1_BASE,
+               .end            = OMAP3630_ISP_CSIPHY1_END,
+               .flags          = IORESOURCE_MEM,
+       },
+       {
+               .start          = OMAP3630_ISP_CSI2C_REGS2_BASE,
+               .end            = OMAP3630_ISP_CSI2C_REGS2_END,
                .flags          = IORESOURCE_MEM,
        },
        {
@@ -133,15 +207,19 @@ static struct platform_device omap3isp_device = {
        .resource       = omap3isp_resources,
 };
 
-static inline void omap_init_camera(void)
+int omap3_init_camera(struct isp_platform_data *pdata)
 {
-       platform_device_register(&omap3isp_device);
+       omap3isp_device.dev.platform_data = pdata;
+       return platform_device_register(&omap3isp_device);
 }
-#else
+
 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
+}
 
 struct omap_device_pm_latency omap_keyboard_latency[] = {
        {
@@ -175,7 +253,7 @@ int __init omap4_keyboard_init(struct omap4_keypad_platform_data
                        ARRAY_SIZE(omap_keyboard_latency), 0);
 
        if (IS_ERR(od)) {
-               WARN(1, "Cant build omap_device for %s:%s.\n",
+               WARN(1, "Can't build omap_device for %s:%s.\n",
                                                name, oh->name);
                return PTR_ERR(od);
        }
@@ -184,95 +262,29 @@ int __init omap4_keyboard_init(struct omap4_keypad_platform_data
 }
 
 #if defined(CONFIG_OMAP_MBOX_FWK) || defined(CONFIG_OMAP_MBOX_FWK_MODULE)
-
-#define MBOX_REG_SIZE   0x120
-
-#ifdef CONFIG_ARCH_OMAP2
-static struct resource omap2_mbox_resources[] = {
-       {
-               .start          = OMAP24XX_MAILBOX_BASE,
-               .end            = OMAP24XX_MAILBOX_BASE + MBOX_REG_SIZE - 1,
-               .flags          = IORESOURCE_MEM,
-       },
-       {
-               .start          = INT_24XX_MAIL_U0_MPU,
-               .flags          = IORESOURCE_IRQ,
-               .name           = "dsp",
-       },
-       {
-               .start          = INT_24XX_MAIL_U3_MPU,
-               .flags          = IORESOURCE_IRQ,
-               .name           = "iva",
-       },
-};
-static int omap2_mbox_resources_sz = ARRAY_SIZE(omap2_mbox_resources);
-#else
-#define omap2_mbox_resources           NULL
-#define omap2_mbox_resources_sz                0
-#endif
-
-#ifdef CONFIG_ARCH_OMAP3
-static struct resource omap3_mbox_resources[] = {
-       {
-               .start          = OMAP34XX_MAILBOX_BASE,
-               .end            = OMAP34XX_MAILBOX_BASE + MBOX_REG_SIZE - 1,
-               .flags          = IORESOURCE_MEM,
-       },
-       {
-               .start          = INT_24XX_MAIL_U0_MPU,
-               .flags          = IORESOURCE_IRQ,
-               .name           = "dsp",
-       },
-};
-static int omap3_mbox_resources_sz = ARRAY_SIZE(omap3_mbox_resources);
-#else
-#define omap3_mbox_resources           NULL
-#define omap3_mbox_resources_sz                0
-#endif
-
-#ifdef CONFIG_ARCH_OMAP4
-
-#define OMAP4_MBOX_REG_SIZE    0x130
-static struct resource omap4_mbox_resources[] = {
-       {
-               .start          = OMAP44XX_MAILBOX_BASE,
-               .end            = OMAP44XX_MAILBOX_BASE +
-                                       OMAP4_MBOX_REG_SIZE - 1,
-               .flags          = IORESOURCE_MEM,
-       },
-       {
-               .start          = OMAP44XX_IRQ_MAIL_U0,
-               .flags          = IORESOURCE_IRQ,
-               .name           = "mbox",
+static struct omap_device_pm_latency mbox_latencies[] = {
+       [0] = {
+               .activate_func = omap_device_enable_hwmods,
+               .deactivate_func = omap_device_idle_hwmods,
+               .flags = OMAP_DEVICE_LATENCY_AUTO_ADJUST,
        },
 };
-static int omap4_mbox_resources_sz = ARRAY_SIZE(omap4_mbox_resources);
-#else
-#define omap4_mbox_resources           NULL
-#define omap4_mbox_resources_sz                0
-#endif
-
-static struct platform_device mbox_device = {
-       .name           = "omap-mailbox",
-       .id             = -1,
-};
 
 static inline void omap_init_mbox(void)
 {
-       if (cpu_is_omap24xx()) {
-               mbox_device.resource = omap2_mbox_resources;
-               mbox_device.num_resources = omap2_mbox_resources_sz;
-       } else if (cpu_is_omap34xx()) {
-               mbox_device.resource = omap3_mbox_resources;
-               mbox_device.num_resources = omap3_mbox_resources_sz;
-       } else if (cpu_is_omap44xx()) {
-               mbox_device.resource = omap4_mbox_resources;
-               mbox_device.num_resources = omap4_mbox_resources_sz;
-       } else {
-               pr_err("%s: platform not supported\n", __func__);
+       struct omap_hwmod *oh;
+       struct omap_device *od;
+
+       oh = omap_hwmod_lookup("mailbox");
+       if (!oh) {
+               pr_err("%s: unable to find hwmod\n", __func__);
                return;
        }
-       platform_device_register(&mbox_device);
+
+       od = omap_device_build("omap-mailbox", -1, oh, NULL, 0,
+                               mbox_latencies, ARRAY_SIZE(mbox_latencies), 0);
+       WARN(IS_ERR(od), "%s: could not build device, err %ld\n",
+                                               __func__, PTR_ERR(od));
 }
 #else
 static inline void omap_init_mbox(void) { }
@@ -361,7 +373,7 @@ static int omap_mcspi_init(struct omap_hwmod *oh, void *unused)
        od = omap_device_build(name, spi_num, oh, pdata,
                                sizeof(*pdata), omap_mcspi_latency,
                                ARRAY_SIZE(omap_mcspi_latency), 0);
-       WARN(IS_ERR(od), "Cant build omap_device for %s:%s\n",
+       WARN(IS_ERR(od), "Can't build omap_device for %s:%s\n",
                                name, oh->name);
        kfree(pdata);
        return 0;
@@ -713,7 +725,7 @@ static int __init omap_init_wdt(void)
        od = omap_device_build(dev_name, id, oh, NULL, 0,
                                omap_wdt_latency,
                                ARRAY_SIZE(omap_wdt_latency), 0);
-       WARN(IS_ERR(od), "Cant build omap_device for %s:%s.\n",
+       WARN(IS_ERR(od), "Can't build omap_device for %s:%s.\n",
                                dev_name, oh->name);
        return 0;
 }