[U-Boot] [PATCH 2/2] Tegra: MMC: Add DT support to MMC driver forall T20 boards

Tom Warren twarren.nvidia at gmail.com
Tue Feb 5 16:31:03 CET 2013


Marc,

On Tue, Feb 5, 2013 at 2:28 AM, Marc Dietrich <marvin24 at gmx.de> wrote:
> Hi Tom,
>
> Am Montag, 4. Februar 2013, 16:48:55 schrieb Tom Warren:
>> tegra_mmc_init() now uses DT info for bus width, WP/CD GPIOs, etc.
>> Tested on Seaboard, fully functional.
>>
>> Signed-off-by: Tom Warren <twarren at nvidia.com>
>> ---
>>  arch/arm/include/asm/arch-tegra/mmc.h             |    2 +-
>>  arch/arm/include/asm/arch-tegra/tegra_mmc.h       |   12 +-
>>  board/avionic-design/common/tamonten.c            |    4 +-
>>  board/compal/paz00/paz00.c                        |   14 +-
>>  board/compulab/trimslice/trimslice.c              |   10 +-
>>  board/nvidia/harmony/harmony.c                    |   12 +-
>>  board/nvidia/seaboard/seaboard.c                  |   14 +-
>>  board/nvidia/whistler/whistler.c                  |    4 +-
>>  board/toradex/colibri_t20_iris/colibri_t20_iris.c |    2 +-
>>  drivers/mmc/tegra_mmc.c                           |  186
>> ++++++++++++++------- include/fdtdec.h                                  |
>>  1 +
>>  lib/fdtdec.c                                      |    1 +
>>  12 files changed, 165 insertions(+), 97 deletions(-)
>>
>> [...]
>>
>> diff --git a/board/compal/paz00/paz00.c b/board/compal/paz00/paz00.c
>> index 1447f47..5cee91a 100644
>> --- a/board/compal/paz00/paz00.c
>> +++ b/board/compal/paz00/paz00.c
>> @@ -55,18 +55,18 @@ static void pin_mux_mmc(void)
>>  /* this is a weak define that we are overriding */
>>  int board_mmc_init(bd_t *bd)
>>  {
>> -     debug("board_mmc_init called\n");
>> +     debug("%s called\n", __func__);
>>
>>       /* Enable muxes, etc. for SDMMC controllers */
>>       pin_mux_mmc();
>>
>> -     debug("board_mmc_init: init eMMC\n");
>> -     /* init dev 0, eMMC chip, with 8-bit bus */
>> -     tegra_mmc_init(0, 8, -1, -1);
>> +     debug("%s: init eMMC\n", __func__);
>> +     /* init dev 0, eMMC chip */
>> +     tegra_mmc_init(0);
>
> This looks wrong because the sd is on sdmmc0
>
>>
>> -     debug("board_mmc_init: init SD slot\n");
>> -     /* init dev 3, SD slot, with 4-bit bus */
>> -     tegra_mmc_init(3, 4, GPIO_PV1, GPIO_PV5);
>> +     debug("%s: init SD slot\n", __func__);
>> +     /* init dev 3, SD slot */
>> +     tegra_mmc_init(3);
>
> and the emmc on sdmmc3. The DTS is correct.
>
> Not your fault as it seems to be wrong in the original code already.
> I guess it didn't made large difference but may in the future. I wonder how to
> test this though.
>
> Marc
>
>
OK, so just the comments are wrong in paz00.c - I can fix that if I
have to do a V2 patchset, or when I apply the patches to u-boot-tegra.

As to testing, just stop at the command prompt and select each device
(mmc dev 0, etc.) and run mmcinfo. You should be able to tell from the
data displayed whether you are on an SD-card or eMMC chip. You can
also eject the SD-card and you should get a warning about card
presence due to the CD GPIO.

Tom


More information about the U-Boot mailing list