diff mbox series

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

Message ID 20250327081427.19693-1-johan+linaro@kernel.org
State New
Headers show
Series arm64: dts: qcom: x1e78100-t14s: enable SDX62 modem | expand

Commit Message

Johan Hovold March 27, 2025, 8:14 a.m. UTC
Enable PCIe5 and the SDX62 modem present on some T14s.

Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
---

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(+)

Comments

Konrad Dybcio March 29, 2025, 12:06 p.m. UTC | #1
On 3/28/25 10:29 AM, Abel Vesa wrote:
> On 25-03-27 09:14:27, Johan Hovold wrote:
>> Enable PCIe5 and the SDX62 modem present on some T14s.
>>
>> Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
>> ---
>>
>> 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)

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

Konrad
Abel Vesa March 29, 2025, 8:30 p.m. UTC | #2
On 25-03-29 13:06:54, Konrad Dybcio wrote:
> On 3/28/25 10:29 AM, Abel Vesa wrote:
> > On 25-03-27 09:14:27, Johan Hovold wrote:
> >> Enable PCIe5 and the SDX62 modem present on some T14s.
> >>
> >> Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
> >> ---
> >>
> >> 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)
> 
> 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.

> 
> Konrad
diff mbox series

Patch

diff --git a/arch/arm64/boot/dts/qcom/x1e78100-lenovo-thinkpad-t14s.dtsi b/arch/arm64/boot/dts/qcom/x1e78100-lenovo-thinkpad-t14s.dtsi
index 962fb050c55c..8b3f715bfc0b 100644
--- a/arch/arm64/boot/dts/qcom/x1e78100-lenovo-thinkpad-t14s.dtsi
+++ b/arch/arm64/boot/dts/qcom/x1e78100-lenovo-thinkpad-t14s.dtsi
@@ -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 {