[U-Boot] [PATCH 2/4] EXYNOS5: PINMUX: Add pinmux for SDMMC4
Rajeshwari Shinde
rajeshwari.s at samsung.com
Fri May 25 13:53:16 CEST 2012
Add pinmux support for SDMMC4 on EXYNOS5.
Signed-off-by: Terry Lambert <tlambert at chromium.org>
Signed-off-by: Rajeshwari Shinde <rajeshwari.s at samsung.com>
---
This patch is based on:
"EXYNOS5: PINMUX: Added default pinumx settings"
arch/arm/cpu/armv7/exynos/pinmux.c | 24 +++++++++++++++++-------
1 files changed, 17 insertions(+), 7 deletions(-)
diff --git a/arch/arm/cpu/armv7/exynos/pinmux.c b/arch/arm/cpu/armv7/exynos/pinmux.c
index 103bcbb..9319fd6 100644
--- a/arch/arm/cpu/armv7/exynos/pinmux.c
+++ b/arch/arm/cpu/armv7/exynos/pinmux.c
@@ -32,7 +32,7 @@ int exynos5_pinmux_config(int peripheral, int flags)
struct exynos5_gpio_part1 *gpio1 =
(struct exynos5_gpio_part1 *) samsung_get_base_gpio_part1();
struct s5p_gpio_bank *bank, *bank_ext;
- int i, start, count;
+ int i, start, count, pin, pin_ext, drv;
switch (peripheral) {
case PERIPH_ID_UART0:
@@ -66,6 +66,10 @@ int exynos5_pinmux_config(int peripheral, int flags)
case PERIPH_ID_SDMMC1:
case PERIPH_ID_SDMMC2:
case PERIPH_ID_SDMMC3:
+ case PERIPH_ID_SDMMC4:
+ pin = GPIO_FUNC(0x2);
+ pin_ext = GPIO_FUNC(0x3);
+ drv = GPIO_DRV_4X;
switch (peripheral) {
case PERIPH_ID_SDMMC0:
bank = &gpio1->c0; bank_ext = &gpio1->c1;
@@ -79,6 +83,12 @@ int exynos5_pinmux_config(int peripheral, int flags)
case PERIPH_ID_SDMMC3:
bank = &gpio1->c3; bank_ext = NULL;
break;
+ case PERIPH_ID_SDMMC4:
+ bank = &gpio1->c0; bank_ext = &gpio1->c1;
+ pin = GPIO_FUNC(0x3);
+ pin_ext = GPIO_FUNC(0x4);
+ drv = GPIO_DRV_2X;
+ break;
}
if ((flags & PINMUX_FLAG_8BIT_MODE) && !bank_ext) {
debug("SDMMC device %d does not support 8bit mode",
@@ -87,20 +97,20 @@ int exynos5_pinmux_config(int peripheral, int flags)
}
if (flags & PINMUX_FLAG_8BIT_MODE) {
for (i = 3; i <= 6; i++) {
- s5p_gpio_cfg_pin(bank_ext, i, GPIO_FUNC(0x3));
+ s5p_gpio_cfg_pin(bank_ext, i, pin_ext);
s5p_gpio_set_pull(bank_ext, i, GPIO_PULL_UP);
- s5p_gpio_set_drv(bank_ext, i, GPIO_DRV_4X);
+ s5p_gpio_set_drv(bank_ext, i, drv);
}
}
for (i = 0; i < 2; i++) {
- s5p_gpio_cfg_pin(bank, i, GPIO_FUNC(0x2));
+ s5p_gpio_cfg_pin(bank, i, pin);
s5p_gpio_set_pull(bank, i, GPIO_PULL_NONE);
- s5p_gpio_set_drv(bank, i, GPIO_DRV_4X);
+ s5p_gpio_set_drv(bank, i, drv);
}
for (i = 3; i <= 6; i++) {
- s5p_gpio_cfg_pin(bank, i, GPIO_FUNC(0x2));
+ s5p_gpio_cfg_pin(bank, i, pin);
s5p_gpio_set_pull(bank, i, GPIO_PULL_UP);
- s5p_gpio_set_drv(bank, i, GPIO_DRV_4X);
+ s5p_gpio_set_drv(bank, i, drv);
}
break;
case PERIPH_ID_SROMC:
--
1.7.4.4
More information about the U-Boot
mailing list