Message ID | 1357198260-7412-2-git-send-email-p.wilczek@samsung.com |
---|---|
State | Accepted |
Delegated to: | Minkyu Kang |
Headers | show |
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); > + return -1; > default: > debug("%s: invalid peripheral %d", __func__, peripheral); > 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.
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;