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

Tom Warren twarren.nvidia at gmail.com
Mon Feb 11 18:59:41 CET 2013


Lucas,

On Mon, Feb 11, 2013 at 10:33 AM, Lucas Stach <dev at lynxeye.de> wrote:
> Am Montag, den 11.02.2013, 10:17 -0700 schrieb Tom Warren:
>> tegra_mmc_init() now parses the DT info for bus width, WP/CD GPIOs, etc.
>> Tested on Seaboard, fully functional.
>>
>> Tamonten boards (medcom-wide, plutux, and tec) use a different/new
>> dtsi file w/common settings.
>>
>> Signed-off-by: Tom Warren <twarren at nvidia.com>
>> ---
>> v2:
>> - all boards now call tegra_mmc_init once, w/no params
>> - count MMC controllers, not aliases
>> - AD boards (medcom/plutux/tec) use common tegra20-tamonten.dtsi
>>
>>  arch/arm/include/asm/arch-tegra/mmc.h             |    2 +-
>>  arch/arm/include/asm/arch-tegra/tegra_mmc.h       |   13 +-
>>  board/avionic-design/common/tamonten.c            |    4 +-
>>  board/compal/paz00/paz00.c                        |   11 +-
>>  board/compulab/trimslice/trimslice.c              |    9 +-
>>  board/nvidia/harmony/harmony.c                    |   11 +-
>>  board/nvidia/seaboard/seaboard.c                  |   11 +-
>>  board/nvidia/whistler/whistler.c                  |    7 +-
>>  board/toradex/colibri_t20_iris/colibri_t20_iris.c |    2 +-
>>  drivers/mmc/tegra_mmc.c                           |  259 +++++++++++++--------
>>  include/configs/medcom-wide.h                     |    2 +
>>  include/configs/plutux.h                          |    2 +
>>  include/configs/tec.h                             |    2 +
>>  include/fdtdec.h                                  |    1 +
>>  lib/fdtdec.c                                      |    1 +
>>  15 files changed, 197 insertions(+), 140 deletions(-)
>>
> [...]
>> diff --git a/board/nvidia/harmony/harmony.c b/board/nvidia/harmony/harmony.c
>> index 93430ed..fba06c2 100644
>> --- a/board/nvidia/harmony/harmony.c
>> +++ b/board/nvidia/harmony/harmony.c
>> @@ -58,18 +58,13 @@ 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 SD slot J26\n");
>> -     /* init dev 0, SD slot J26, with 8-bit bus */
>> -     tegra_mmc_init(0, 8, GPIO_PI6, GPIO_PH2);
>> -
>> -     debug("board_mmc_init: init SD slot J5\n");
>> -     /* init dev 2, SD slot J5, with 4-bit bus */
>> -     tegra_mmc_init(2, 4, GPIO_PT3, GPIO_PI5);
>> +     debug("%s: init MMC devs\n", __func__);
>> +     tegra_mmc_init();
>>
> tegra_mmc_init should not be called from every individual board file,
> but from the common nvidia tegra board file. Only the pinmux should stay
> in the individual board code, same thing as was done to all the other
> functions like NAND and USB.

True. I was originally just adapting the current config-file driven
MMC to DT step-by-step, but you're right - it should be called just
once for all boards in the common board file. I'll change it in V3.

Thanks,

Tom
>>       return 0;
>>  }
> [...]
>
> Regards,
> Lucas
>


More information about the U-Boot mailing list