linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/4] arm64: tegra: Xavier SDMMC changes
@ 2020-06-13 13:22 Tamás Szűcs
  2020-06-13 13:22 ` [PATCH 1/4] arm64: tegra: Enable signal voltage switching on Tegra194 SDMMC1 and SDMMC3 Tamás Szűcs
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: Tamás Szűcs @ 2020-06-13 13:22 UTC (permalink / raw)
  To: Rob Herring, Thierry Reding, Jonathan Hunter, Vidya Sagar,
	Lorenzo Pieralisi, JC Kuo, Sameer Pujar, devicetree, linux-tegra,
	linux-kernel
  Cc: Tamás Szűcs

Hi All,

I've encountered some issues with the Xavier while integrating some of our SDIO
modules. It turns out card detection was not working for the uSD socket and
I/Os were limited to 3.3 V. Also, the on-board eMMC module was using HS200 only.
I think it would make sense for the changes to go upstream. Please have a look.

Kind regards,
Tamas

Tamás Szűcs (4):
  arm64: tegra: Enable signal voltage switching on Tegra194 SDMMC1 and
    SDMMC3
  arm64: tegra: Fix CD on Jetson Xavier SDMMC1
  arm64: tegra: Configure SDIO cards on Jetson Xavier SDMMC1
  arm64: tegra: Enable HS400 on Tegra194 SDMMC4

 .../arm64/boot/dts/nvidia/tegra194-p2888.dtsi |  4 +-
 arch/arm64/boot/dts/nvidia/tegra194.dtsi      | 46 +++++++++++++++++++
 2 files changed, 49 insertions(+), 1 deletion(-)

-- 
2.20.1


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH 1/4] arm64: tegra: Enable signal voltage switching on Tegra194 SDMMC1 and SDMMC3
  2020-06-13 13:22 [PATCH 0/4] arm64: tegra: Xavier SDMMC changes Tamás Szűcs
@ 2020-06-13 13:22 ` Tamás Szűcs
  2020-06-13 13:22 ` [PATCH 2/4] arm64: tegra: Fix CD on Jetson Xavier SDMMC1 Tamás Szűcs
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: Tamás Szűcs @ 2020-06-13 13:22 UTC (permalink / raw)
  To: Rob Herring, Thierry Reding, Jonathan Hunter, Vidya Sagar,
	Lorenzo Pieralisi, JC Kuo, Sameer Pujar, devicetree, linux-tegra,
	linux-kernel
  Cc: Tamás Szűcs

Add pad voltage configuration nodes for SDMMC pads with configurable voltages
and enable supported SD card, SDIO and eMMC modes.

Signed-off-by: Tamás Szűcs <tszucs@protonmail.ch>
---
 arch/arm64/boot/dts/nvidia/tegra194.dtsi | 45 ++++++++++++++++++++++++
 1 file changed, 45 insertions(+)

diff --git a/arch/arm64/boot/dts/nvidia/tegra194.dtsi b/arch/arm64/boot/dts/nvidia/tegra194.dtsi
index 4bc187a4eacd..0a07930e68d1 100644
--- a/arch/arm64/boot/dts/nvidia/tegra194.dtsi
+++ b/arch/arm64/boot/dts/nvidia/tegra194.dtsi
@@ -4,6 +4,7 @@
 #include <dt-bindings/interrupt-controller/arm-gic.h>
 #include <dt-bindings/mailbox/tegra186-hsp.h>
 #include <dt-bindings/pinctrl/pinctrl-tegra.h>
+#include <dt-bindings/pinctrl/pinctrl-tegra-io-pad.h>
 #include <dt-bindings/power/tegra194-powergate.h>
 #include <dt-bindings/reset/tegra194-reset.h>
 #include <dt-bindings/thermal/tegra194-bpmp-thermal.h>
@@ -457,6 +458,9 @@
 			clock-names = "sdhci";
 			resets = <&bpmp TEGRA194_RESET_SDMMC1>;
 			reset-names = "sdhci";
+			pinctrl-names = "sdmmc-3v3", "sdmmc-1v8";
+			pinctrl-0 = <&sdmmc1_3v3>;
+			pinctrl-1 = <&sdmmc1_1v8>;
 			nvidia,pad-autocal-pull-up-offset-3v3-timeout =
 									<0x07>;
 			nvidia,pad-autocal-pull-down-offset-3v3-timeout =
@@ -468,6 +472,15 @@
 			nvidia,pad-autocal-pull-down-offset-sdr104 = <0x00>;
 			nvidia,default-tap = <0x9>;
 			nvidia,default-trim = <0x5>;
+			cap-sd-highspeed;
+			cap-mmc-highspeed;
+			sd-uhs-sdr12;
+			sd-uhs-sdr25;
+			sd-uhs-sdr50;
+			sd-uhs-sdr104;
+			cap-sdio-irq;
+			mmc-ddr-1_8v;
+			mmc-hs200-1_8v;
 			status = "disabled";
 		};
 
@@ -479,6 +492,9 @@
 			clock-names = "sdhci";
 			resets = <&bpmp TEGRA194_RESET_SDMMC3>;
 			reset-names = "sdhci";
+			pinctrl-names = "sdmmc-3v3", "sdmmc-1v8";
+			pinctrl-0 = <&sdmmc3_3v3>;
+			pinctrl-1 = <&sdmmc3_1v8>;
 			nvidia,pad-autocal-pull-up-offset-1v8 = <0x00>;
 			nvidia,pad-autocal-pull-down-offset-1v8 = <0x7a>;
 			nvidia,pad-autocal-pull-up-offset-3v3-timeout = <0x07>;
@@ -491,6 +507,15 @@
 			nvidia,pad-autocal-pull-down-offset-sdr104 = <0x00>;
 			nvidia,default-tap = <0x9>;
 			nvidia,default-trim = <0x5>;
+			cap-sd-highspeed;
+			cap-mmc-highspeed;
+			sd-uhs-sdr12;
+			sd-uhs-sdr25;
+			sd-uhs-sdr50;
+			sd-uhs-sdr104;
+			cap-sdio-irq;
+			mmc-ddr-1_8v;
+			mmc-hs200-1_8v;
 			status = "disabled";
 		};
 
@@ -1014,6 +1039,26 @@
 
 			#interrupt-cells = <2>;
 			interrupt-controller;
+
+			sdmmc1_3v3: sdmmc1-3v3 {
+				pins = "sdmmc1-hv";
+				power-source = <TEGRA_IO_PAD_VOLTAGE_3V3>;
+			};
+
+			sdmmc1_1v8: sdmmc1-1v8 {
+				pins = "sdmmc1-hv";
+				power-source = <TEGRA_IO_PAD_VOLTAGE_1V8>;
+			};
+
+			sdmmc3_3v3: sdmmc3-3v3 {
+				pins = "sdmmc3-hv";
+				power-source = <TEGRA_IO_PAD_VOLTAGE_3V3>;
+			};
+
+			sdmmc3_1v8: sdmmc3-1v8 {
+				pins = "sdmmc3-hv";
+				power-source = <TEGRA_IO_PAD_VOLTAGE_1V8>;
+			};
 		};
 
 		host1x@13e00000 {
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH 2/4] arm64: tegra: Fix CD on Jetson Xavier SDMMC1
  2020-06-13 13:22 [PATCH 0/4] arm64: tegra: Xavier SDMMC changes Tamás Szűcs
  2020-06-13 13:22 ` [PATCH 1/4] arm64: tegra: Enable signal voltage switching on Tegra194 SDMMC1 and SDMMC3 Tamás Szűcs
@ 2020-06-13 13:22 ` Tamás Szűcs
  2020-06-13 13:22 ` [PATCH 3/4] arm64: tegra: Configure SDIO cards " Tamás Szűcs
  2020-06-13 13:22 ` [PATCH 4/4] arm64: tegra: Enable HS400 on Tegra194 SDMMC4 Tamás Szűcs
  3 siblings, 0 replies; 5+ messages in thread
From: Tamás Szűcs @ 2020-06-13 13:22 UTC (permalink / raw)
  To: Rob Herring, Thierry Reding, Jonathan Hunter, Vidya Sagar,
	Lorenzo Pieralisi, JC Kuo, Sameer Pujar, devicetree, linux-tegra,
	linux-kernel
  Cc: Tamás Szűcs

Change GPIO used for card detection on SDMMC1.

Signed-off-by: Tamás Szűcs <tszucs@protonmail.ch>
---
 arch/arm64/boot/dts/nvidia/tegra194-p2888.dtsi | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm64/boot/dts/nvidia/tegra194-p2888.dtsi b/arch/arm64/boot/dts/nvidia/tegra194-p2888.dtsi
index b96eb4e14556..5c40e5c7ee9c 100644
--- a/arch/arm64/boot/dts/nvidia/tegra194-p2888.dtsi
+++ b/arch/arm64/boot/dts/nvidia/tegra194-p2888.dtsi
@@ -58,7 +58,7 @@
 
 		/* SDMMC1 (SD/MMC) */
 		sdhci@3400000 {
-			cd-gpios = <&gpio TEGRA194_MAIN_GPIO(A, 0) GPIO_ACTIVE_LOW>;
+			cd-gpios = <&gpio TEGRA194_MAIN_GPIO(G, 7) GPIO_ACTIVE_LOW>;
 		};
 
 		/* SDMMC4 (eMMC) */
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH 3/4] arm64: tegra: Configure SDIO cards on Jetson Xavier SDMMC1
  2020-06-13 13:22 [PATCH 0/4] arm64: tegra: Xavier SDMMC changes Tamás Szűcs
  2020-06-13 13:22 ` [PATCH 1/4] arm64: tegra: Enable signal voltage switching on Tegra194 SDMMC1 and SDMMC3 Tamás Szűcs
  2020-06-13 13:22 ` [PATCH 2/4] arm64: tegra: Fix CD on Jetson Xavier SDMMC1 Tamás Szűcs
@ 2020-06-13 13:22 ` Tamás Szűcs
  2020-06-13 13:22 ` [PATCH 4/4] arm64: tegra: Enable HS400 on Tegra194 SDMMC4 Tamás Szűcs
  3 siblings, 0 replies; 5+ messages in thread
From: Tamás Szűcs @ 2020-06-13 13:22 UTC (permalink / raw)
  To: Rob Herring, Thierry Reding, Jonathan Hunter, Vidya Sagar,
	Lorenzo Pieralisi, JC Kuo, Sameer Pujar, devicetree, linux-tegra,
	linux-kernel
  Cc: Tamás Szűcs

Preserve SDIO card power during a suspend/resume cycle and enable wake up of
host system on SDIO IRQ assertion.

Signed-off-by: Tamás Szűcs <tszucs@protonmail.ch>
---
 arch/arm64/boot/dts/nvidia/tegra194-p2888.dtsi | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/arch/arm64/boot/dts/nvidia/tegra194-p2888.dtsi b/arch/arm64/boot/dts/nvidia/tegra194-p2888.dtsi
index 5c40e5c7ee9c..4cf3830e37c3 100644
--- a/arch/arm64/boot/dts/nvidia/tegra194-p2888.dtsi
+++ b/arch/arm64/boot/dts/nvidia/tegra194-p2888.dtsi
@@ -59,6 +59,8 @@
 		/* SDMMC1 (SD/MMC) */
 		sdhci@3400000 {
 			cd-gpios = <&gpio TEGRA194_MAIN_GPIO(G, 7) GPIO_ACTIVE_LOW>;
+			keep-power-in-suspend;
+			wakeup-source;
 		};
 
 		/* SDMMC4 (eMMC) */
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH 4/4] arm64: tegra: Enable HS400 on Tegra194 SDMMC4
  2020-06-13 13:22 [PATCH 0/4] arm64: tegra: Xavier SDMMC changes Tamás Szűcs
                   ` (2 preceding siblings ...)
  2020-06-13 13:22 ` [PATCH 3/4] arm64: tegra: Configure SDIO cards " Tamás Szűcs
@ 2020-06-13 13:22 ` Tamás Szűcs
  3 siblings, 0 replies; 5+ messages in thread
From: Tamás Szűcs @ 2020-06-13 13:22 UTC (permalink / raw)
  To: Rob Herring, Thierry Reding, Jonathan Hunter, Vidya Sagar,
	Lorenzo Pieralisi, JC Kuo, Sameer Pujar, devicetree, linux-tegra,
	linux-kernel
  Cc: Tamás Szűcs

Enable HS400 signaling on Tegra194 SDMMC4 controller.

Signed-off-by: Tamás Szűcs <tszucs@protonmail.ch>
---
 arch/arm64/boot/dts/nvidia/tegra194.dtsi | 1 +
 1 file changed, 1 insertion(+)

diff --git a/arch/arm64/boot/dts/nvidia/tegra194.dtsi b/arch/arm64/boot/dts/nvidia/tegra194.dtsi
index 0a07930e68d1..ecb47a534f54 100644
--- a/arch/arm64/boot/dts/nvidia/tegra194.dtsi
+++ b/arch/arm64/boot/dts/nvidia/tegra194.dtsi
@@ -542,6 +542,7 @@
 			nvidia,default-tap = <0x8>;
 			nvidia,default-trim = <0x14>;
 			nvidia,dqs-trim = <40>;
+			mmc-hs400-1_8v;
 			supports-cqe;
 			status = "disabled";
 		};
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2020-06-13 13:41 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-06-13 13:22 [PATCH 0/4] arm64: tegra: Xavier SDMMC changes Tamás Szűcs
2020-06-13 13:22 ` [PATCH 1/4] arm64: tegra: Enable signal voltage switching on Tegra194 SDMMC1 and SDMMC3 Tamás Szűcs
2020-06-13 13:22 ` [PATCH 2/4] arm64: tegra: Fix CD on Jetson Xavier SDMMC1 Tamás Szűcs
2020-06-13 13:22 ` [PATCH 3/4] arm64: tegra: Configure SDIO cards " Tamás Szűcs
2020-06-13 13:22 ` [PATCH 4/4] arm64: tegra: Enable HS400 on Tegra194 SDMMC4 Tamás Szűcs

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).