]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - arch/arm/plat-omap/devices.c
ARM: OMAP: Remove unnecessary omap_nop_release()
[linux-2.6-omap-h63xx.git] / arch / arm / plat-omap / devices.c
index 572f86d2ce5a30a2ac86725867bac7168d700567..5d5d6eb222dd739e9b3d8be070ed4030bfa897ff 100644 (file)
 #include <asm/arch/gpio.h>
 #include <asm/arch/menelaus.h>
 
-
-void omap_nop_release(struct device *dev)
-{
-        /* Nothing */
-}
-
-/*-------------------------------------------------------------------------*/
-
 #if    defined(CONFIG_I2C_OMAP) || defined(CONFIG_I2C_OMAP_MODULE)
 
 #define        OMAP1_I2C_BASE          0xfffb3800
@@ -59,9 +51,6 @@ static struct resource i2c_resources1[] = {
 static struct platform_device omap_i2c_device1 = {
         .name           = "i2c_omap",
         .id             = 1,
-        .dev = {
-                .release        = omap_nop_release,
-        },
        .num_resources  = ARRAY_SIZE(i2c_resources1),
        .resource       = i2c_resources1,
 };
@@ -187,7 +176,6 @@ static struct platform_device mmc_omap_device1 = {
        .name           = "mmci-omap",
        .id             = 1,
        .dev = {
-               .release        = omap_nop_release,
                .dma_mask       = &mmc1_dmamask,
                .platform_data  = &mmc1_conf,
        },
@@ -217,7 +205,6 @@ static struct platform_device mmc_omap_device2 = {
        .name           = "mmci-omap",
        .id             = 2,
        .dev = {
-               .release        = omap_nop_release,
                .dma_mask       = &mmc2_dmamask,
                .platform_data  = &mmc2_conf,
        },
@@ -297,6 +284,52 @@ static void __init omap_init_mmc(void)
 static inline void omap_init_mmc(void) {}
 #endif
 
+/*-------------------------------------------------------------------------*/
+
+/* Numbering for the SPI-capable controllers when used for SPI:
+ * spi         = 1
+ * uwire       = 2
+ * mmc1..2     = 3..4
+ * mcbsp1..3   = 5..7
+ */
+
+#if defined(CONFIG_SPI_OMAP_UWIRE) || defined(CONFIG_SPI_OMAP_UWIRE_MODULE)
+
+#define        OMAP_UWIRE_BASE         0xfffb3000
+
+static struct resource uwire_resources[] = {
+       {
+               .start          = OMAP_UWIRE_BASE,
+               .end            = OMAP_UWIRE_BASE + 0x20,
+               .flags          = IORESOURCE_MEM,
+       },
+};
+
+static struct platform_device omap_uwire_device = {
+       .name      = "omap_uwire",
+       .id          = -1,
+       .num_resources  = ARRAY_SIZE(uwire_resources),
+       .resource       = uwire_resources,
+};
+
+static void omap_init_uwire(void)
+{
+       /* FIXME define and use a boot tag; not all boards will be hooking
+        * up devices to the microwire controller, and multi-board configs
+        * mean that CONFIG_SPI_OMAP_UWIRE may be configured anyway...
+        */
+
+       /* board-specific code must configure chipselects (only a few
+        * are normally used) and SCLK/SDI/SDO (each has two choices).
+        */
+       (void) platform_device_register(&omap_uwire_device);
+}
+#else
+static inline void omap_init_uwire(void) {}
+#endif
+
+/*-------------------------------------------------------------------------*/
+
 #if    defined(CONFIG_OMAP_WATCHDOG) || defined(CONFIG_OMAP_WATCHDOG_MODULE)
 
 #ifdef CONFIG_ARCH_OMAP24XX
@@ -316,9 +349,6 @@ static struct resource wdt_resources[] = {
 static struct platform_device omap_wdt_device = {
        .name      = "omap_wdt",
        .id          = -1,
-       .dev = {
-               .release        = omap_nop_release,
-       },
        .num_resources  = ARRAY_SIZE(wdt_resources),
        .resource       = wdt_resources,
 };
@@ -352,9 +382,6 @@ static struct resource rng_resources[] = {
 static struct platform_device omap_rng_device = {
        .name      = "omap_rng",
        .id          = -1,
-       .dev = {
-               .release        = omap_nop_release,
-       },
        .num_resources  = ARRAY_SIZE(rng_resources),
        .resource       = rng_resources,
 };
@@ -367,40 +394,6 @@ static void omap_init_rng(void)
 static inline void omap_init_rng(void) {}
 #endif
 
-#if defined(CONFIG_FB_OMAP) || defined(CONFIG_FB_OMAP_MODULE)
-
-static struct omap_lcd_config omap_fb_conf;
-
-static u64 omap_fb_dma_mask = ~(u32)0;
-
-static struct platform_device omap_fb_device = {
-       .name           = "omapfb",
-       .id             = -1,
-       .dev = {
-               .release                = omap_nop_release,
-               .dma_mask               = &omap_fb_dma_mask,
-               .coherent_dma_mask      = ~(u32)0,
-               .platform_data          = &omap_fb_conf,
-       },
-       .num_resources = 0,
-};
-
-static inline void omap_init_fb(void)
-{
-       const struct omap_lcd_config *conf;
-
-       conf = omap_get_config(OMAP_TAG_LCD, struct omap_lcd_config);
-       if (conf != NULL)
-               omap_fb_conf = *conf;
-       platform_device_register(&omap_fb_device);
-}
-
-#else
-
-static inline void omap_init_fb(void) {}
-
-#endif
-
 /*
  * This gets called after board-specific INIT_MACHINE, and initializes most
  * on-chip peripherals accessible on this board (except for few like USB):
@@ -426,10 +419,10 @@ static int __init omap_init_devices(void)
        /* please keep these calls, and their implementations above,
         * in alphabetical order so they're easier to sort through.
         */
-       omap_init_fb();
        omap_init_i2c();
        omap_init_kp();
        omap_init_mmc();
+       omap_init_uwire();
        omap_init_wdt();
        omap_init_rng();