diff mbox series

[v3] arm64: dts: ti: k3-am65: Add support for UHS-I modes in MMCSD1 subsystem

Message ID 20210511164849.20016-1-a-govindraju@ti.com
State New
Headers show
Series [v3] arm64: dts: ti: k3-am65: Add support for UHS-I modes in MMCSD1 subsystem | expand

Commit Message

Aswath Govindraju May 11, 2021, 4:48 p.m. UTC
UHS-I speed modes are supported in AM65 S.R. 2.0 SoC[1].

Add support by removing the no-1-8-v tag and including the voltage
regulator device tree nodes for power cycling.

However, the 4 bit interface of AM65 SR 1.0 cannot be supported at 3.3 V or
1.8 V because of erratas i2025 and i2026 [2]. As the SD card is the primary
boot mode for development usecases, continue to enable SD card and disable
UHS-I modes in it to minimize any ageing issues happening because of
erratas.

k3-am6528-iot2050-basic and k3-am6548-iot2050-advanced boards use S.R. 1.0
version of AM65 SoC. Therefore, add no-1-8-v in sdhci1 device tree node of
the common iot2050 device tree file.

[1] - https://www.ti.com/lit/ug/spruid7e/spruid7e.pdf, section 12.3.6.1.1
[2] - https://www.ti.com/lit/er/sprz452e/sprz452e.pdf

Signed-off-by: Aswath Govindraju <a-govindraju@ti.com>
---

changes since v2:
- moved the no-1-8-v tag to common iot2050 dtsi file.

changes since v1:
- added no-1-8-v tag in sdhci1 dt nodes of k3-am6528-iot2050-basic and
  k3-am6548-iot2050-advanced boards as they use S.R.1.0 version AM65 SoC.

 .../boot/dts/ti/k3-am65-iot2050-common.dtsi   |  1 +
 arch/arm64/boot/dts/ti/k3-am65-main.dtsi      |  1 -
 .../arm64/boot/dts/ti/k3-am654-base-board.dts | 33 +++++++++++++++++++
 3 files changed, 34 insertions(+), 1 deletion(-)

Comments

Jan Kiszka May 28, 2021, 6:34 p.m. UTC | #1
On 11.05.21 18:48, Aswath Govindraju wrote:
> UHS-I speed modes are supported in AM65 S.R. 2.0 SoC[1].

> 

> Add support by removing the no-1-8-v tag and including the voltage

> regulator device tree nodes for power cycling.

> 

> However, the 4 bit interface of AM65 SR 1.0 cannot be supported at 3.3 V or

> 1.8 V because of erratas i2025 and i2026 [2]. As the SD card is the primary

> boot mode for development usecases, continue to enable SD card and disable

> UHS-I modes in it to minimize any ageing issues happening because of

> erratas.

> 

> k3-am6528-iot2050-basic and k3-am6548-iot2050-advanced boards use S.R. 1.0

> version of AM65 SoC. Therefore, add no-1-8-v in sdhci1 device tree node of

> the common iot2050 device tree file.

> 

> [1] - https://www.ti.com/lit/ug/spruid7e/spruid7e.pdf, section 12.3.6.1.1

> [2] - https://www.ti.com/lit/er/sprz452e/sprz452e.pdf

> 

> Signed-off-by: Aswath Govindraju <a-govindraju@ti.com>

> ---

> 

> changes since v2:

> - moved the no-1-8-v tag to common iot2050 dtsi file.

> 

> changes since v1:

> - added no-1-8-v tag in sdhci1 dt nodes of k3-am6528-iot2050-basic and

>   k3-am6548-iot2050-advanced boards as they use S.R.1.0 version AM65 SoC.

> 

>  .../boot/dts/ti/k3-am65-iot2050-common.dtsi   |  1 +

>  arch/arm64/boot/dts/ti/k3-am65-main.dtsi      |  1 -

>  .../arm64/boot/dts/ti/k3-am654-base-board.dts | 33 +++++++++++++++++++

>  3 files changed, 34 insertions(+), 1 deletion(-)

> 

> diff --git a/arch/arm64/boot/dts/ti/k3-am65-iot2050-common.dtsi b/arch/arm64/boot/dts/ti/k3-am65-iot2050-common.dtsi

> index de763ca9251c..46cc348cd4be 100644

> --- a/arch/arm64/boot/dts/ti/k3-am65-iot2050-common.dtsi

> +++ b/arch/arm64/boot/dts/ti/k3-am65-iot2050-common.dtsi

> @@ -555,6 +555,7 @@

>  	pinctrl-0 = <&main_mmc1_pins_default>;

>  	ti,driver-strength-ohm = <50>;

>  	disable-wp;

> +	no-1-8-v;

>  };

>  


Acked-by: Jan Kiszka <jan.kiszka@siemens.com>


Jan

>  &usb0 {

> diff --git a/arch/arm64/boot/dts/ti/k3-am65-main.dtsi b/arch/arm64/boot/dts/ti/k3-am65-main.dtsi

> index cb340d1b401f..632f32fce4a1 100644

> --- a/arch/arm64/boot/dts/ti/k3-am65-main.dtsi

> +++ b/arch/arm64/boot/dts/ti/k3-am65-main.dtsi

> @@ -301,7 +301,6 @@

>  		ti,otap-del-sel = <0x2>;

>  		ti,trm-icp = <0x8>;

>  		dma-coherent;

> -		no-1-8-v;

>  	};

>  

>  	scm_conf: scm-conf@100000 {

> diff --git a/arch/arm64/boot/dts/ti/k3-am654-base-board.dts b/arch/arm64/boot/dts/ti/k3-am654-base-board.dts

> index 9e87fb313a54..51c594b4dddb 100644

> --- a/arch/arm64/boot/dts/ti/k3-am654-base-board.dts

> +++ b/arch/arm64/boot/dts/ti/k3-am654-base-board.dts

> @@ -91,6 +91,38 @@

>  		#clock-cells = <0>;

>  		clock-frequency = <24000000>;

>  	};

> +

> +	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;

> +	};

> +

> +	vcc3v3_io: fixedregulator-vcc3v3io {

> +		/* Output of TPS54334 */

> +		compatible = "regulator-fixed";

> +		regulator-name = "vcc3v3_io";

> +		regulator-min-microvolt = <3300000>;

> +		regulator-max-microvolt = <3300000>;

> +		regulator-always-on;

> +		regulator-boot-on;

> +		vin-supply = <&evm_12v0>;

> +	};

> +

> +	vdd_mmc1_sd: fixedregulator-sd {

> +		compatible = "regulator-fixed";

> +		regulator-name = "vdd_mmc1_sd";

> +		regulator-min-microvolt = <3300000>;

> +		regulator-max-microvolt = <3300000>;

> +		regulator-boot-on;

> +		enable-active-high;

> +		vin-supply = <&vcc3v3_io>;

> +		gpio = <&pca9554 4 GPIO_ACTIVE_HIGH>;

> +	};

>  };

>  

>  &wkup_pmx0 {

> @@ -350,6 +382,7 @@

>   * disable sdhci1

>   */

>  &sdhci1 {

> +	vmmc-supply = <&vdd_mmc1_sd>;

>  	pinctrl-names = "default";

>  	pinctrl-0 = <&main_mmc1_pins_default>;

>  	ti,driver-strength-ohm = <50>;

> 


-- 
Siemens AG, T RDA IOT
Corporate Competence Center Embedded Linux
Nishanth Menon May 28, 2021, 9:29 p.m. UTC | #2
On 20:34-20210528, Jan Kiszka wrote:
> On 11.05.21 18:48, Aswath Govindraju wrote:

> > UHS-I speed modes are supported in AM65 S.R. 2.0 SoC[1].

> > 

> > Add support by removing the no-1-8-v tag and including the voltage

> > regulator device tree nodes for power cycling.

> > 

> > However, the 4 bit interface of AM65 SR 1.0 cannot be supported at 3.3 V or

> > 1.8 V because of erratas i2025 and i2026 [2]. As the SD card is the primary

> > boot mode for development usecases, continue to enable SD card and disable

> > UHS-I modes in it to minimize any ageing issues happening because of

> > erratas.

> > 

> > k3-am6528-iot2050-basic and k3-am6548-iot2050-advanced boards use S.R. 1.0

> > version of AM65 SoC. Therefore, add no-1-8-v in sdhci1 device tree node of

> > the common iot2050 device tree file.

> > 

> > [1] - https://www.ti.com/lit/ug/spruid7e/spruid7e.pdf, section 12.3.6.1.1

> > [2] - https://www.ti.com/lit/er/sprz452e/sprz452e.pdf

> > 

> > Signed-off-by: Aswath Govindraju <a-govindraju@ti.com>

> > ---

> > 

> > changes since v2:

> > - moved the no-1-8-v tag to common iot2050 dtsi file.

> > 

> > changes since v1:

> > - added no-1-8-v tag in sdhci1 dt nodes of k3-am6528-iot2050-basic and

> >   k3-am6548-iot2050-advanced boards as they use S.R.1.0 version AM65 SoC.

> > 

> >  .../boot/dts/ti/k3-am65-iot2050-common.dtsi   |  1 +

> >  arch/arm64/boot/dts/ti/k3-am65-main.dtsi      |  1 -

> >  .../arm64/boot/dts/ti/k3-am654-base-board.dts | 33 +++++++++++++++++++

> >  3 files changed, 34 insertions(+), 1 deletion(-)

> > 

> > diff --git a/arch/arm64/boot/dts/ti/k3-am65-iot2050-common.dtsi b/arch/arm64/boot/dts/ti/k3-am65-iot2050-common.dtsi

> > index de763ca9251c..46cc348cd4be 100644

> > --- a/arch/arm64/boot/dts/ti/k3-am65-iot2050-common.dtsi

> > +++ b/arch/arm64/boot/dts/ti/k3-am65-iot2050-common.dtsi

> > @@ -555,6 +555,7 @@

> >  	pinctrl-0 = <&main_mmc1_pins_default>;

> >  	ti,driver-strength-ohm = <50>;

> >  	disable-wp;

> > +	no-1-8-v;

> >  };

> >  

> 

> Acked-by: Jan Kiszka <jan.kiszka@siemens.com>

> 


Thanks Jan.

Aswath:

It does'nt apply cleanly on my tree as I am picking up patches.. There are
new cleanups and nodes I have picked up, so could be conflicting with
those.

Please rebase and post based on:
https://git.kernel.org/pub/scm/linux/kernel/git/nmenon/linux.git/log/?h=ti-k3-dts-next

I'd suggest you do that on monday OR base on monday's linux-next tag for
the next post.

We need to make sure it does'nt conflict with Suman's repost[1] - So,
lets sync with suman offline to make sure we queue this up in the right
order.



[1] https://lore.kernel.org/linux-arm-kernel/e0da118a-077b-2e04-1e75-1550bcfa3540@ti.com/


-- 
Regards,
Nishanth Menon
Key (0xDDB5849D1736249D) / Fingerprint: F8A2 8693 54EB 8232 17A3  1A34 DDB5 849D 1736 249D
diff mbox series

Patch

diff --git a/arch/arm64/boot/dts/ti/k3-am65-iot2050-common.dtsi b/arch/arm64/boot/dts/ti/k3-am65-iot2050-common.dtsi
index de763ca9251c..46cc348cd4be 100644
--- a/arch/arm64/boot/dts/ti/k3-am65-iot2050-common.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-am65-iot2050-common.dtsi
@@ -555,6 +555,7 @@ 
 	pinctrl-0 = <&main_mmc1_pins_default>;
 	ti,driver-strength-ohm = <50>;
 	disable-wp;
+	no-1-8-v;
 };
 
 &usb0 {
diff --git a/arch/arm64/boot/dts/ti/k3-am65-main.dtsi b/arch/arm64/boot/dts/ti/k3-am65-main.dtsi
index cb340d1b401f..632f32fce4a1 100644
--- a/arch/arm64/boot/dts/ti/k3-am65-main.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-am65-main.dtsi
@@ -301,7 +301,6 @@ 
 		ti,otap-del-sel = <0x2>;
 		ti,trm-icp = <0x8>;
 		dma-coherent;
-		no-1-8-v;
 	};
 
 	scm_conf: scm-conf@100000 {
diff --git a/arch/arm64/boot/dts/ti/k3-am654-base-board.dts b/arch/arm64/boot/dts/ti/k3-am654-base-board.dts
index 9e87fb313a54..51c594b4dddb 100644
--- a/arch/arm64/boot/dts/ti/k3-am654-base-board.dts
+++ b/arch/arm64/boot/dts/ti/k3-am654-base-board.dts
@@ -91,6 +91,38 @@ 
 		#clock-cells = <0>;
 		clock-frequency = <24000000>;
 	};
+
+	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;
+	};
+
+	vcc3v3_io: fixedregulator-vcc3v3io {
+		/* Output of TPS54334 */
+		compatible = "regulator-fixed";
+		regulator-name = "vcc3v3_io";
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+		regulator-always-on;
+		regulator-boot-on;
+		vin-supply = <&evm_12v0>;
+	};
+
+	vdd_mmc1_sd: fixedregulator-sd {
+		compatible = "regulator-fixed";
+		regulator-name = "vdd_mmc1_sd";
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+		regulator-boot-on;
+		enable-active-high;
+		vin-supply = <&vcc3v3_io>;
+		gpio = <&pca9554 4 GPIO_ACTIVE_HIGH>;
+	};
 };
 
 &wkup_pmx0 {
@@ -350,6 +382,7 @@ 
  * disable sdhci1
  */
 &sdhci1 {
+	vmmc-supply = <&vdd_mmc1_sd>;
 	pinctrl-names = "default";
 	pinctrl-0 = <&main_mmc1_pins_default>;
 	ti,driver-strength-ohm = <50>;