ARM: shmobile: bockw: add MMCIF support
authorKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Wed, 12 Jun 2013 02:12:06 +0000 (19:12 -0700)
committerSimon Horman <horms+renesas@verge.net.au>
Thu, 13 Jun 2013 05:42:42 +0000 (14:42 +0900)
This patch enables CN26 MMCIF

Signed-off-by: Yusuke Goda <yusuke.goda.sx@renesas.com>
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
arch/arm/mach-shmobile/board-bockw.c

index 7d42f12bf790fb09958f8eb08fbd34696ff78ab8..7d48461478829822cc895ff6faab79139be1ac08 100644 (file)
  * SW41                SCIF    RCAN
  */
 
+/*
+ * MMC (CN26) pin
+ *
+ * SW6 (D2)    3 pin
+ * SW7 (D5)    ON
+ * SW8 (D3)    3 pin
+ * SW10        (D4)    1 pin
+ * SW12        (CLK)   1 pin
+ * SW13        (D6)    3 pin
+ * SW14        (CMD)   ON
+ * SW15        (D6)    1 pin
+ * SW16        (D0)    ON
+ * SW17        (D1)    ON
+ * SW18        (D7)    3 pin
+ * SW19        (MMC)   1 pin
+ */
+
 /* Dummy supplies, where voltage doesn't matter */
 static struct regulator_consumer_supply dummy_supplies[] = {
        REGULATOR_SUPPLY("vddvario", "smsc911x"),
@@ -114,6 +131,15 @@ static struct spi_board_info spi_board_info[] __initdata = {
        },
 };
 
+/* MMC */
+static struct sh_mmcif_plat_data sh_mmcif_plat = {
+       .sup_pclk       = 0,
+       .ocr            = MMC_VDD_165_195 | MMC_VDD_32_33 | MMC_VDD_33_34,
+       .caps           = MMC_CAP_4_BIT_DATA |
+                         MMC_CAP_8_BIT_DATA |
+                         MMC_CAP_NEEDS_POLL,
+};
+
 static const struct pinctrl_map bockw_pinctrl_map[] = {
        /* Ether */
        PIN_MAP_MUX_GROUP_DEFAULT("sh-eth", "pfc-r8a7778",
@@ -121,6 +147,11 @@ static const struct pinctrl_map bockw_pinctrl_map[] = {
        /* HSPI0 */
        PIN_MAP_MUX_GROUP_DEFAULT("sh-hspi.0", "pfc-r8a7778",
                                  "hspi0_a", "hspi0"),
+       /* MMC */
+       PIN_MAP_MUX_GROUP_DEFAULT("sh_mmcif", "pfc-r8a7778",
+                                 "mmc_data8", "mmc"),
+       PIN_MAP_MUX_GROUP_DEFAULT("sh_mmcif", "pfc-r8a7778",
+                                 "mmc_ctrl", "mmc"),
        /* SCIF0 */
        PIN_MAP_MUX_GROUP_DEFAULT("sh-sci.0", "pfc-r8a7778",
                                  "scif0_data_a", "scif0"),
@@ -145,6 +176,7 @@ static void __init bockw_init(void)
        r8a7778_add_ether_device(&ether_platform_data);
        r8a7778_add_i2c_device(0);
        r8a7778_add_hspi_device(0);
+       r8a7778_add_mmc_device(&sh_mmcif_plat);
 
        i2c_register_board_info(0, i2c0_devices,
                                ARRAY_SIZE(i2c0_devices));