diff options
author | Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> | 2013-06-11 22:12:06 -0400 |
---|---|---|
committer | Simon Horman <horms+renesas@verge.net.au> | 2013-06-13 01:42:42 -0400 |
commit | 1e0edb76e925927d396be60e22f9c5ab815f2ab0 (patch) | |
tree | 7a24399a56eecca0ee9e55748d8c99c473895c19 /arch | |
parent | c06a164ce2f0f8791ac566a44eaf1d227a5b6b5b (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.c | 32 |
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 */ |
45 | static struct regulator_consumer_supply dummy_supplies[] = { | 62 | static 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 */ | ||
135 | static 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 | |||
117 | static const struct pinctrl_map bockw_pinctrl_map[] = { | 143 | static 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(ðer_platform_data); | 176 | r8a7778_add_ether_device(ðer_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)); |