[U-Boot] [PATCH] Tegra30: Cardhu: Add pad config tables/code based on pinmux code

Tom Warren twarren.nvidia at gmail.com
Thu Mar 7 22:13:08 CET 2013


Stephen,

On Thu, Mar 7, 2013 at 1:27 PM, Stephen Warren <swarren at wwwdotorg.org> wrote:
> On 03/06/2013 04:51 PM, Tom Warren wrote:
>> Pad config registers exist in APB_MISC_GP space, and control slew
>> rate, drive strengh, schmidt, high-speed, and low-power modes for
>> all of the pingroups in Tegra30. This builds off of the pinmux
>> way of constructing init tables to configure select pads (SDIOCFG,
>> for instance) during pinmux_init().
>>
>> Currently, only SDIO1CFG is changed as per the TRM to work with
>> the SD-card slot on Cardhu.
>>
>> Thanks to StephenW for the suggestion/original idea.
>
> As a general rule, I'd expect the pinmux driver implementation to be a
> separate patch from the changes to the Cardhu board file to use the new
> features, but I guess you're replacing an existing
> pinmux_sdio_pad_cfg(), so that isn't possible. So it's fine.
OK. Thanks.

>
>> diff --git a/board/nvidia/cardhu/pinmux-config-cardhu.h b/board/nvidia/cardhu/pinmux-config-cardhu.h
>
>> +static struct padctrl_config cardhu_padctrl[] = {
>> +     /* (_padgrp, _slwf, _slwr, _drvup, _drvdn, _lpmd, _schmt, _hsm) */
>> +     DEFAULT_PADCFG(SDIO1, SDIOCFG_DRVUP_SLWF, SDIOCFG_DRVDN_SLWR, \
>> +             SDIOCFG_DRVUP, SDIOCFG_DRVDN, NONE, DISABLE, DISABLE),
>> +};
>> +#endif       /* _PINMUX_CONFIG_CARDHU_H_ */
>
> I didn't quite get why there wasn't an SDIO3 entry in that table, since
> the original pinmux_sdio_pad_cfg() set up both SDIO1 and SDIO3 pin
> groups, and SDIO3 appears to be used on Cardhu for SDIO-based WiFi.

The previous code did check for SDMMC1 or SDMMC3, but on Cardhu,
SDMMC1 is called out in the dts file, and SDMMC3 isn't (you had said
earlier when reviewing some Ventana changes that leaving out a SDIO
WIFI node was ok as U-Boot wouldn't be using it, so I didn't add it to
Cardhu). So the old code would only have called the pad init code for
SDMMC1 and SDMMC4, and SDMMC4 would have been rejected since it's not
SDIO.  So I only added SDIO1 to the table.  I can add an entry for
SDIO3 (even if it's not in the dts file for Cardhu), since it does no
harm to set those pad cfg registers as per the TRM (I assume the TRM
is calling out cal numbers that will work with both an SD-card slot
and a WIFI device?).

Let me know if you'd like to see either the WIFI node added to the
Cardhu DT file, or the SDIO3 entry added to the cardhu_padctrl table,
or both.

Tom
>
> Aside from that,
> Reviewed-by: Stephen Warren <swarren at nvidia.com>


More information about the U-Boot mailing list