mbox series

[v6,0/3] J7200: Add support for GPIO and higher speed modes in MMCSD subsystems

Message ID 20210319034422.17630-1-a-govindraju@ti.com
Headers show
Series J7200: Add support for GPIO and higher speed modes in MMCSD subsystems | expand

Message

Aswath Govindraju March 19, 2021, 3:44 a.m. UTC
The following series of patches
- Add support for GPIO subsystem in main and wakeup domains.
- Add voltage regulator device tree nodes and their corresponding pinmux
  to support power cycle and voltage switch required for UHS-I modes
- sets respective tags in sdhci0 node to support higher speeds
- remove no-1-8-v tag from sdhci1 node to support UHS-I modes
- Update delay values for various speed modes supported.


test logs
- eMMC HS400 speed mode
https://pastebin.ubuntu.com/p/xqZt34mRWf/

- SD SDR104 speed mode
https://pastebin.ubuntu.com/p/qM2H85SQvX/

- GPIO logs
https://pastebin.ubuntu.com/p/7WXdRxxdWz/


Changes since v5:
- Corrected the link in patch 3 as it broken.
- Added the version number for the references used in patch 3.
- picked up reviewed-by from gyrgorii for patches 1 and 2.

Changes since v4:
- Added main_i2c0 pinmux required for doing power cycles to MMCSD1
  subsystem
- Updated delay values for various speed modes supported
- Corrected the ti,ngpio property to indicate highest gpio lines that
  can be accessed.
- Reran the performace tests

Changes since v3:
- Removed patch (1 in v3).
- Rebased and included patches that add support for GPIO from series [1].
- Re-ran the performace tests for SD and eMMC.

Changes since v2:
- Added main_gpio0 DT node
- Added voltage regulator device tree nodes required to support UHS-I modes

Changes since v1:
- squashed the two patches into one
- added performance logs for the above mentioned speed modes

Aswath Govindraju (1):
  arm64: dts: ti: k3-j7200: Add support for higher speed modes and
    update delay select values for MMCSD subsystems

Faiz Abbas (2):
  arm64: dts: ti: k3-j7200: Add gpio nodes
  arm64: dts: ti: k3-j7200-common-proc-board: Disable unused gpio
    modules

 .../dts/ti/k3-j7200-common-proc-board.dts     | 58 +++++++++++++
 arch/arm64/boot/dts/ti/k3-j7200-main.dtsi     | 86 ++++++++++++++++++-
 .../boot/dts/ti/k3-j7200-mcu-wakeup.dtsi      | 34 ++++++++
 3 files changed, 176 insertions(+), 2 deletions(-)

Comments

Kishon Vijay Abraham I March 19, 2021, 4:27 a.m. UTC | #1
Hi Aswath,

On 19/03/21 9:14 am, 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)

Thanks for fixing the link.

Reviewed-by: Kishon Vijay Abraham I <kishon@ti.com>
> 
> Signed-off-by: Aswath Govindraju <a-govindraju@ti.com>
> ---
>  .../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..6f90c3b1cf45 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,0x02800000";
>  	};
> +
> +	vdd_mmc1: fixedregulator-sd {
> +		compatible = "regulator-fixed";
> +		regulator-name = "vdd_mmc1";
> +		regulator-min-microvolt = <3300000>;
> +		regulator-max-microvolt = <3300000>;
> +		regulator-boot-on;
> +		enable-active-high;
> +		gpios = <&exp2 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 = <&vdd_sd_dv_pins_default>;
> +		regulator-min-microvolt = <1800000>;
> +		regulator-max-microvolt = <3300000>;
> +		regulator-boot-on;
> +		gpios = <&main_gpio0 55 GPIO_ACTIVE_HIGH>;
> +		states = <1800000 0x0
> +			  3300000 0x1>;
> +	};
>  };
>  
>  &wkup_pmx0 {
> @@ -45,6 +68,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 +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 */
> +		>;
> +	};
>  };
>  
>  &wkup_uart0 {
> @@ -157,6 +193,10 @@
>  };
>  
>  &main_i2c0 {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&main_i2c0_pins_default>;
> +	clock-frequency = <400000>;
> +
>  	exp1: gpio@20 {
>  		compatible = "ti,tca6416";
>  		reg = <0x20>;
> @@ -206,6 +246,8 @@
>  	/* SD card */
>  	pinctrl-0 = <&main_mmc1_pins_default>;
>  	pinctrl-names = "default";
> +	vmmc-supply = <&vdd_mmc1>;
> +	vqmmc-supply = <&vdd_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 = <0x0>;
> +		ti,clkbuf-sel = <0x7>;
> +		ti,trm-icp = <0x8>;
>  		dma-coherent;
>  	};
>  
>
Nishanth Menon March 22, 2021, 12:23 p.m. UTC | #2
On 09:14-20210319, 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 <a-govindraju@ti.com>

> ---

[...]

> +

> +	vdd_sd_dv_pins_default: vdd_sd_dv_pins_default {


	Nope. Use:
		vdd_sd_dv_pins_default: vdd-sd-dv-pins-default

-- 
Regards,
Nishanth Menon
Key (0xDDB5849D1736249D) / Fingerprint: F8A2 8693 54EB 8232 17A3  1A34 DDB5 849D 1736 249D
Aswath Govindraju March 22, 2021, 1:13 p.m. UTC | #3
Hi Nishanth,

On 22/03/21 5:53 pm, Nishanth Menon wrote:
> On 09:14-20210319, 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 <a-govindraju@ti.com>

>> ---

> [...]

> 

>> +

>> +	vdd_sd_dv_pins_default: vdd_sd_dv_pins_default {

> 

> 	Nope. Use:

> 		vdd_sd_dv_pins_default: vdd-sd-dv-pins-default

> 


Corrected this in the respin(v7).

Thanks,
Aswath