Dear Jaehoon Chung, > -----Original Message----- > From: Jaehoon Chung [mailto:jh80.ch...@samsung.com] > Sent: Friday, August 24, 2012 3:18 AM > To: Piotr Wilczek > Cc: u-boot@lists.denx.de; Kyungmin Park > Subject: Re: [U-Boot] [PATCH 4/6 v2] arm:exynos4:trats: Use pinmux for > mmc configuration > > On 08/23/2012 09:01 PM, Piotr Wilczek wrote: > > This patch use the pinmux for mmc configuration for Trats > > > > Signed-off-by: Piotr Wilczek <p.wilc...@samsung.com> > > Signed-off-by: Kyungmin Park <kyungmin.p...@samsung.com> > > CC: Minkyu Kang <mk7.k...@samsung.com> > > --- > > Chaneges for v2: > > - mmc iniatialisation using pinmux > > > > board/samsung/trats/trats.c | 62 +++++++-------------------------- > --------- > > 1 files changed, 11 insertions(+), 51 deletions(-) > > > > diff --git a/board/samsung/trats/trats.c > b/board/samsung/trats/trats.c > > index f5df56c..0fab2e0 100644 > > --- a/board/samsung/trats/trats.c > > +++ b/board/samsung/trats/trats.c > > @@ -29,6 +29,7 @@ > > #include <asm/arch/cpu.h> > > #include <asm/arch/gpio.h> > > #include <asm/arch/mmc.h> > > +#include <asm/arch/pinmux.h> > > #include <asm/arch/clock.h> > > #include <asm/arch/clk.h> > > #include <asm/arch/mipi_dsim.h> > > @@ -140,46 +141,16 @@ int board_mmc_init(bd_t *bis) { > > struct exynos4_gpio_part2 *gpio = > > (struct exynos4_gpio_part2 *)samsung_get_base_gpio_part2(); > > - int i, err; > > + int err; > > > > /* eMMC_EN: SD_0_CDn: GPK0[2] Output High */ > > s5p_gpio_direction_output(&gpio->k0, 2, 1); > > s5p_gpio_set_pull(&gpio->k0, 2, GPIO_PULL_NONE); > > > > - /* > > - * eMMC GPIO: > > - * SDR 8-bit@48MHz at MMC0 > > - * GPK0[0] SD_0_CLK(2) > > - * GPK0[1] SD_0_CMD(2) > > - * GPK0[2] SD_0_CDn -> Not used > > - * GPK0[3:6] SD_0_DATA[0:3](2) > > - * GPK1[3:6] SD_0_DATA[0:3](3) > > - * > > - * DDR 4-bit@26MHz at MMC4 > > - * GPK0[0] SD_4_CLK(3) > > - * GPK0[1] SD_4_CMD(3) > > - * GPK0[2] SD_4_CDn -> Not used > > - * GPK0[3:6] SD_4_DATA[0:3](3) > > - * GPK1[3:6] SD_4_DATA[4:7](4) > > - */ > > - for (i = 0; i < 7; i++) { > > - if (i == 2) > > - continue; > > - /* GPK0[0:6] special function 2 */ > > - s5p_gpio_cfg_pin(&gpio->k0, i, 0x2); > > - /* GPK0[0:6] pull disable */ > > - s5p_gpio_set_pull(&gpio->k0, i, GPIO_PULL_NONE); > > - /* GPK0[0:6] drv 4x */ > > - s5p_gpio_set_drv(&gpio->k0, i, GPIO_DRV_4X); > > - } > > - > > - for (i = 3; i < 7; i++) { > > - /* GPK1[3:6] special function 3 */ > > - s5p_gpio_cfg_pin(&gpio->k1, i, 0x3); > > - /* GPK1[3:6] pull disable */ > > - s5p_gpio_set_pull(&gpio->k1, i, GPIO_PULL_NONE); > > - /* GPK1[3:6] drv 4x */ > > - s5p_gpio_set_drv(&gpio->k1, i, GPIO_DRV_4X); > > + err = exynos_pinmux_config(PERIPH_ID_SDMMC0, > PINMUX_FLAG_8BIT_MODE); > > + if (err) { > > + debug("SDMMC0 not configured\n"); > > + return err; > > } > if err, return? then how can sd-card init? > SD/eMMC card didn't have the dependency. exynos_pinmux_config() returns err only if given peripheral and/or mode (or cpu) are not supported. Then gpio pins are not configured and MMC cannot be initiated. Err is returned to indicate this situation and it is essential to init MMC0 correctly. The dependency didn't exist in trats nor universal but exists when pinmux is used ex: smdk5250 board.
Best regards Piotr Wilczek > > Best Regards, > Jaehoon Chung > > > > /* > > @@ -198,23 +169,12 @@ int board_mmc_init(bd_t *bis) > > * GPX3[4] T-flash detect pin > > */ > > if (!s5p_gpio_get_value(&gpio->x3, 4)) { > > - /* > > - * SD card GPIO: > > - * GPK2[0] SD_2_CLK(2) > > - * GPK2[1] SD_2_CMD(2) > > - * GPK2[2] SD_2_CDn -> Not used > > - * GPK2[3:6] SD_2_DATA[0:3](2) > > - */ > > - for (i = 0; i < 7; i++) { > > - if (i == 2) > > - continue; > > - /* GPK2[0:6] special function 2 */ > > - s5p_gpio_cfg_pin(&gpio->k2, i, 0x2); > > - /* GPK2[0:6] pull disable */ > > - s5p_gpio_set_pull(&gpio->k2, i, GPIO_PULL_NONE); > > - /* GPK2[0:6] drv 4x */ > > - s5p_gpio_set_drv(&gpio->k2, i, GPIO_DRV_4X); > > + err = exynos_pinmux_config(PERIPH_ID_SDMMC2, > PINMUX_FLAG_NONE); > > + if (err) { > > + debug("SDMMC2 not configured\n"); > > + return err; > > } > > + > > err = s5p_mmc_init(2, 4); > > } > > > > _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot