mach-ux500: Add SDI support for snowball board
authorMathieu J. Poirier <mathieu.poirier@linaro.org>
Fri, 25 Mar 2011 15:28:58 +0000 (09:28 -0600)
committerLinus Walleij <linus.walleij@linaro.org>
Thu, 23 Jun 2011 10:04:56 +0000 (12:04 +0200)
With SDI support for the Snowball we can boot from the
SD card.

Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Robert Marklund <robert.marklund@stericsson.com>
arch/arm/mach-ux500/board-mop500-sdi.c
arch/arm/mach-ux500/board-mop500.c
arch/arm/mach-ux500/board-mop500.h

index 5fbd6bc..d0cb9e5 100644 (file)
@@ -216,15 +216,24 @@ void __init mop500_sdi_init(void)
        /* PoP:ed eMMC on top of DB8500 v1.0 has problems with high speed */
        if (!cpu_is_u8500v10())
                mop500_sdi2_data.capabilities |= MMC_CAP_MMC_HIGHSPEED;
-       db8500_add_sdi2(&mop500_sdi2_data, periphid);
+       /* sdi2 on snowball is in ATL_B mode for FSMC (LAN) */
+       if (!machine_is_snowball())
+               db8500_add_sdi2(&mop500_sdi2_data, periphid);
 
        /* On-board eMMC */
        db8500_add_sdi4(&mop500_sdi4_data, periphid);
 
-       if (machine_is_hrefv60()) {
-               mop500_sdi0_data.gpio_cd = HREFV60_SDMMC_CD_GPIO;
-               sdi0_en = HREFV60_SDMMC_EN_GPIO;
-               sdi0_vsel = HREFV60_SDMMC_1V8_3V_GPIO;
+       if (machine_is_hrefv60() || machine_is_snowball()) {
+               if (machine_is_hrefv60()) {
+                       mop500_sdi0_data.gpio_cd = HREFV60_SDMMC_CD_GPIO;
+                       sdi0_en = HREFV60_SDMMC_EN_GPIO;
+                       sdi0_vsel = HREFV60_SDMMC_1V8_3V_GPIO;
+               } else if (machine_is_snowball()) {
+                       mop500_sdi0_data.gpio_cd = SNOWBALL_SDMMC_CD_GPIO;
+                       mop500_sdi0_data.cd_invert = true;
+                       sdi0_en = SNOWBALL_SDMMC_EN_GPIO;
+                       sdi0_vsel = SNOWBALL_SDMMC_1V8_3V_GPIO;
+               }
                sdi0_configure();
        }
 
index e3bbb55..4eead1a 100644 (file)
@@ -573,8 +573,7 @@ static void __init mop500_init_machine(void)
                                        ARRAY_SIZE(mop500_platform_devs));
 
        mop500_i2c_init();
-       if (!machine_is_snowball())
-               mop500_sdi_init();
+       mop500_sdi_init();
        mop500_spi_init();
        mop500_uart_init();
 
index 03a31cc..ee77a89 100644 (file)
@@ -7,6 +7,11 @@
 #ifndef __BOARD_MOP500_H
 #define __BOARD_MOP500_H
 
+/* snowball GPIO for MMC card */
+#define SNOWBALL_SDMMC_EN_GPIO 217
+#define SNOWBALL_SDMMC_1V8_3V_GPIO 228
+#define SNOWBALL_SDMMC_CD_GPIO 218
+
 /* HREFv60-specific GPIO assignments, this board has no GPIO expander */
 #define HREFV60_TOUCH_RST_GPIO         143
 #define HREFV60_PROX_SENSE_GPIO                217