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

2021-03-23 Thread Aswath Govindraju
Hi Kishon,

On 23/03/21 11:59 am, Kishon Vijay Abraham I wrote:
> Hi Aswath,
> 
> On 23/03/21 10:54 am, Aswath Govindraju wrote:
>> Hi Nishanth,
>>
>> On 22/03/21 9:05 pm, Nishanth Menon wrote:
>>> On 18:42-20210322, 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)

 Signed-off-by: Aswath Govindraju 
 ---
  .../dts/ti/k3-j7200-common-proc-board.dts | 42 +++
  arch/arm64/boot/dts/ti/k3-j7200-main.dtsi | 14 ++-
  2 files changed, 54 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..de8c06bdc825 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,29 @@
stdout-path = "serial2:115200n8";
bootargs = "console=ttyS2,115200n8 
 earlycon=ns16550a,mmio32,0x0280";
};
 +
 +  vdd_mmc1: fixedregulator-sd {
 +  compatible = "regulator-fixed";
 +  regulator-name = "vdd_mmc1";
 +  regulator-min-microvolt = <330>;
 +  regulator-max-microvolt = <330>;
 +  regulator-boot-on;
 +  enable-active-high;
 +  gpios = < 2 GPIO_ACTIVE_HIGH>;
>>>
>>> is that gpio ?
>>
>> Yes, that is correct. I'll correct it in the respin
>>
>>> I'd encourage to use vin-supply as well.
>>
>> Will add this in respin.
>>
>>>
 +  };
 +
 +  vdd_sd_dv: gpio-regulator-vdd-sd-dv {
>>> What does this drive? TLV71033 ?
>>
>> Yes, this node models the TLV71033 voltage regulator that switches the
>> MMC IO signal voltage level between 3.3V and 1.8V.
> 
> Nope. Unlike J721e SOM which uses TLV71033 for switching voltage, J7200
> SOM directly uses GPIO input to PMIC to control the output voltage. So
> this should model the gpio input to PMIC.
> 

This was the case with older SoMs and on newer ones load switches are
being used[1].

[1] - https://www.ti.com/lit/zip/sprr424, PROC105E6(001)_SCH.pdf, page 24

Thanks,
Aswath


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

2021-03-23 Thread Kishon Vijay Abraham I
Hi Aswath,

On 23/03/21 10:54 am, Aswath Govindraju wrote:
> Hi Nishanth,
> 
> On 22/03/21 9:05 pm, Nishanth Menon wrote:
>> On 18:42-20210322, 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)
>>>
>>> Signed-off-by: Aswath Govindraju 
>>> ---
>>>  .../dts/ti/k3-j7200-common-proc-board.dts | 42 +++
>>>  arch/arm64/boot/dts/ti/k3-j7200-main.dtsi | 14 ++-
>>>  2 files changed, 54 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..de8c06bdc825 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,29 @@
>>> stdout-path = "serial2:115200n8";
>>> bootargs = "console=ttyS2,115200n8 
>>> earlycon=ns16550a,mmio32,0x0280";
>>> };
>>> +
>>> +   vdd_mmc1: fixedregulator-sd {
>>> +   compatible = "regulator-fixed";
>>> +   regulator-name = "vdd_mmc1";
>>> +   regulator-min-microvolt = <330>;
>>> +   regulator-max-microvolt = <330>;
>>> +   regulator-boot-on;
>>> +   enable-active-high;
>>> +   gpios = < 2 GPIO_ACTIVE_HIGH>;
>>
>> is that gpio ?
> 
> Yes, that is correct. I'll correct it in the respin
> 
>> I'd encourage to use vin-supply as well.
> 
> Will add this in respin.
> 
>>
>>> +   };
>>> +
>>> +   vdd_sd_dv: gpio-regulator-vdd-sd-dv {
>>  What does this drive? TLV71033 ?
> 
> Yes, this node models the TLV71033 voltage regulator that switches the
> MMC IO signal voltage level between 3.3V and 1.8V.

Nope. Unlike J721e SOM which uses TLV71033 for switching voltage, J7200
SOM directly uses GPIO input to PMIC to control the output voltage. So
this should model the gpio input to PMIC.

Thanks
Kishon


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

2021-03-22 Thread Aswath Govindraju
Hi Nishanth,

On 22/03/21 9:05 pm, Nishanth Menon wrote:
> On 18:42-20210322, 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)
>>
>> Signed-off-by: Aswath Govindraju 
>> ---
>>  .../dts/ti/k3-j7200-common-proc-board.dts | 42 +++
>>  arch/arm64/boot/dts/ti/k3-j7200-main.dtsi | 14 ++-
>>  2 files changed, 54 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..de8c06bdc825 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,29 @@
>>  stdout-path = "serial2:115200n8";
>>  bootargs = "console=ttyS2,115200n8 
>> earlycon=ns16550a,mmio32,0x0280";
>>  };
>> +
>> +vdd_mmc1: fixedregulator-sd {
>> +compatible = "regulator-fixed";
>> +regulator-name = "vdd_mmc1";
>> +regulator-min-microvolt = <330>;
>> +regulator-max-microvolt = <330>;
>> +regulator-boot-on;
>> +enable-active-high;
>> +gpios = < 2 GPIO_ACTIVE_HIGH>;
> 
> is that gpio ?

Yes, that is correct. I'll correct it in the respin

> I'd encourage to use vin-supply as well.

Will add this in respin.

> 
>> +};
>> +
>> +vdd_sd_dv: gpio-regulator-vdd-sd-dv {
>   What does this drive? TLV71033 ?

Yes, this node models the TLV71033 voltage regulator that switches the
MMC IO signal voltage level between 3.3V and 1.8V.


>> +compatible = "regulator-gpio";
>> +regulator-name = "vdd_sd_dv";
>> +pinctrl-names = "default";
>> +pinctrl-0 = <_sd_dv_pins_default>;
>> +regulator-min-microvolt = <180>;
>> +regulator-max-microvolt = <330>;
>> +regulator-boot-on;
> 
> normally, I'd encourage to use vin-supply as well.

Will add this in the respin

> 
>> +gpios = <_gpio0 55 GPIO_ACTIVE_HIGH>;
>> +states = <180 0x0
>> +  330 0x1>;
> states = <180 0x0>,
> <330 0x1>;
> 

Will make this change in the respin.

> Can you look at j721e as reference?
> 

Will make changes accordingly.

>> +};
>>  };
>>  
> 
> Kishon,
>   can you look closer at this series?
> 

I'll wait for kishon's feedback and then post respin of this series.


Thank you for the review.

Regards,
Aswath


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

2021-03-22 Thread Nishanth Menon
On 18:42-20210322, 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)
> 
> Signed-off-by: Aswath Govindraju 
> ---
>  .../dts/ti/k3-j7200-common-proc-board.dts | 42 +++
>  arch/arm64/boot/dts/ti/k3-j7200-main.dtsi | 14 ++-
>  2 files changed, 54 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..de8c06bdc825 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,29 @@
>   stdout-path = "serial2:115200n8";
>   bootargs = "console=ttyS2,115200n8 
> earlycon=ns16550a,mmio32,0x0280";
>   };
> +
> + vdd_mmc1: fixedregulator-sd {
> + compatible = "regulator-fixed";
> + regulator-name = "vdd_mmc1";
> + regulator-min-microvolt = <330>;
> + regulator-max-microvolt = <330>;
> + regulator-boot-on;
> + enable-active-high;
> + gpios = < 2 GPIO_ACTIVE_HIGH>;

is that gpio ?
I'd encourage to use vin-supply as well.

> + };
> +
> + vdd_sd_dv: gpio-regulator-vdd-sd-dv {
What does this drive? TLV71033 ?
> + compatible = "regulator-gpio";
> + regulator-name = "vdd_sd_dv";
> + pinctrl-names = "default";
> + pinctrl-0 = <_sd_dv_pins_default>;
> + regulator-min-microvolt = <180>;
> + regulator-max-microvolt = <330>;
> + regulator-boot-on;

normally, I'd encourage to use vin-supply as well.

> + gpios = <_gpio0 55 GPIO_ACTIVE_HIGH>;
> + states = <180 0x0
> +   330 0x1>;
states = <180 0x0>,
<330 0x1>;

Can you look at j721e as reference?

> + };
>  };
>  

Kishon,
can you look closer at this series?
-- 
Regards,
Nishanth Menon
Key (0xDDB5849D1736249D) / Fingerprint: F8A2 8693 54EB 8232 17A3  1A34 DDB5 
849D 1736 249D


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

2021-03-22 Thread Aswath Govindraju
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)

Signed-off-by: Aswath Govindraju 
---
 .../dts/ti/k3-j7200-common-proc-board.dts | 42 +++
 arch/arm64/boot/dts/ti/k3-j7200-main.dtsi | 14 ++-
 2 files changed, 54 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..de8c06bdc825 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,29 @@
stdout-path = "serial2:115200n8";
bootargs = "console=ttyS2,115200n8 
earlycon=ns16550a,mmio32,0x0280";
};
+
+   vdd_mmc1: fixedregulator-sd {
+   compatible = "regulator-fixed";
+   regulator-name = "vdd_mmc1";
+   regulator-min-microvolt = <330>;
+   regulator-max-microvolt = <330>;
+   regulator-boot-on;
+   enable-active-high;
+   gpios = < 2 GPIO_ACTIVE_HIGH>;
+   };
+
+   vdd_sd_dv: gpio-regulator-vdd-sd-dv {
+   compatible = "regulator-gpio";
+   regulator-name = "vdd_sd_dv";
+   pinctrl-names = "default";
+   pinctrl-0 = <_sd_dv_pins_default>;
+   regulator-min-microvolt = <180>;
+   regulator-max-microvolt = <330>;
+   regulator-boot-on;
+   gpios = <_gpio0 55 GPIO_ACTIVE_HIGH>;
+   states = <180 0x0
+ 330 0x1>;
+   };
 };
 
 _pmx0 {
@@ -45,6 +68,13 @@
 };
 
 _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 +100,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 */
+   >;
+   };
 };
 
 _uart0 {
@@ -157,6 +193,10 @@
 };
 
 _i2c0 {
+   pinctrl-names = "default";
+   pinctrl-0 = <_i2c0_pins_default>;
+   clock-frequency = <40>;
+
exp1: gpio@20 {
compatible = "ti,tca6416";
reg = <0x20>;
@@ -206,6 +246,8 @@
/* SD card */
pinctrl-0 = <_mmc1_pins_default>;
pinctrl-names = "default";
+   vmmc-supply = <_mmc1>;
+   vqmmc-supply = <_sd_dv>;
ti,driver-strength-ohm = <50>;
disable-wp;
 };
diff --git a/arch/arm64/boot/dts/ti/k3-j7200-main.dtsi 
b/arch/arm64/boot/dts/ti/k3-j7200-main.dtsi
index e60650a62b14..f86c493a44f1 100644
--- a/arch/arm64/boot/dts/ti/k3-j7200-main.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-j7200-main.dtsi
@@ -512,11 +512,16 @@
ti,otap-del-sel-mmc-hs = <0x0>;
ti,otap-del-sel-ddr52 = <0x6>;
ti,otap-del-sel-hs200 = <0x8>;
-   ti,otap-del-sel-hs400 = <0x0>;
+   ti,otap-del-sel-hs400 = <0x5>;
+   ti,itap-del-sel-legacy = <0x10>;
+   ti,itap-del-sel-mmc-hs = <0xa>;
ti,strobe-sel = <0x77>;
+   ti,clkbuf-sel = <0x7>;
ti,trm-icp = <0x8>;
bus-width = <8>;
mmc-ddr-1_8v;
+   mmc-hs200-1_8v;
+   mmc-hs400-1_8v;
dma-coherent;
};
 
@@ -534,7 +539,12 @@
ti,otap-del-sel-sdr50 = <0xc>;
ti,otap-del-sel-sdr104 = <0x5>;
ti,otap-del-sel-ddr50 = <0xc>;
-   no-1-8-v;
+   ti,itap-del-sel-legacy = <0x0>;
+   ti,itap-del-sel-sd-hs = <0x0>;
+   ti,itap-del-sel-sdr12 = <0x0>;
+   ti,itap-del-sel-sdr25