Hi Piotr,

>>> -   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.
You're Right. it returned error, as you mentioned.
But if eMMC init is failed, could you ensure that sd init is also failed?
I didn't think so.
Although eMMC card init is failed, i think that sd-card init should be succeed.
1) eMMC init failed -> return error. : this is your code.
2) eMMC init failed -> if SD card detect, then try to init SD-card.
: this is my opinion.

If my thinking is wrong, plz let me know.

Best Regards,
Jaehoon Chung
> 
> 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
> 

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to