Skip to contentSkip to conversation

arm64: dts: qcom: x1e78100-t14s: enable SDX62 modem

PATCH Applied Johan Hovold 6 participants 7 messages Mar 27, 2025 – May 17, 2025 1 message not in the archive

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 arm64: dts: qcom: x1e78100-t14s: enable SDX62 modem

Enable PCIe5 and the SDX62 modem present on some T14s.

---

I don't have a modem in my T14s, but this is based on the work I did to enable the modem on the CRD reference design and the T14s schematics.

I'm hopping Dennis will be able to help out with testing.

Note that we may possibly need a new entry for SDX62 in the MHI driver device id table (mhi_pci_id_table) as well. The output of 'lspci -n' will tell.

Johan

 .../qcom/x1e78100-lenovo-thinkpad-t14s.dtsi   | 65 +++++++++++++++++++
 1 file changed, 65 insertions(+)
arch/arm64/boot/dts/qcom/x1e78100-lenovo-thinkpad-t14s.dtsi +65 -0
index 962fb050c55c..8b3f715bfc0b 100644
@@ -310,6 +310,22 @@ vph_pwr: regulator-vph-pwr {
 		regulator-boot-on;
 	};
 
+	vreg_wwan: regulator-wwan {
+		compatible = "regulator-fixed";
+
+		regulator-name = "VCC3B_WAN_RCM";
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+
+		gpio = <&tlmm 221 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+
+		pinctrl-0 = <&wwan_sw_en>;
+		pinctrl-names = "default";
+
+		regulator-boot-on;
+	};
+
 	sound {
 		compatible = "qcom,x1e80100-sndcard";
 		model = "X1E80100-LENOVO-Thinkpad-T14s";
@@ -1028,6 +1044,25 @@ &pcie4_phy {
 	status = "okay";
 };
 
+&pcie5 {
+	perst-gpios = <&tlmm 149 GPIO_ACTIVE_LOW>;
+	wake-gpios = <&tlmm 151 GPIO_ACTIVE_LOW>;
+
+	vddpe-3v3-supply = <&vreg_wwan>;
+
+	pinctrl-0 = <&pcie5_default>;
+	pinctrl-names = "default";
+
+	status = "okay";
+};
+
+&pcie5_phy {
+	vdda-phy-supply = <&vreg_l3i_0p8>;
+	vdda-pll-supply = <&vreg_l3e_1p2>;
+
+	status = "okay";
+};
+
 &pcie6a {
 	perst-gpios = <&tlmm 152 GPIO_ACTIVE_LOW>;
 	wake-gpios = <&tlmm 154 GPIO_ACTIVE_LOW>;
@@ -1309,6 +1344,29 @@ wake-n-pins {
 		};
 	};
 
+	pcie5_default: pcie5-default-state {
+		clkreq-n-pins {
+			pins = "gpio150";
+			function = "pcie5_clk";
+			drive-strength = <2>;
+			bias-pull-up;
+		};
+
+		perst-n-pins {
+			pins = "gpio149";
+			function = "gpio";
+			drive-strength = <2>;
+			bias-disable;
+		};
+
+		wake-n-pins {
+			pins = "gpio151";
+			function = "gpio";
+			drive-strength = <2>;
+			bias-pull-up;
+		};
+	};
+
 	pcie6a_default: pcie6a-default-state {
 		clkreq-n-pins {
 			pins = "gpio153";
@@ -1367,6 +1425,13 @@ wcd_default: wcd-reset-n-active-state {
 		bias-disable;
 		output-low;
 	};
+
+	wwan_sw_en: wwan-sw-en-state {
+		pins = "gpio221";
+		function = "gpio";
+		drive-strength = <4>;
+		bias-disable;
+	};
 };
 
 &usb_1_ss0_hsphy {
Signature · 1 line
2.48.1
#1 lore raw
Quoted 22 lines · Johan Hovold

Enable PCIe5 and the SDX62 modem present on some T14s.

---

I don't have a modem in my T14s, but this is based on the work I did to enable the modem on the CRD reference design and the T14s schematics.

I'm hopping Dennis will be able to help out with testing.

Note that we may possibly need a new entry for SDX62 in the MHI driver device id table (mhi_pci_id_table) as well. The output of 'lspci -n' will tell.

Johan

 .../qcom/x1e78100-lenovo-thinkpad-t14s.dtsi   | 65 +++++++++++++++++++
 1 file changed, 65 insertions(+)

arch/arm64/boot/dts/qcom/x1e78100-lenovo-thinkpad-t14s.dtsi &pcie4_phy { · line 1051

Quoted 8 lines
arch/arm64/boot/dts/qcom/x1e78100-lenovo-thinkpad-t14s.dtsi +5 -0
@@ -1028,6 +1044,25 @@ &pcie4_phy {
 	status = "okay";
 };
 
+&pcie5 {
+	perst-gpios = <&tlmm 149 GPIO_ACTIVE_LOW>;
+	wake-gpios = <&tlmm 151 GPIO_ACTIVE_LOW>;
+
+	vddpe-3v3-supply = <&vreg_wwan>;

As we now have a proper PCIe slot power controls, is anything preventing us from using it for the modem?

Quoted 7 lines
arch/arm64/boot/dts/qcom/x1e78100-lenovo-thinkpad-t14s.dtsi +7 -0
+
+	pinctrl-0 = <&pcie5_default>;
+	pinctrl-names = "default";
+
+	status = "okay";
+};
+
Signature · 2 lines
With best wishes
Dmitry
#2 lore raw
In reply to Johan Hovold
Quoted 8 lines · Johan Hovold

Enable PCIe5 and the SDX62 modem present on some T14s.

---

I don't have a modem in my T14s, but this is based on the work I did to enable the modem on the CRD reference design and the T14s schematics.

What happens with T14s variants that do not have the WWAN ?

Is it OK to enable it on those, HW-wise ?

(Hope we don't have to split the devicetree again, like we did for the panel)

#3 lore raw
Quoted 10 lines · Abel Vesa
Quoted 8 lines · Johan Hovold

Enable PCIe5 and the SDX62 modem present on some T14s.

---

I don't have a modem in my T14s, but this is based on the work I did to enable the modem on the CRD reference design and the T14s schematics.

Quoted 6 lines

What happens with T14s variants that do not have the WWAN ?

Is it OK to enable it on those, HW-wise ?

(Hope we don't have to split the devicetree again, like we did for the panel)

Unless Lenovo planted something else on these GPIOs (doubt), it's even better to enable it, as UEFI brings up this controller anyway

Konrad

#4 lore raw
Quoted 13 lines · Konrad Dybcio
Quoted 12 lines · Abel Vesa
Quoted 8 lines · Johan Hovold

Enable PCIe5 and the SDX62 modem present on some T14s.

---

I don't have a modem in my T14s, but this is based on the work I did to enable the modem on the CRD reference design and the T14s schematics.

What happens with T14s variants that do not have the WWAN ?

Quoted 7 lines
Quoted 4 lines

Is it OK to enable it on those, HW-wise ?

(Hope we don't have to split the devicetree again, like we did for the panel)

Unless Lenovo planted something else on these GPIOs (doubt), it's even better to enable it, as UEFI brings up this controller anyway

SGTM then.

Quoted 2 lines

Konrad

A message that is not in the archive (sent off-list or not yet received): CAJesf3M-LSS3PqGKBSzM+4SEYgRmqrVmv-kvJLYUZqqU_Vjjuw@mail.gmail.com

Tested-by
#6 lore raw

Resending it as plain text so it ends up on the lists. My phone does not allow me to send plain text emails. The modem shows up as device ID 1eac:1007

Quoted 129 lines · Dennis Gilmore

It worked fine here, the modem already exists in mhi and the fcc- unlock code is already upstream in ModemManager

Dennis

Quoted 121 lines · On Thu, 27 Mar 2025, 03:24 Johan Hovold, <[email protected]> wrote:

Enable PCIe5 and the SDX62 modem present on some T14s.

---

I don't have a modem in my T14s, but this is based on the work I did to enable the modem on the CRD reference design and the T14s schematics.

I'm hopping Dennis will be able to help out with testing.

Note that we may possibly need a new entry for SDX62 in the MHI driver device id table (mhi_pci_id_table) as well. The output of 'lspci -n' will tell.

Johan

 .../qcom/x1e78100-lenovo-thinkpad-t14s.dtsi   | 65 +++++++++++++++++++
 1 file changed, 65 insertions(+)
arch/arm64/boot/dts/qcom/x1e78100-lenovo-thinkpad-t14s.dtsi +65 -1
index 962fb050c55c..8b3f715bfc0b 100644
@@ -310,6 +310,22 @@ vph_pwr: regulator-vph-pwr {
                regulator-boot-on;
        };
 
+       vreg_wwan: regulator-wwan {
+               compatible = "regulator-fixed";
+
+               regulator-name = "VCC3B_WAN_RCM";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+
+               gpio = <&tlmm 221 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               pinctrl-0 = <&wwan_sw_en>;
+               pinctrl-names = "default";
+
+               regulator-boot-on;
+       };
+
        sound {
                compatible = "qcom,x1e80100-sndcard";
                model = "X1E80100-LENOVO-Thinkpad-T14s";
@@ -1028,6 +1044,25 @@ &pcie4_phy {
        status = "okay";
 };
 
+&pcie5 {
+       perst-gpios = <&tlmm 149 GPIO_ACTIVE_LOW>;
+       wake-gpios = <&tlmm 151 GPIO_ACTIVE_LOW>;
+
+       vddpe-3v3-supply = <&vreg_wwan>;
+
+       pinctrl-0 = <&pcie5_default>;
+       pinctrl-names = "default";
+
+       status = "okay";
+};
+
+&pcie5_phy {
+       vdda-phy-supply = <&vreg_l3i_0p8>;
+       vdda-pll-supply = <&vreg_l3e_1p2>;
+
+       status = "okay";
+};
+
 &pcie6a {
        perst-gpios = <&tlmm 152 GPIO_ACTIVE_LOW>;
        wake-gpios = <&tlmm 154 GPIO_ACTIVE_LOW>;
@@ -1309,6 +1344,29 @@ wake-n-pins {
                };
        };
 
+       pcie5_default: pcie5-default-state {
+               clkreq-n-pins {
+                       pins = "gpio150";
+                       function = "pcie5_clk";
+                       drive-strength = <2>;
+                       bias-pull-up;
+               };
+
+               perst-n-pins {
+                       pins = "gpio149";
+                       function = "gpio";
+                       drive-strength = <2>;
+                       bias-disable;
+               };
+
+               wake-n-pins {
+                       pins = "gpio151";
+                       function = "gpio";
+                       drive-strength = <2>;
+                       bias-pull-up;
+               };
+       };
+
        pcie6a_default: pcie6a-default-state {
                clkreq-n-pins {
                        pins = "gpio153";
@@ -1367,6 +1425,13 @@ wcd_default: wcd-reset-n-active-state {
                bias-disable;
                output-low;
        };
+
+       wwan_sw_en: wwan-sw-en-state {
+               pins = "gpio221";
+               function = "gpio";
+               drive-strength = <4>;
+               bias-disable;
+       };
 };
 
 &usb_1_ss0_hsphy {
--

2.48.1

Signature · 2 lines
Dennis Gilmore
Senior Manager Systems Enablement OpenShift Development
maintainer Applied
#7 lore raw
In reply to Johan Hovold
Quoted 3 lines · Johan Hovold

Enable PCIe5 and the SDX62 modem present on some T14s.

Applied, thanks!

[1/1] arm64: dts: qcom: x1e78100-t14s: enable SDX62 modem

      commit: 03026046589d9baca0d24348faa76c72899de48f

Best regards,

Signature · 1 line
Bjorn Andersson <[email protected]>