arm:exynos4:pinmux: Modify the gpio function for mmc
This patch add pinmux settings for Exynos4 for mmc0 and mmc2 Signed-off-by: Piotr Wilczek <p.wilczek@samsung.com> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> CC: Albert ARIBAUD <albert.u.boot@aribaud.net> Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
This commit is contained in:
parent
35777e2226
commit
7a84e1fa22
@ -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)
|
static int exynos4_pinmux_config(int peripheral, int flags)
|
||||||
{
|
{
|
||||||
switch (peripheral) {
|
switch (peripheral) {
|
||||||
@ -383,6 +420,14 @@ static int exynos4_pinmux_config(int peripheral, int flags)
|
|||||||
case PERIPH_ID_I2C7:
|
case PERIPH_ID_I2C7:
|
||||||
exynos4_i2c_config(peripheral, flags);
|
exynos4_i2c_config(peripheral, flags);
|
||||||
break;
|
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);
|
||||||
|
return -1;
|
||||||
default:
|
default:
|
||||||
debug("%s: invalid peripheral %d", __func__, peripheral);
|
debug("%s: invalid peripheral %d", __func__, peripheral);
|
||||||
return -1;
|
return -1;
|
||||||
|
Loading…
Reference in New Issue
Block a user