[U-Boot] [PATCH] arm:exynos4:pinmux: Modify the gpio function for mmc

This patch add pinmux settings for Exynos4 for mmc0 and mmc2
The pinmux setting previously added in commit a3eab2ac41 has been deleted in merge 96764df1b4
Piotr Wilczek (1): arm:exynos4:pinmux: Modify the gpio function for mmc
arch/arm/cpu/armv7/exynos/pinmux.c | 45 ++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+)

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: 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); + return -1; default: debug("%s: invalid peripheral %d", __func__, peripheral); return -1;

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;

Hi Jaehoon,
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.
This patch shall be regarded as fixing regression introduced after merge.
We would like to stick (at least for now) to eMMC cotrollers tied to mmc0 and mmc2.
When mmc4 (dw_mmc) will be enabled, then surely we will modify the pinmux code.

Hi Lukasz,
I understood your opinion..it's ok. After applied this patch, i will update the pinmux for MMC4.
Best Regards, Jaehoon Chung
On 01/04/2013 04:59 PM, Lukasz Majewski wrote:
Hi Jaehoon,
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.
This patch shall be regarded as fixing regression introduced after merge.
We would like to stick (at least for now) to eMMC cotrollers tied to mmc0 and mmc2.
When mmc4 (dw_mmc) will be enabled, then surely we will modify the pinmux code.

On 03/01/13 16:31, Piotr Wilczek wrote:
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: 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(+)
applied to u-boot-samsung.
Thanks, Minkyu Kang.

Hi Minkyu,
On Tue, 08 Jan 2013 10:50:58 +0900, Minkyu Kang mk7.kang@samsung.com wrote:
On 03/01/13 16:31, Piotr Wilczek wrote:
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: 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(+)
applied to u-boot-samsung.
So I guess you'll be sending out a pull request for the Samung tree soon, right?
Thanks, Minkyu Kang.
Amicalement,

On 08/01/13 23:03, Albert ARIBAUD wrote:
Hi Minkyu,
On Tue, 08 Jan 2013 10:50:58 +0900, Minkyu Kang mk7.kang@samsung.com wrote:
On 03/01/13 16:31, Piotr Wilczek wrote:
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: 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(+)
applied to u-boot-samsung.
So I guess you'll be sending out a pull request for the Samung tree soon, right?
Yes, will send soon.
Thanks. Minkyu Kang.
participants (5)
-
Albert ARIBAUD
-
Jaehoon Chung
-
Lukasz Majewski
-
Minkyu Kang
-
Piotr Wilczek