
Hi Piotr,
On 01/03/2013 04:31 PM, Piotr Wilczek wrote:
This patch add pinmux settings for Exynos4 for mmc0 and mmc2
Didn't consider about the mmc4? I know that exynos4 can be used mmc4 for eMMC.
Best Regards, Jaehoon Chung
Signed-off-by: Piotr Wilczek p.wilczek@samsung.com Signed-off-by: Kyungmin Park kyungmin.park@samsung.com CC: Minkyu Kang mk7.kang@samsung.com CC: Albert ARIBAUD albert.u.boot@aribaud.net
arch/arm/cpu/armv7/exynos/pinmux.c | 45 ++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+)
diff --git a/arch/arm/cpu/armv7/exynos/pinmux.c b/arch/arm/cpu/armv7/exynos/pinmux.c index 20a4b84..ee58dac 100644 --- a/arch/arm/cpu/armv7/exynos/pinmux.c +++ b/arch/arm/cpu/armv7/exynos/pinmux.c @@ -370,6 +370,43 @@ static void exynos4_i2c_config(int peripheral, int flags) } }
+static int exynos4_mmc_config(int peripheral, int flags) +{
- struct exynos4_gpio_part2 *gpio2 =
(struct exynos4_gpio_part2 *)samsung_get_base_gpio_part2();
- struct s5p_gpio_bank *bank, *bank_ext;
- int i;
- switch (peripheral) {
- case PERIPH_ID_SDMMC0:
bank = &gpio2->k0;
bank_ext = &gpio2->k1;
break;
- case PERIPH_ID_SDMMC2:
bank = &gpio2->k2;
bank_ext = &gpio2->k3;
break;
- default:
return -1;
- }
- for (i = 0; i < 7; i++) {
if (i == 2)
continue;
s5p_gpio_cfg_pin(bank, i, GPIO_FUNC(0x2));
s5p_gpio_set_pull(bank, i, GPIO_PULL_NONE);
s5p_gpio_set_drv(bank, i, GPIO_DRV_4X);
- }
- if (flags & PINMUX_FLAG_8BIT_MODE) {
for (i = 3; i < 7; i++) {
s5p_gpio_cfg_pin(bank_ext, i, GPIO_FUNC(0x3));
s5p_gpio_set_pull(bank_ext, i, GPIO_PULL_NONE);
s5p_gpio_set_drv(bank_ext, i, GPIO_DRV_4X);
}
- }
- return 0;
+}
static int exynos4_pinmux_config(int peripheral, int flags) { switch (peripheral) { @@ -383,6 +420,14 @@ static int exynos4_pinmux_config(int peripheral, int flags) case PERIPH_ID_I2C7: exynos4_i2c_config(peripheral, flags); break;
- case PERIPH_ID_SDMMC0:
- case PERIPH_ID_SDMMC2:
return exynos4_mmc_config(peripheral, flags);
- case PERIPH_ID_SDMMC1:
- case PERIPH_ID_SDMMC3:
- case PERIPH_ID_SDMMC4:
printf("SDMMC device %d not implemented\n", peripheral);
default: debug("%s: invalid peripheral %d", __func__, peripheral); return -1;return -1;