Re: [PATCH v8 3/3] arm64: dts: ti: k3-j7200: Add support for higher speed modes and update delay select values for MMCSD subsystems

From: Aswath Govindraju
Date: Fri Mar 26 2021 - 02:02:04 EST


Hi Kishon,

On 25/03/21 9:44 pm, Kishon Vijay Abraham I wrote:
> Hi Aswath,
>
> On 24/03/21 12:07 pm, Aswath Govindraju wrote:
>> The following speed modes are now supported in J7200 SoC,
>> - HS200 and HS400 modes at 1.8 V card voltage, in MMCSD0 subsystem [1].
>> - UHS-I speed modes in MMCSD1 subsystem [1].
>>
>> Add support for UHS-I modes by adding voltage regulator device tree nodes
>> and corresponding pinmux details, to power cycle and voltage switch cards.
>> Set respective tags in sdhci0 and remove no-1-8-v tag from sdhci1
>> device tree nodes.
>>
>> Also update the delay values for various speed modes supported, based on
>> the revised january 2021 J7200 datasheet[2].
>>
>> [1] - section 12.3.6.1.1 MMCSD Features, in
>> https://www.ti.com/lit/ug/spruiu1a/spruiu1a.pdf,
>> (SPRUIU1A – JULY 2020 – REVISED JANUARY 2021)
>>
>> [2] - https://www.ti.com/lit/ds/symlink/dra821u.pdf,
>> (SPRSP57B – APRIL 2020 – REVISED JANUARY 2021)
> minor comments below.. once you fix them, please add
>
> Reviewed-by: Kishon Vijay Abraham I <kishon@xxxxxx>
>>

Thank you for your review :).

>> Signed-off-by: Aswath Govindraju <a-govindraju@xxxxxx>
>> ---
>> .../dts/ti/k3-j7200-common-proc-board.dts | 78 +++++++++++++++++++
>> arch/arm64/boot/dts/ti/k3-j7200-main.dtsi | 14 +++-
>> 2 files changed, 90 insertions(+), 2 deletions(-)
>>
>> diff --git a/arch/arm64/boot/dts/ti/k3-j7200-common-proc-board.dts b/arch/arm64/boot/dts/ti/k3-j7200-common-proc-board.dts
>> index b493f939b09a..a069787e1783 100644
>> --- a/arch/arm64/boot/dts/ti/k3-j7200-common-proc-board.dts
>> +++ b/arch/arm64/boot/dts/ti/k3-j7200-common-proc-board.dts
>> @@ -16,6 +16,65 @@
>> stdout-path = "serial2:115200n8";
>> bootargs = "console=ttyS2,115200n8 earlycon=ns16550a,mmio32,0x02800000";
>> };
>> +
>> + evm_12v0: fixedregulator-evm12v0 {
>> + /* main supply */
>> + compatible = "regulator-fixed";
>> + regulator-name = "evm_12v0";
>> + regulator-min-microvolt = <12000000>;
>> + regulator-max-microvolt = <12000000>;
>> + regulator-always-on;
>> + regulator-boot-on;
>> + };
>> +
>> + vsys_3v3: fixedregulator-vsys3v3 {
>> + /* Output of LMS140 */
>
> %s/LMS140/LM5140

Will make this change in respin.

>> + compatible = "regulator-fixed";
>> + regulator-name = "vsys_3v3";
>> + regulator-min-microvolt = <3300000>;
>> + regulator-max-microvolt = <3300000>;
>> + vin-supply = <&evm_12v0>;
>> + regulator-always-on;
>> + regulator-boot-on;
>> + };
>> +
>> + vsys_5v0: fixedregulator-vsys5v0 {
>> + /* Output of LM5140 */
>> + compatible = "regulator-fixed";
>> + regulator-name = "vsys_5v0";
>> + regulator-min-microvolt = <5000000>;
>> + regulator-max-microvolt = <5000000>;
>> + vin-supply = <&evm_12v0>;
>> + regulator-always-on;
>> + regulator-boot-on;
>> + };
>> +
>> + vdd_mmc1: fixedregulator-sd {
>> + /* Output of TPS22918 */
>> + compatible = "regulator-fixed";
>> + regulator-name = "vdd_mmc1";
>> + regulator-min-microvolt = <3300000>;
>> + regulator-max-microvolt = <3300000>;
>> + regulator-boot-on;
>> + enable-active-high;
>> + vin-supply = <&vsys_3v3>;
>> + gpio = <&exp2 2 GPIO_ACTIVE_HIGH>;
>> + };
>> +
>> + vdd_sd_dv: gpio-regulator-vdd-sd-dv {
>> + /* Output of TLV71033 */
>
> Would have preferred to keep this similar to j721e.
> gpio-regulator-TLV71033 is used in j721e

Will make this change in respin

>> + compatible = "regulator-gpio";
>> + regulator-name = "vdd_sd_dv";
>
> same comment here..

Will make this change in respin

>> + pinctrl-names = "default";
>> + pinctrl-0 = <&vdd_sd_dv_pins_default>;
>> + regulator-min-microvolt = <1800000>;
>> + regulator-max-microvolt = <3300000>;
>> + regulator-boot-on;
>> + vin-supply = <&vsys_5v0>;
>> + gpios = <&main_gpio0 55 GPIO_ACTIVE_HIGH>;
>> + states = <1800000 0x0>,
>> + <3300000 0x1>;
>> + };
>> };
>>
>> &wkup_pmx0 {
>> @@ -45,6 +104,13 @@
>> };
>>
>> &main_pmx0 {
>> + main_i2c0_pins_default: main-i2c0-pins-default {
>> + pinctrl-single,pins = <
>> + J721E_IOPAD(0xd4, PIN_INPUT_PULLUP, 0) /* (V3) I2C0_SCL */
>> + J721E_IOPAD(0xd8, PIN_INPUT_PULLUP, 0) /* (W2) I2C0_SDA */
>> + >;
>> + };
>> +
>> main_i2c1_pins_default: main-i2c1-pins-default {
>> pinctrl-single,pins = <
>> J721E_IOPAD(0xdc, PIN_INPUT_PULLUP, 3) /* (U3) ECAP0_IN_APWM_OUT.I2C1_SCL */
>> @@ -70,6 +136,12 @@
>> J721E_IOPAD(0x120, PIN_OUTPUT, 0) /* (T4) USB0_DRVVBUS */
>> >;
>> };
>> +
>> + vdd_sd_dv_pins_default: vdd-sd-dv-pins-default {
>> + pinctrl-single,pins = <
>> + J721E_IOPAD(0xd0, PIN_INPUT, 7) /* (T5) SPI0_D1.GPIO0_55 */
>
> This should ideally be PIN_OUTPUT. Can you check the latest sysconfig?
>

The sysconfig tool by default is giving the mode as
PIN_INPUT(bidirectional) but yes ideally this should be PIN_OUTPUT. Will
make this change in respin.

Thanks,
Aswath

> Thanks
> Kishon
>