aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorKuninori Morimoto <kuninori.morimoto.gx@renesas.com>2013-06-11 22:12:06 -0400
committerSimon Horman <horms+renesas@verge.net.au>2013-06-13 01:42:42 -0400
commit1e0edb76e925927d396be60e22f9c5ab815f2ab0 (patch)
tree7a24399a56eecca0ee9e55748d8c99c473895c19 /arch
parentc06a164ce2f0f8791ac566a44eaf1d227a5b6b5b (diff)
ARM: shmobile: bockw: add MMCIF support
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>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/mach-shmobile/board-bockw.c32
1 files changed, 32 insertions, 0 deletions
diff --git a/arch/arm/mach-shmobile/board-bockw.c b/arch/arm/mach-shmobile/board-bockw.c
index 7d42f12bf790..7d4846147882 100644
--- a/arch/arm/mach-shmobile/board-bockw.c
+++ b/arch/arm/mach-shmobile/board-bockw.c
@@ -41,6 +41,23 @@
41 * SW41 SCIF RCAN 41 * SW41 SCIF RCAN
42 */ 42 */
43 43
44/*
45 * MMC (CN26) pin
46 *
47 * SW6 (D2) 3 pin
48 * SW7 (D5) ON
49 * SW8 (D3) 3 pin
50 * SW10 (D4) 1 pin
51 * SW12 (CLK) 1 pin
52 * SW13 (D6) 3 pin
53 * SW14 (CMD) ON
54 * SW15 (D6) 1 pin
55 * SW16 (D0) ON
56 * SW17 (D1) ON
57 * SW18 (D7) 3 pin
58 * SW19 (MMC) 1 pin
59 */
60
44/* Dummy supplies, where voltage doesn't matter */ 61/* Dummy supplies, where voltage doesn't matter */
45static struct regulator_consumer_supply dummy_supplies[] = { 62static struct regulator_consumer_supply dummy_supplies[] = {
46 REGULATOR_SUPPLY("vddvario", "smsc911x"), 63 REGULATOR_SUPPLY("vddvario", "smsc911x"),
@@ -114,6 +131,15 @@ static struct spi_board_info spi_board_info[] __initdata = {
114 }, 131 },
115}; 132};
116 133
134/* MMC */
135static struct sh_mmcif_plat_data sh_mmcif_plat = {
136 .sup_pclk = 0,
137 .ocr = MMC_VDD_165_195 | MMC_VDD_32_33 | MMC_VDD_33_34,
138 .caps = MMC_CAP_4_BIT_DATA |
139 MMC_CAP_8_BIT_DATA |
140 MMC_CAP_NEEDS_POLL,
141};
142
117static const struct pinctrl_map bockw_pinctrl_map[] = { 143static const struct pinctrl_map bockw_pinctrl_map[] = {
118 /* Ether */ 144 /* Ether */
119 PIN_MAP_MUX_GROUP_DEFAULT("sh-eth", "pfc-r8a7778", 145 PIN_MAP_MUX_GROUP_DEFAULT("sh-eth", "pfc-r8a7778",
@@ -121,6 +147,11 @@ static const struct pinctrl_map bockw_pinctrl_map[] = {
121 /* HSPI0 */ 147 /* HSPI0 */
122 PIN_MAP_MUX_GROUP_DEFAULT("sh-hspi.0", "pfc-r8a7778", 148 PIN_MAP_MUX_GROUP_DEFAULT("sh-hspi.0", "pfc-r8a7778",
123 "hspi0_a", "hspi0"), 149 "hspi0_a", "hspi0"),
150 /* MMC */
151 PIN_MAP_MUX_GROUP_DEFAULT("sh_mmcif", "pfc-r8a7778",
152 "mmc_data8", "mmc"),
153 PIN_MAP_MUX_GROUP_DEFAULT("sh_mmcif", "pfc-r8a7778",
154 "mmc_ctrl", "mmc"),
124 /* SCIF0 */ 155 /* SCIF0 */
125 PIN_MAP_MUX_GROUP_DEFAULT("sh-sci.0", "pfc-r8a7778", 156 PIN_MAP_MUX_GROUP_DEFAULT("sh-sci.0", "pfc-r8a7778",
126 "scif0_data_a", "scif0"), 157 "scif0_data_a", "scif0"),
@@ -145,6 +176,7 @@ static void __init bockw_init(void)
145 r8a7778_add_ether_device(&ether_platform_data); 176 r8a7778_add_ether_device(&ether_platform_data);
146 r8a7778_add_i2c_device(0); 177 r8a7778_add_i2c_device(0);
147 r8a7778_add_hspi_device(0); 178 r8a7778_add_hspi_device(0);
179 r8a7778_add_mmc_device(&sh_mmcif_plat);
148 180
149 i2c_register_board_info(0, i2c0_devices, 181 i2c_register_board_info(0, i2c0_devices,
150 ARRAY_SIZE(i2c0_devices)); 182 ARRAY_SIZE(i2c0_devices));