devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH RESEND v5 0/4] arm64: dts: qcom: x1e80100: crd/t14s: Enable Parade Type-C retimers
@ 2025-02-20 17:42 Abel Vesa
  2025-02-20 17:42 ` [PATCH RESEND v5 1/4] arm64: dts: qcom: x1e80100-crd: Describe the Parade PS8830 retimers Abel Vesa
                   ` (6 more replies)
  0 siblings, 7 replies; 15+ messages in thread
From: Abel Vesa @ 2025-02-20 17:42 UTC (permalink / raw)
  To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley
  Cc: Johan Hovold, Dmitry Baryshkov, Rajendra Nayak, Sibi Sankar,
	Christophe JAILLET, Trilok Soni, linux-arm-msm, devicetree,
	linux-kernel, Abel Vesa

Since the driver and dt-bindings have been alread merged, it has been
agreed offline that there is no point of holding on to these DT patches
even though there are some issues with plug/unplug during suspend in
both pmic-glink-altmode and ucsi-glink. These issues are being worked on
meanwhile. Merging these means that even though this will provide external DP
and USB orientation, plug/unplug during suspend will give some splats
and render both the USB orientation and DP broken. But then, other
X Elite boards already have these nodes described, so lets bring the crd
and t14s to the same level.

These patches are just a resend of the ones found in v5 and dropped in the v6
patchset of the driver and dt-bindings.

Link to v5: https://lore.kernel.org/all/20241112-x1e80100-ps8830-v5-0-4ad83af4d162@linaro.org/

Signed-off-by: Abel Vesa <abel.vesa@linaro.org>
---
Abel Vesa (4):
      arm64: dts: qcom: x1e80100-crd: Describe the Parade PS8830 retimers
      arm64: dts: qcom: x1e80100-crd: Enable external DisplayPort support
      arm64: dts: qcom: x1e80100-t14s: Describe the Parade PS8830 retimers
      arm64: dts: qcom: x1e80100-t14s: Enable external DisplayPort support

 .../dts/qcom/x1e78100-lenovo-thinkpad-t14s.dts     | 321 +++++++++++++-
 arch/arm64/boot/dts/qcom/x1e80100-crd.dts          | 474 ++++++++++++++++++++-
 2 files changed, 785 insertions(+), 10 deletions(-)
---
base-commit: 50a0c754714aa3ea0b0e62f3765eb666a1579f24
change-id: 20250220-x1e80100-dts-crd-t14s-enable-typec-retimers-325cdb7b097d

Best regards,
-- 
Abel Vesa <abel.vesa@linaro.org>


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

* [PATCH RESEND v5 1/4] arm64: dts: qcom: x1e80100-crd: Describe the Parade PS8830 retimers
  2025-02-20 17:42 [PATCH RESEND v5 0/4] arm64: dts: qcom: x1e80100: crd/t14s: Enable Parade Type-C retimers Abel Vesa
@ 2025-02-20 17:42 ` Abel Vesa
  2025-02-20 17:42 ` [PATCH RESEND v5 2/4] arm64: dts: qcom: x1e80100-crd: Enable external DisplayPort support Abel Vesa
                   ` (5 subsequent siblings)
  6 siblings, 0 replies; 15+ messages in thread
From: Abel Vesa @ 2025-02-20 17:42 UTC (permalink / raw)
  To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley
  Cc: Johan Hovold, Dmitry Baryshkov, Rajendra Nayak, Sibi Sankar,
	Christophe JAILLET, Trilok Soni, linux-arm-msm, devicetree,
	linux-kernel, Abel Vesa

The X Elite CRD board comes with 3 Parade PS8830 retimers, one for each
Type-C port. These handle the orientation and altmode switching and are
controlled over I2C. In the connection chain, they sit between the
USB/DisplayPort combo PHY and the Type-C connector.

Describe the retimers and all gpio controlled voltage regulators used by
each retimer. Also, modify the pmic glink graph to include the retimers in
between the SuperSpeed/Sideband in endpoints and the QMP PHY out endpoints.

Signed-off-by: Abel Vesa <abel.vesa@linaro.org>
---
 arch/arm64/boot/dts/qcom/x1e80100-crd.dts | 450 +++++++++++++++++++++++++++++-
 1 file changed, 444 insertions(+), 6 deletions(-)

diff --git a/arch/arm64/boot/dts/qcom/x1e80100-crd.dts b/arch/arm64/boot/dts/qcom/x1e80100-crd.dts
index ff5b3472fafd35a2a3754c11ab0b9b9e8ea5a4b4..1b29082788a366c63474b74e7dc916176a57546d 100644
--- a/arch/arm64/boot/dts/qcom/x1e80100-crd.dts
+++ b/arch/arm64/boot/dts/qcom/x1e80100-crd.dts
@@ -100,7 +100,15 @@ port@1 {
 					reg = <1>;
 
 					pmic_glink_ss0_ss_in: endpoint {
-						remote-endpoint = <&usb_1_ss0_qmpphy_out>;
+						remote-endpoint = <&retimer_ss0_ss_out>;
+					};
+				};
+
+				port@2 {
+					reg = <2>;
+
+					pmic_glink_ss0_con_sbu_in: endpoint {
+						remote-endpoint = <&retimer_ss0_con_sbu_out>;
 					};
 				};
 			};
@@ -129,7 +137,15 @@ port@1 {
 					reg = <1>;
 
 					pmic_glink_ss1_ss_in: endpoint {
-						remote-endpoint = <&usb_1_ss1_qmpphy_out>;
+						remote-endpoint = <&retimer_ss1_ss_out>;
+					};
+				};
+
+				port@2 {
+					reg = <2>;
+
+					pmic_glink_ss1_con_sbu_in: endpoint {
+						remote-endpoint = <&retimer_ss1_con_sbu_out>;
 					};
 				};
 			};
@@ -158,7 +174,15 @@ port@1 {
 					reg = <1>;
 
 					pmic_glink_ss2_ss_in: endpoint {
-						remote-endpoint = <&usb_1_ss2_qmpphy_out>;
+						remote-endpoint = <&retimer_ss2_ss_out>;
+					};
+				};
+
+				port@2 {
+					reg = <2>;
+
+					pmic_glink_ss2_con_sbu_in: endpoint {
+						remote-endpoint = <&retimer_ss2_con_sbu_out>;
 					};
 				};
 			};
@@ -311,6 +335,150 @@ vreg_nvme: regulator-nvme {
 		regulator-boot-on;
 	};
 
+	vreg_rtmr0_1p15: regulator-rtmr0-1p15 {
+		compatible = "regulator-fixed";
+
+		regulator-name = "VREG_RTMR0_1P15";
+		regulator-min-microvolt = <1150000>;
+		regulator-max-microvolt = <1150000>;
+
+		gpio = <&pmc8380_5_gpios 8 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+
+		pinctrl-0 = <&usb0_pwr_1p15_reg_en>;
+		pinctrl-names = "default";
+
+		regulator-boot-on;
+	};
+
+	vreg_rtmr0_1p8: regulator-rtmr0-1p8 {
+		compatible = "regulator-fixed";
+
+		regulator-name = "VREG_RTMR0_1P8";
+		regulator-min-microvolt = <1800000>;
+		regulator-max-microvolt = <1800000>;
+
+		gpio = <&pm8550ve_9_gpios 8 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+
+		pinctrl-0 = <&usb0_1p8_reg_en>;
+		pinctrl-names = "default";
+
+		regulator-boot-on;
+	};
+
+	vreg_rtmr0_3p3: regulator-rtmr0-3p3 {
+		compatible = "regulator-fixed";
+
+		regulator-name = "VREG_RTMR0_3P3";
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+
+		gpio = <&pm8550_gpios 11 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+
+		pinctrl-0 = <&usb0_3p3_reg_en>;
+		pinctrl-names = "default";
+
+		regulator-boot-on;
+	};
+
+	vreg_rtmr1_1p15: regulator-rtmr1-1p15 {
+		compatible = "regulator-fixed";
+
+		regulator-name = "VREG_RTMR1_1P15";
+		regulator-min-microvolt = <1150000>;
+		regulator-max-microvolt = <1150000>;
+
+		gpio = <&tlmm 188 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+
+		pinctrl-0 = <&usb1_pwr_1p15_reg_en>;
+		pinctrl-names = "default";
+
+		regulator-boot-on;
+	};
+
+	vreg_rtmr1_1p8: regulator-rtmr1-1p8 {
+		compatible = "regulator-fixed";
+
+		regulator-name = "VREG_RTMR1_1P8";
+		regulator-min-microvolt = <1800000>;
+		regulator-max-microvolt = <1800000>;
+
+		gpio = <&tlmm 175 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+
+		pinctrl-0 = <&usb1_pwr_1p8_reg_en>;
+		pinctrl-names = "default";
+
+		regulator-boot-on;
+	};
+
+	vreg_rtmr1_3p3: regulator-rtmr1-3p3 {
+		compatible = "regulator-fixed";
+
+		regulator-name = "VREG_RTMR1_3P3";
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+
+		gpio = <&tlmm 186 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+
+		pinctrl-0 = <&usb1_pwr_3p3_reg_en>;
+		pinctrl-names = "default";
+
+		regulator-boot-on;
+	};
+
+	vreg_rtmr2_1p15: regulator-rtmr2-1p15 {
+		compatible = "regulator-fixed";
+
+		regulator-name = "VREG_RTMR2_1P15";
+		regulator-min-microvolt = <1150000>;
+		regulator-max-microvolt = <1150000>;
+
+		gpio = <&tlmm 189 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+
+		pinctrl-0 = <&usb2_pwr_1p15_reg_en>;
+		pinctrl-names = "default";
+
+		regulator-boot-on;
+	};
+
+	vreg_rtmr2_1p8: regulator-rtmr2-1p8 {
+		compatible = "regulator-fixed";
+
+		regulator-name = "VREG_RTMR2_1P8";
+		regulator-min-microvolt = <1800000>;
+		regulator-max-microvolt = <1800000>;
+
+		gpio = <&tlmm 126 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+
+		pinctrl-0 = <&usb2_pwr_1p8_reg_en>;
+		pinctrl-names = "default";
+
+		regulator-boot-on;
+	};
+
+	vreg_rtmr2_3p3: regulator-rtmr2-3p3 {
+		compatible = "regulator-fixed";
+
+		regulator-name = "VREG_RTMR2_3P3";
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+
+		gpio = <&tlmm 187 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+
+		pinctrl-0 = <&usb2_pwr_3p3_reg_en>;
+		pinctrl-names = "default";
+
+		regulator-boot-on;
+	};
+
 	vph_pwr: regulator-vph-pwr {
 		compatible = "regulator-fixed";
 
@@ -735,6 +903,178 @@ keyboard@3a {
 	};
 };
 
+&i2c1 {
+	clock-frequency = <400000>;
+
+	status = "okay";
+
+	typec-mux@8 {
+		compatible = "parade,ps8830";
+		reg = <0x08>;
+
+		clocks = <&rpmhcc RPMH_RF_CLK5>;
+
+		vdd-supply = <&vreg_rtmr2_1p15>;
+		vdd33-supply = <&vreg_rtmr2_3p3>;
+		vdd33-cap-supply = <&vreg_rtmr2_3p3>;
+		vddar-supply = <&vreg_rtmr2_1p15>;
+		vddat-supply = <&vreg_rtmr2_1p15>;
+		vddio-supply = <&vreg_rtmr2_1p8>;
+
+		reset-gpios = <&tlmm 185 GPIO_ACTIVE_LOW>;
+
+		pinctrl-0 = <&rtmr2_default>;
+		pinctrl-names = "default";
+
+		orientation-switch;
+		retimer-switch;
+
+		ports {
+			#address-cells = <1>;
+			#size-cells = <0>;
+
+			port@0 {
+				reg = <0>;
+
+				retimer_ss2_ss_out: endpoint {
+					remote-endpoint = <&pmic_glink_ss2_ss_in>;
+				};
+			};
+
+			port@1 {
+				reg = <1>;
+
+				retimer_ss2_ss_in: endpoint {
+					remote-endpoint = <&usb_1_ss2_qmpphy_out>;
+				};
+			};
+
+			port@2 {
+				reg = <2>;
+
+				retimer_ss2_con_sbu_out: endpoint {
+					remote-endpoint = <&pmic_glink_ss2_con_sbu_in>;
+				};
+			};
+		};
+	};
+};
+
+&i2c3 {
+	clock-frequency = <400000>;
+
+	status = "okay";
+
+	typec-mux@8 {
+		compatible = "parade,ps8830";
+		reg = <0x08>;
+
+		clocks = <&rpmhcc RPMH_RF_CLK3>;
+
+		vdd-supply = <&vreg_rtmr0_1p15>;
+		vdd33-supply = <&vreg_rtmr0_3p3>;
+		vdd33-cap-supply = <&vreg_rtmr0_3p3>;
+		vddar-supply = <&vreg_rtmr0_1p15>;
+		vddat-supply = <&vreg_rtmr0_1p15>;
+		vddio-supply = <&vreg_rtmr0_1p8>;
+
+		reset-gpios = <&pm8550_gpios 10 GPIO_ACTIVE_LOW>;
+
+		pinctrl-0 = <&rtmr0_default>;
+		pinctrl-names = "default";
+
+		retimer-switch;
+		orientation-switch;
+
+		ports {
+			#address-cells = <1>;
+			#size-cells = <0>;
+
+			port@0 {
+				reg = <0>;
+
+				retimer_ss0_ss_out: endpoint {
+					remote-endpoint = <&pmic_glink_ss0_ss_in>;
+				};
+			};
+
+			port@1 {
+				reg = <1>;
+
+				retimer_ss0_ss_in: endpoint {
+					remote-endpoint = <&usb_1_ss0_qmpphy_out>;
+				};
+			};
+
+			port@2 {
+				reg = <2>;
+
+				retimer_ss0_con_sbu_out: endpoint {
+					remote-endpoint = <&pmic_glink_ss0_con_sbu_in>;
+				};
+			};
+		};
+	};
+};
+
+&i2c7 {
+	clock-frequency = <400000>;
+
+	status = "okay";
+
+	typec-mux@8 {
+		compatible = "parade,ps8830";
+		reg = <0x8>;
+
+		clocks = <&rpmhcc RPMH_RF_CLK4>;
+
+		vdd-supply = <&vreg_rtmr1_1p15>;
+		vdd33-supply = <&vreg_rtmr1_3p3>;
+		vdd33-cap-supply = <&vreg_rtmr1_3p3>;
+		vddar-supply = <&vreg_rtmr1_1p15>;
+		vddat-supply = <&vreg_rtmr1_1p15>;
+		vddio-supply = <&vreg_rtmr1_1p8>;
+
+		reset-gpios = <&tlmm 176 GPIO_ACTIVE_LOW>;
+
+		pinctrl-0 = <&rtmr1_default>;
+		pinctrl-names = "default";
+
+		retimer-switch;
+		orientation-switch;
+
+		ports {
+			#address-cells = <1>;
+			#size-cells = <0>;
+
+			port@0 {
+				reg = <0>;
+
+				retimer_ss1_ss_out: endpoint {
+					remote-endpoint = <&pmic_glink_ss1_ss_in>;
+				};
+			};
+
+			port@1 {
+				reg = <1>;
+
+				retimer_ss1_ss_in: endpoint {
+					remote-endpoint = <&usb_1_ss1_qmpphy_out>;
+				};
+			};
+
+			port@2 {
+				reg = <2>;
+
+				retimer_ss1_con_sbu_out: endpoint {
+					remote-endpoint = <&pmic_glink_ss1_con_sbu_in>;
+				};
+			};
+
+		};
+	};
+};
+
 &i2c8 {
 	clock-frequency = <400000>;
 
@@ -883,6 +1223,26 @@ &pcie6a_phy {
 	status = "okay";
 };
 
+&pm8550_gpios {
+	rtmr0_default: rtmr0-reset-n-active-state {
+		pins = "gpio10";
+		function = "normal";
+		power-source = <1>; /* 1.8V */
+		bias-disable;
+		input-disable;
+		output-enable;
+	};
+
+	usb0_3p3_reg_en: usb0-3p3-reg-en-state {
+		pins = "gpio11";
+		function = "normal";
+		power-source = <1>; /* 1.8V */
+		bias-disable;
+		input-disable;
+		output-enable;
+	};
+};
+
 &pm8550ve_8_gpios {
 	misc_3p3_reg_en: misc-3p3-reg-en-state {
 		pins = "gpio6";
@@ -896,6 +1256,17 @@ misc_3p3_reg_en: misc-3p3-reg-en-state {
 	};
 };
 
+&pm8550ve_9_gpios {
+	usb0_1p8_reg_en: usb0-1p8-reg-en-state {
+		pins = "gpio8";
+		function = "normal";
+		power-source = <1>; /* 1.8V */
+		bias-disable;
+		input-disable;
+		output-enable;
+	};
+};
+
 &pmc8380_3_gpios {
 	edp_bl_en: edp-bl-en-state {
 		pins = "gpio4";
@@ -906,6 +1277,17 @@ edp_bl_en: edp-bl-en-state {
 	};
 };
 
+&pmc8380_5_gpios {
+	usb0_pwr_1p15_reg_en: usb0-pwr-1p15-reg-en-state {
+		pins = "gpio8";
+		function = "normal";
+		power-source = <1>; /* 1.8V */
+		bias-disable;
+		input-disable;
+		output-enable;
+	};
+};
+
 &qupv3_0 {
 	status = "okay";
 };
@@ -1143,6 +1525,20 @@ wake-n-pins {
 		};
 	};
 
+	rtmr1_default: rtmr1-reset-n-active-state {
+		pins = "gpio176";
+		function = "gpio";
+		drive-strength = <2>;
+		bias-disable;
+	};
+
+	rtmr2_default: rtmr2-reset-n-active-state {
+		pins = "gpio185";
+		function = "gpio";
+		drive-strength = <2>;
+		bias-disable;
+	};
+
 	tpad_default: tpad-default-state {
 		pins = "gpio3";
 		function = "gpio";
@@ -1164,6 +1560,48 @@ reset-n-pins {
 		};
 	};
 
+	usb1_pwr_1p15_reg_en: usb1-pwr-1p15-reg-en-state {
+		pins = "gpio188";
+		function = "gpio";
+		drive-strength = <2>;
+		bias-disable;
+	};
+
+	usb1_pwr_1p8_reg_en: usb1-pwr-1p8-reg-en-state {
+		pins = "gpio175";
+		function = "gpio";
+		drive-strength = <2>;
+		bias-disable;
+	};
+
+	usb1_pwr_3p3_reg_en: usb1-pwr-3p3-reg-en-state {
+		pins = "gpio186";
+		function = "gpio";
+		drive-strength = <2>;
+		bias-disable;
+	};
+
+	usb2_pwr_1p15_reg_en: usb2-pwr-1p15-reg-en-state {
+		pins = "gpio189";
+		function = "gpio";
+		drive-strength = <2>;
+		bias-disable;
+	};
+
+	usb2_pwr_1p8_reg_en: usb2-pwr-1p8-reg-en-state {
+		pins = "gpio126";
+		function = "gpio";
+		drive-strength = <2>;
+		bias-disable;
+	};
+
+	usb2_pwr_3p3_reg_en: usb2-pwr-3p3-reg-en-state {
+		pins = "gpio187";
+		function = "gpio";
+		drive-strength = <2>;
+		bias-disable;
+	};
+
 	wcd_default: wcd-reset-n-active-state {
 		pins = "gpio191";
 		function = "gpio";
@@ -1214,7 +1652,7 @@ &usb_1_ss0_dwc3_hs {
 };
 
 &usb_1_ss0_qmpphy_out {
-	remote-endpoint = <&pmic_glink_ss0_ss_in>;
+	remote-endpoint = <&retimer_ss0_ss_in>;
 };
 
 &usb_1_ss1_hsphy {
@@ -1246,7 +1684,7 @@ &usb_1_ss1_dwc3_hs {
 };
 
 &usb_1_ss1_qmpphy_out {
-	remote-endpoint = <&pmic_glink_ss1_ss_in>;
+	remote-endpoint = <&retimer_ss1_ss_in>;
 };
 
 &usb_1_ss2_hsphy {
@@ -1278,5 +1716,5 @@ &usb_1_ss2_dwc3_hs {
 };
 
 &usb_1_ss2_qmpphy_out {
-	remote-endpoint = <&pmic_glink_ss2_ss_in>;
+	remote-endpoint = <&retimer_ss2_ss_in>;
 };

-- 
2.34.1


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

* [PATCH RESEND v5 2/4] arm64: dts: qcom: x1e80100-crd: Enable external DisplayPort support
  2025-02-20 17:42 [PATCH RESEND v5 0/4] arm64: dts: qcom: x1e80100: crd/t14s: Enable Parade Type-C retimers Abel Vesa
  2025-02-20 17:42 ` [PATCH RESEND v5 1/4] arm64: dts: qcom: x1e80100-crd: Describe the Parade PS8830 retimers Abel Vesa
@ 2025-02-20 17:42 ` Abel Vesa
  2025-02-21 19:02   ` Konrad Dybcio
  2025-02-20 17:42 ` [PATCH RESEND v5 3/4] arm64: dts: qcom: x1e80100-t14s: Describe the Parade PS8830 retimers Abel Vesa
                   ` (4 subsequent siblings)
  6 siblings, 1 reply; 15+ messages in thread
From: Abel Vesa @ 2025-02-20 17:42 UTC (permalink / raw)
  To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley
  Cc: Johan Hovold, Dmitry Baryshkov, Rajendra Nayak, Sibi Sankar,
	Christophe JAILLET, Trilok Soni, linux-arm-msm, devicetree,
	linux-kernel, Abel Vesa

The X Elite CRD provides external DisplayPort on all 3 USB Type-C ports.
Each one of this ports is connected to a dedicated DisplayPort
controller.

Due to support missing in the USB/DisplayPort combo PHY driver,
the external DisplayPort is limited to 2 lanes.

So enable all 3 remaining DisplayPort controllers and limit their data
lanes number to 2.

Signed-off-by: Abel Vesa <abel.vesa@linaro.org>
---
 arch/arm64/boot/dts/qcom/x1e80100-crd.dts | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/x1e80100-crd.dts b/arch/arm64/boot/dts/qcom/x1e80100-crd.dts
index 1b29082788a366c63474b74e7dc916176a57546d..9f9b1197963e2a278f66d5dde563930ebcc3d9d9 100644
--- a/arch/arm64/boot/dts/qcom/x1e80100-crd.dts
+++ b/arch/arm64/boot/dts/qcom/x1e80100-crd.dts
@@ -1125,6 +1125,30 @@ &mdss {
 	status = "okay";
 };
 
+&mdss_dp0 {
+	status = "okay";
+};
+
+&mdss_dp0_out {
+	data-lanes = <0 1>;
+};
+
+&mdss_dp1 {
+	status = "okay";
+};
+
+&mdss_dp1_out {
+	data-lanes = <0 1>;
+};
+
+&mdss_dp2 {
+	status = "okay";
+};
+
+&mdss_dp2_out {
+	data-lanes = <0 1>;
+};
+
 &mdss_dp3 {
 	compatible = "qcom,x1e80100-dp";
 	/delete-property/ #sound-dai-cells;

-- 
2.34.1


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

* [PATCH RESEND v5 3/4] arm64: dts: qcom: x1e80100-t14s: Describe the Parade PS8830 retimers
  2025-02-20 17:42 [PATCH RESEND v5 0/4] arm64: dts: qcom: x1e80100: crd/t14s: Enable Parade Type-C retimers Abel Vesa
  2025-02-20 17:42 ` [PATCH RESEND v5 1/4] arm64: dts: qcom: x1e80100-crd: Describe the Parade PS8830 retimers Abel Vesa
  2025-02-20 17:42 ` [PATCH RESEND v5 2/4] arm64: dts: qcom: x1e80100-crd: Enable external DisplayPort support Abel Vesa
@ 2025-02-20 17:42 ` Abel Vesa
  2025-02-21 19:03   ` Konrad Dybcio
  2025-02-20 17:42 ` [PATCH RESEND v5 4/4] arm64: dts: qcom: x1e80100-t14s: Enable external DisplayPort support Abel Vesa
                   ` (3 subsequent siblings)
  6 siblings, 1 reply; 15+ messages in thread
From: Abel Vesa @ 2025-02-20 17:42 UTC (permalink / raw)
  To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley
  Cc: Johan Hovold, Dmitry Baryshkov, Rajendra Nayak, Sibi Sankar,
	Christophe JAILLET, Trilok Soni, linux-arm-msm, devicetree,
	linux-kernel, Abel Vesa

The Lenovo ThinkPad T14s Gen6 laptop comes with 3 Parade PS8830 retimers,
one for each Type-C port. These handle the orientation and altmode
switching and are controlled over I2C. In the connection chain, they sit
between the USB/DisplayPort combo PHY and the Type-C connector.

Describe the retimers and all gpio controlled voltage regulators used by
each retimer. Also, modify the pmic glink graph to include the retimers in
between the SuperSpeed/Sideband in endpoints and the QMP PHY out
endpoints.

Signed-off-by: Abel Vesa <abel.vesa@linaro.org>
---
 .../dts/qcom/x1e78100-lenovo-thinkpad-t14s.dts     | 305 ++++++++++++++++++++-
 1 file changed, 301 insertions(+), 4 deletions(-)

diff --git a/arch/arm64/boot/dts/qcom/x1e78100-lenovo-thinkpad-t14s.dts b/arch/arm64/boot/dts/qcom/x1e78100-lenovo-thinkpad-t14s.dts
index b2c2347f54fa65f9355f0d7c008119e95bb64fb2..8949afc2f10e8fe912ac118335f7dc471566cf8d 100644
--- a/arch/arm64/boot/dts/qcom/x1e78100-lenovo-thinkpad-t14s.dts
+++ b/arch/arm64/boot/dts/qcom/x1e78100-lenovo-thinkpad-t14s.dts
@@ -92,7 +92,15 @@ port@1 {
 					reg = <1>;
 
 					pmic_glink_ss0_ss_in: endpoint {
-						remote-endpoint = <&usb_1_ss0_qmpphy_out>;
+						remote-endpoint = <&retimer_ss0_ss_out>;
+					};
+				};
+
+				port@2 {
+					reg = <2>;
+
+					pmic_glink_ss0_con_sbu_in: endpoint {
+						remote-endpoint = <&retimer_ss0_con_sbu_out>;
 					};
 				};
 			};
@@ -121,7 +129,15 @@ port@1 {
 					reg = <1>;
 
 					pmic_glink_ss1_ss_in: endpoint {
-						remote-endpoint = <&usb_1_ss1_qmpphy_out>;
+						remote-endpoint = <&retimer_ss1_ss_out>;
+					};
+				};
+
+				port@2 {
+					reg = <2>;
+
+					pmic_glink_ss1_con_sbu_in: endpoint {
+						remote-endpoint = <&retimer_ss1_con_sbu_out>;
 					};
 				};
 			};
@@ -169,6 +185,102 @@ vreg_nvme: regulator-nvme {
 		regulator-boot-on;
 	};
 
+	vreg_rtmr0_1p15: regulator-rtmr0-1p15 {
+		compatible = "regulator-fixed";
+
+		regulator-name = "VREG_RTMR0_1P15";
+		regulator-min-microvolt = <1150000>;
+		regulator-max-microvolt = <1150000>;
+
+		gpio = <&pmc8380_5_gpios 8 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+
+		pinctrl-0 = <&usb0_pwr_1p15_reg_en>;
+		pinctrl-names = "default";
+
+		regulator-boot-on;
+	};
+
+	vreg_rtmr0_1p8: regulator-rtmr0-1p8 {
+		compatible = "regulator-fixed";
+
+		regulator-name = "VREG_RTMR0_1P8";
+		regulator-min-microvolt = <1800000>;
+		regulator-max-microvolt = <1800000>;
+
+		gpio = <&pm8550ve_9_gpios 8 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+
+		pinctrl-0 = <&usb0_1p8_reg_en>;
+		pinctrl-names = "default";
+
+		regulator-boot-on;
+	};
+
+	vreg_rtmr0_3p3: regulator-rtmr0-3p3 {
+		compatible = "regulator-fixed";
+
+		regulator-name = "VREG_RTMR0_3P3";
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+
+		gpio = <&pm8550_gpios 11 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+
+		pinctrl-0 = <&usb0_3p3_reg_en>;
+		pinctrl-names = "default";
+
+		regulator-boot-on;
+	};
+
+	vreg_rtmr1_1p15: regulator-rtmr1-1p15 {
+		compatible = "regulator-fixed";
+
+		regulator-name = "VREG_RTMR1_1P15";
+		regulator-min-microvolt = <1150000>;
+		regulator-max-microvolt = <1150000>;
+
+		gpio = <&tlmm 188 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+
+		pinctrl-0 = <&usb1_pwr_1p15_reg_en>;
+		pinctrl-names = "default";
+
+		regulator-boot-on;
+	};
+
+	vreg_rtmr1_1p8: regulator-rtmr1-1p8 {
+		compatible = "regulator-fixed";
+
+		regulator-name = "VREG_RTMR1_1P8";
+		regulator-min-microvolt = <1800000>;
+		regulator-max-microvolt = <1800000>;
+
+		gpio = <&tlmm 175 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+
+		pinctrl-0 = <&usb1_pwr_1p8_reg_en>;
+		pinctrl-names = "default";
+
+		regulator-boot-on;
+	};
+
+	vreg_rtmr1_3p3: regulator-rtmr1-3p3 {
+		compatible = "regulator-fixed";
+
+		regulator-name = "VREG_RTMR1_3P3";
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+
+		gpio = <&tlmm 186 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+
+		pinctrl-0 = <&usb1_pwr_3p3_reg_en>;
+		pinctrl-names = "default";
+
+		regulator-boot-on;
+	};
+
 	vph_pwr: regulator-vph-pwr {
 		compatible = "regulator-fixed";
 
@@ -607,6 +719,63 @@ keyboard@3a {
 	};
 };
 
+&i2c3 {
+	clock-frequency = <400000>;
+
+	status = "okay";
+
+	typec-mux@8 {
+		compatible = "parade,ps8830";
+		reg = <0x08>;
+
+		clocks = <&rpmhcc RPMH_RF_CLK3>;
+
+		vdd-supply = <&vreg_rtmr0_1p15>;
+		vdd33-supply = <&vreg_rtmr0_3p3>;
+		vdd33-cap-supply = <&vreg_rtmr0_3p3>;
+		vddar-supply = <&vreg_rtmr0_1p15>;
+		vddat-supply = <&vreg_rtmr0_1p15>;
+		vddio-supply = <&vreg_rtmr0_1p8>;
+
+		reset-gpios = <&pm8550_gpios 10 GPIO_ACTIVE_LOW>;
+
+		pinctrl-0 = <&rtmr0_default>;
+		pinctrl-names = "default";
+
+		orientation-switch;
+		retimer-switch;
+
+		ports {
+			#address-cells = <1>;
+			#size-cells = <0>;
+
+			port@0 {
+				reg = <0>;
+
+				retimer_ss0_ss_out: endpoint {
+					remote-endpoint = <&pmic_glink_ss0_ss_in>;
+				};
+			};
+
+			port@1 {
+				reg = <1>;
+
+				retimer_ss0_ss_in: endpoint {
+					remote-endpoint = <&usb_1_ss0_qmpphy_out>;
+				};
+			};
+
+			port@2 {
+				reg = <2>;
+
+				retimer_ss0_con_sbu_out: endpoint {
+					remote-endpoint = <&pmic_glink_ss0_con_sbu_in>;
+				};
+			};
+		};
+	};
+};
+
 &i2c5 {
 	clock-frequency = <400000>;
 
@@ -655,6 +824,64 @@ eusb6_repeater: redriver@4f {
 	};
 };
 
+&i2c7 {
+	clock-frequency = <400000>;
+
+	status = "okay";
+
+	typec-mux@8 {
+		compatible = "parade,ps8830";
+		reg = <0x8>;
+
+		clocks = <&rpmhcc RPMH_RF_CLK4>;
+
+		vdd-supply = <&vreg_rtmr1_1p15>;
+		vdd33-supply = <&vreg_rtmr1_3p3>;
+		vdd33-cap-supply = <&vreg_rtmr1_3p3>;
+		vddar-supply = <&vreg_rtmr1_1p15>;
+		vddat-supply = <&vreg_rtmr1_1p15>;
+		vddio-supply = <&vreg_rtmr1_1p8>;
+
+		reset-gpios = <&tlmm 176 GPIO_ACTIVE_LOW>;
+
+		pinctrl-0 = <&rtmr1_default>;
+		pinctrl-names = "default";
+
+		retimer-switch;
+		orientation-switch;
+
+		ports {
+			#address-cells = <1>;
+			#size-cells = <0>;
+
+			port@0 {
+				reg = <0>;
+
+				retimer_ss1_ss_out: endpoint {
+					remote-endpoint = <&pmic_glink_ss1_ss_in>;
+				};
+			};
+
+			port@1 {
+				reg = <1>;
+
+				retimer_ss1_ss_in: endpoint {
+					remote-endpoint = <&usb_1_ss1_qmpphy_out>;
+				};
+			};
+
+			port@2 {
+				reg = <2>;
+
+				retimer_ss1_con_sbu_out: endpoint {
+					remote-endpoint = <&pmic_glink_ss1_con_sbu_in>;
+				};
+			};
+
+		};
+	};
+};
+
 &i2c8 {
 	clock-frequency = <400000>;
 
@@ -777,6 +1004,37 @@ &pcie6a_phy {
 	status = "okay";
 };
 
+&pm8550_gpios {
+	rtmr0_default: rtmr0-reset-n-active-state {
+		pins = "gpio10";
+		function = "normal";
+		power-source = <1>; /* 1.8V */
+		bias-disable;
+		input-disable;
+		output-enable;
+	};
+
+	usb0_3p3_reg_en: usb0-3p3-reg-en-state {
+		pins = "gpio11";
+		function = "normal";
+		power-source = <1>; /* 1.8V */
+		bias-disable;
+		input-disable;
+		output-enable;
+	};
+};
+
+&pm8550ve_9_gpios {
+	usb0_1p8_reg_en: usb0-1p8-reg-en-state {
+		pins = "gpio8";
+		function = "normal";
+		power-source = <1>; /* 1.8V */
+		bias-disable;
+		input-disable;
+		output-enable;
+	};
+};
+
 &pmc8380_3_gpios {
 	edp_bl_en: edp-bl-en-state {
 		pins = "gpio4";
@@ -787,6 +1045,17 @@ edp_bl_en: edp-bl-en-state {
 	};
 };
 
+&pmc8380_5_gpios {
+	usb0_pwr_1p15_reg_en: usb0-pwr-1p15-reg-en-state {
+		pins = "gpio8";
+		function = "normal";
+		power-source = <1>; /* 1.8V */
+		bias-disable;
+		input-disable;
+		output-enable;
+	};
+};
+
 &qupv3_0 {
 	status = "okay";
 };
@@ -1007,6 +1276,34 @@ wake-n-pins {
 		};
 	};
 
+	rtmr1_default: rtmr1-reset-n-active-state {
+		pins = "gpio176";
+		function = "gpio";
+		drive-strength = <2>;
+		bias-disable;
+	};
+
+	usb1_pwr_1p15_reg_en: usb1-pwr-1p15-reg-en-state {
+		pins = "gpio188";
+		function = "gpio";
+		drive-strength = <2>;
+		bias-disable;
+	};
+
+	usb1_pwr_1p8_reg_en: usb1-pwr-1p8-reg-en-state {
+		pins = "gpio175";
+		function = "gpio";
+		drive-strength = <2>;
+		bias-disable;
+	};
+
+	usb1_pwr_3p3_reg_en: usb1-pwr-3p3-reg-en-state {
+		pins = "gpio186";
+		function = "gpio";
+		drive-strength = <2>;
+		bias-disable;
+	};
+
 	wcd_default: wcd-reset-n-active-state {
 		pins = "gpio191";
 		function = "gpio";
@@ -1045,7 +1342,7 @@ &usb_1_ss0_dwc3_hs {
 };
 
 &usb_1_ss0_qmpphy_out {
-	remote-endpoint = <&pmic_glink_ss0_ss_in>;
+	remote-endpoint = <&retimer_ss0_ss_in>;
 };
 
 &usb_1_ss1_hsphy {
@@ -1077,7 +1374,7 @@ &usb_1_ss1_dwc3_hs {
 };
 
 &usb_1_ss1_qmpphy_out {
-	remote-endpoint = <&pmic_glink_ss1_ss_in>;
+	remote-endpoint = <&retimer_ss1_ss_in>;
 };
 
 &usb_2 {

-- 
2.34.1


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

* [PATCH RESEND v5 4/4] arm64: dts: qcom: x1e80100-t14s: Enable external DisplayPort support
  2025-02-20 17:42 [PATCH RESEND v5 0/4] arm64: dts: qcom: x1e80100: crd/t14s: Enable Parade Type-C retimers Abel Vesa
                   ` (2 preceding siblings ...)
  2025-02-20 17:42 ` [PATCH RESEND v5 3/4] arm64: dts: qcom: x1e80100-t14s: Describe the Parade PS8830 retimers Abel Vesa
@ 2025-02-20 17:42 ` Abel Vesa
  2025-02-21 19:03   ` Konrad Dybcio
  2025-02-21  9:25 ` [PATCH RESEND v5 0/4] arm64: dts: qcom: x1e80100: crd/t14s: Enable Parade Type-C retimers Johan Hovold
                   ` (2 subsequent siblings)
  6 siblings, 1 reply; 15+ messages in thread
From: Abel Vesa @ 2025-02-20 17:42 UTC (permalink / raw)
  To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley
  Cc: Johan Hovold, Dmitry Baryshkov, Rajendra Nayak, Sibi Sankar,
	Christophe JAILLET, Trilok Soni, linux-arm-msm, devicetree,
	linux-kernel, Abel Vesa

The Lenovo ThinkPad T14s Gen6 provides external DisplayPort on all
2 USB Type-C ports. Each one of this ports is connected to a dedicated
DisplayPort controller.

Due to support missing in the USB/DisplayPort combo PHY driver,
the external DisplayPort is limited to 2 lanes.

So enable the first and second DisplayPort controllers and limit their
data lanes number to 2.

Signed-off-by: Abel Vesa <abel.vesa@linaro.org>
---
 .../boot/dts/qcom/x1e78100-lenovo-thinkpad-t14s.dts      | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/x1e78100-lenovo-thinkpad-t14s.dts b/arch/arm64/boot/dts/qcom/x1e78100-lenovo-thinkpad-t14s.dts
index 8949afc2f10e8fe912ac118335f7dc471566cf8d..850fdab9f0b1d38e7b8f5f81f7187576357c4514 100644
--- a/arch/arm64/boot/dts/qcom/x1e78100-lenovo-thinkpad-t14s.dts
+++ b/arch/arm64/boot/dts/qcom/x1e78100-lenovo-thinkpad-t14s.dts
@@ -924,6 +924,22 @@ &mdss {
 	status = "okay";
 };
 
+&mdss_dp0 {
+	status = "okay";
+};
+
+&mdss_dp0_out {
+	data-lanes = <0 1>;
+};
+
+&mdss_dp1 {
+	status = "okay";
+};
+
+&mdss_dp1_out {
+	data-lanes = <0 1>;
+};
+
 &mdss_dp3 {
 	compatible = "qcom,x1e80100-dp";
 	/delete-property/ #sound-dai-cells;

-- 
2.34.1


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

* Re: [PATCH RESEND v5 0/4] arm64: dts: qcom: x1e80100: crd/t14s: Enable Parade Type-C retimers
  2025-02-20 17:42 [PATCH RESEND v5 0/4] arm64: dts: qcom: x1e80100: crd/t14s: Enable Parade Type-C retimers Abel Vesa
                   ` (3 preceding siblings ...)
  2025-02-20 17:42 ` [PATCH RESEND v5 4/4] arm64: dts: qcom: x1e80100-t14s: Enable external DisplayPort support Abel Vesa
@ 2025-02-21  9:25 ` Johan Hovold
  2025-02-21  9:41   ` Abel Vesa
  2025-03-04  4:27 ` Bjorn Andersson
  2025-03-07 22:03 ` Aleksandrs Vinarskis
  6 siblings, 1 reply; 15+ messages in thread
From: Johan Hovold @ 2025-02-21  9:25 UTC (permalink / raw)
  To: Abel Vesa
  Cc: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Dmitry Baryshkov, Rajendra Nayak, Sibi Sankar,
	Christophe JAILLET, Trilok Soni, linux-arm-msm, devicetree,
	linux-kernel

On Thu, Feb 20, 2025 at 07:42:29PM +0200, Abel Vesa wrote:
> Since the driver and dt-bindings have been alread merged, it has been
> agreed offline that there is no point of holding on to these DT patches
> even though there are some issues with plug/unplug during suspend in
> both pmic-glink-altmode and ucsi-glink. These issues are being worked on
> meanwhile. Merging these means that even though this will provide external DP
> and USB orientation, plug/unplug during suspend will give some splats
> and render both the USB orientation and DP broken. But then, other
> X Elite boards already have these nodes described, so lets bring the crd
> and t14s to the same level.
> 
> These patches are just a resend of the ones found in v5 and dropped in the v6
> patchset of the driver and dt-bindings.
> 
> Link to v5: https://lore.kernel.org/all/20241112-x1e80100-ps8830-v5-0-4ad83af4d162@linaro.org/
> 
> Signed-off-by: Abel Vesa <abel.vesa@linaro.org>
> ---
> Abel Vesa (4):
>       arm64: dts: qcom: x1e80100-crd: Describe the Parade PS8830 retimers
>       arm64: dts: qcom: x1e80100-crd: Enable external DisplayPort support
>       arm64: dts: qcom: x1e80100-t14s: Describe the Parade PS8830 retimers
>       arm64: dts: qcom: x1e80100-t14s: Enable external DisplayPort support

It looks like you've addressed all the comments I had on v1 (except for
a stray newline after a t14s port@2 node) and I've been running with
these patches for a long time now without any issues (other than the
glink hotplug issues mentioned above):

Reviewed-by: Johan Hovold <johan+linaro@kernel.org>
Tested-by: Johan Hovold <johan+linaro@kernel.org>

Johan

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

* Re: [PATCH RESEND v5 0/4] arm64: dts: qcom: x1e80100: crd/t14s: Enable Parade Type-C retimers
  2025-02-21  9:25 ` [PATCH RESEND v5 0/4] arm64: dts: qcom: x1e80100: crd/t14s: Enable Parade Type-C retimers Johan Hovold
@ 2025-02-21  9:41   ` Abel Vesa
  2025-02-21 12:19     ` Johan Hovold
  0 siblings, 1 reply; 15+ messages in thread
From: Abel Vesa @ 2025-02-21  9:41 UTC (permalink / raw)
  To: Johan Hovold
  Cc: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Dmitry Baryshkov, Rajendra Nayak, Sibi Sankar,
	Christophe JAILLET, Trilok Soni, linux-arm-msm, devicetree,
	linux-kernel

On 25-02-21 10:25:00, Johan Hovold wrote:
> On Thu, Feb 20, 2025 at 07:42:29PM +0200, Abel Vesa wrote:
> > Since the driver and dt-bindings have been alread merged, it has been
> > agreed offline that there is no point of holding on to these DT patches
> > even though there are some issues with plug/unplug during suspend in
> > both pmic-glink-altmode and ucsi-glink. These issues are being worked on
> > meanwhile. Merging these means that even though this will provide external DP
> > and USB orientation, plug/unplug during suspend will give some splats
> > and render both the USB orientation and DP broken. But then, other
> > X Elite boards already have these nodes described, so lets bring the crd
> > and t14s to the same level.
> > 
> > These patches are just a resend of the ones found in v5 and dropped in the v6
> > patchset of the driver and dt-bindings.
> > 
> > Link to v5: https://lore.kernel.org/all/20241112-x1e80100-ps8830-v5-0-4ad83af4d162@linaro.org/
> > 
> > Signed-off-by: Abel Vesa <abel.vesa@linaro.org>
> > ---
> > Abel Vesa (4):
> >       arm64: dts: qcom: x1e80100-crd: Describe the Parade PS8830 retimers
> >       arm64: dts: qcom: x1e80100-crd: Enable external DisplayPort support
> >       arm64: dts: qcom: x1e80100-t14s: Describe the Parade PS8830 retimers
> >       arm64: dts: qcom: x1e80100-t14s: Enable external DisplayPort support
> 
> It looks like you've addressed all the comments I had on v1 (except for

Oh, sorry, missed that one.

Let me respin.

> a stray newline after a t14s port@2 node) and I've been running with
> these patches for a long time now without any issues (other than the
> glink hotplug issues mentioned above):
> 
> Reviewed-by: Johan Hovold <johan+linaro@kernel.org>
> Tested-by: Johan Hovold <johan+linaro@kernel.org>
> 
> Johan

Thanks for reviewing and testing!

Abel

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

* Re: [PATCH RESEND v5 0/4] arm64: dts: qcom: x1e80100: crd/t14s: Enable Parade Type-C retimers
  2025-02-21  9:41   ` Abel Vesa
@ 2025-02-21 12:19     ` Johan Hovold
  0 siblings, 0 replies; 15+ messages in thread
From: Johan Hovold @ 2025-02-21 12:19 UTC (permalink / raw)
  To: Abel Vesa
  Cc: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Dmitry Baryshkov, Rajendra Nayak, Sibi Sankar,
	Christophe JAILLET, Trilok Soni, linux-arm-msm, devicetree,
	linux-kernel

On Fri, Feb 21, 2025 at 11:41:48AM +0200, Abel Vesa wrote:
> On 25-02-21 10:25:00, Johan Hovold wrote:
> > On Thu, Feb 20, 2025 at 07:42:29PM +0200, Abel Vesa wrote:

> > > Abel Vesa (4):
> > >       arm64: dts: qcom: x1e80100-crd: Describe the Parade PS8830 retimers
> > >       arm64: dts: qcom: x1e80100-crd: Enable external DisplayPort support
> > >       arm64: dts: qcom: x1e80100-t14s: Describe the Parade PS8830 retimers
> > >       arm64: dts: qcom: x1e80100-t14s: Enable external DisplayPort support
> > 
> > It looks like you've addressed all the comments I had on v1 (except for
> 
> Oh, sorry, missed that one.
> 
> Let me respin.

I don't think you need to respin over just that. And that extra newline
has already been copy-pasted into two more dts in mainline since (yeah,
it's odd to see the original patch go in after the copies). We can just
take a pass at cleaning this up at some later point.

Johan

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

* Re: [PATCH RESEND v5 2/4] arm64: dts: qcom: x1e80100-crd: Enable external DisplayPort support
  2025-02-20 17:42 ` [PATCH RESEND v5 2/4] arm64: dts: qcom: x1e80100-crd: Enable external DisplayPort support Abel Vesa
@ 2025-02-21 19:02   ` Konrad Dybcio
  0 siblings, 0 replies; 15+ messages in thread
From: Konrad Dybcio @ 2025-02-21 19:02 UTC (permalink / raw)
  To: Abel Vesa, Bjorn Andersson, Konrad Dybcio, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley
  Cc: Johan Hovold, Dmitry Baryshkov, Rajendra Nayak, Sibi Sankar,
	Christophe JAILLET, Trilok Soni, linux-arm-msm, devicetree,
	linux-kernel

On 20.02.2025 6:42 PM, Abel Vesa wrote:
> The X Elite CRD provides external DisplayPort on all 3 USB Type-C ports.
> Each one of this ports is connected to a dedicated DisplayPort
> controller.
> 
> Due to support missing in the USB/DisplayPort combo PHY driver,
> the external DisplayPort is limited to 2 lanes.
> 
> So enable all 3 remaining DisplayPort controllers and limit their data
> lanes number to 2.
> 
> Signed-off-by: Abel Vesa <abel.vesa@linaro.org>
> ---

Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>

Konrad

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

* Re: [PATCH RESEND v5 3/4] arm64: dts: qcom: x1e80100-t14s: Describe the Parade PS8830 retimers
  2025-02-20 17:42 ` [PATCH RESEND v5 3/4] arm64: dts: qcom: x1e80100-t14s: Describe the Parade PS8830 retimers Abel Vesa
@ 2025-02-21 19:03   ` Konrad Dybcio
  0 siblings, 0 replies; 15+ messages in thread
From: Konrad Dybcio @ 2025-02-21 19:03 UTC (permalink / raw)
  To: Abel Vesa, Bjorn Andersson, Konrad Dybcio, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley
  Cc: Johan Hovold, Dmitry Baryshkov, Rajendra Nayak, Sibi Sankar,
	Christophe JAILLET, Trilok Soni, linux-arm-msm, devicetree,
	linux-kernel

On 20.02.2025 6:42 PM, Abel Vesa wrote:
> The Lenovo ThinkPad T14s Gen6 laptop comes with 3 Parade PS8830 retimers,
> one for each Type-C port. These handle the orientation and altmode
> switching and are controlled over I2C. In the connection chain, they sit
> between the USB/DisplayPort combo PHY and the Type-C connector.
> 
> Describe the retimers and all gpio controlled voltage regulators used by
> each retimer. Also, modify the pmic glink graph to include the retimers in
> between the SuperSpeed/Sideband in endpoints and the QMP PHY out
> endpoints.
> 
> Signed-off-by: Abel Vesa <abel.vesa@linaro.org>
> ---

Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>

Konrad

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

* Re: [PATCH RESEND v5 4/4] arm64: dts: qcom: x1e80100-t14s: Enable external DisplayPort support
  2025-02-20 17:42 ` [PATCH RESEND v5 4/4] arm64: dts: qcom: x1e80100-t14s: Enable external DisplayPort support Abel Vesa
@ 2025-02-21 19:03   ` Konrad Dybcio
  0 siblings, 0 replies; 15+ messages in thread
From: Konrad Dybcio @ 2025-02-21 19:03 UTC (permalink / raw)
  To: Abel Vesa, Bjorn Andersson, Konrad Dybcio, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley
  Cc: Johan Hovold, Dmitry Baryshkov, Rajendra Nayak, Sibi Sankar,
	Christophe JAILLET, Trilok Soni, linux-arm-msm, devicetree,
	linux-kernel

On 20.02.2025 6:42 PM, Abel Vesa wrote:
> The Lenovo ThinkPad T14s Gen6 provides external DisplayPort on all
> 2 USB Type-C ports. Each one of this ports is connected to a dedicated
> DisplayPort controller.
> 
> Due to support missing in the USB/DisplayPort combo PHY driver,
> the external DisplayPort is limited to 2 lanes.
> 
> So enable the first and second DisplayPort controllers and limit their
> data lanes number to 2.
> 
> Signed-off-by: Abel Vesa <abel.vesa@linaro.org>
> ---

Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>

Konrad

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

* Re: [PATCH RESEND v5 0/4] arm64: dts: qcom: x1e80100: crd/t14s: Enable Parade Type-C retimers
  2025-02-20 17:42 [PATCH RESEND v5 0/4] arm64: dts: qcom: x1e80100: crd/t14s: Enable Parade Type-C retimers Abel Vesa
                   ` (4 preceding siblings ...)
  2025-02-21  9:25 ` [PATCH RESEND v5 0/4] arm64: dts: qcom: x1e80100: crd/t14s: Enable Parade Type-C retimers Johan Hovold
@ 2025-03-04  4:27 ` Bjorn Andersson
  2025-03-07 22:03 ` Aleksandrs Vinarskis
  6 siblings, 0 replies; 15+ messages in thread
From: Bjorn Andersson @ 2025-03-04  4:27 UTC (permalink / raw)
  To: Abel Vesa
  Cc: Konrad Dybcio, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Johan Hovold, Dmitry Baryshkov, Rajendra Nayak, Sibi Sankar,
	Christophe JAILLET, Trilok Soni, linux-arm-msm, devicetree,
	linux-kernel

On Thu, Feb 20, 2025 at 07:42:29PM +0200, Abel Vesa wrote:
> Since the driver and dt-bindings have been alread merged, it has been
> agreed offline that there is no point of holding on to these DT patches
> even though there are some issues with plug/unplug during suspend in
> both pmic-glink-altmode and ucsi-glink. These issues are being worked on
> meanwhile. Merging these means that even though this will provide external DP
> and USB orientation, plug/unplug during suspend will give some splats
> and render both the USB orientation and DP broken. But then, other
> X Elite boards already have these nodes described, so lets bring the crd
> and t14s to the same level.
> 
> These patches are just a resend of the ones found in v5 and dropped in the v6
> patchset of the driver and dt-bindings.
> 

Thank you, Abel. Unfortunately I merged a X1P series from Konrad, so
this no longer applies. Can you please help me rebase it onto
linux-next?

Regards,
Bjorn

> Link to v5: https://lore.kernel.org/all/20241112-x1e80100-ps8830-v5-0-4ad83af4d162@linaro.org/
> 
> Signed-off-by: Abel Vesa <abel.vesa@linaro.org>
> ---
> Abel Vesa (4):
>       arm64: dts: qcom: x1e80100-crd: Describe the Parade PS8830 retimers
>       arm64: dts: qcom: x1e80100-crd: Enable external DisplayPort support
>       arm64: dts: qcom: x1e80100-t14s: Describe the Parade PS8830 retimers
>       arm64: dts: qcom: x1e80100-t14s: Enable external DisplayPort support
> 
>  .../dts/qcom/x1e78100-lenovo-thinkpad-t14s.dts     | 321 +++++++++++++-
>  arch/arm64/boot/dts/qcom/x1e80100-crd.dts          | 474 ++++++++++++++++++++-
>  2 files changed, 785 insertions(+), 10 deletions(-)
> ---
> base-commit: 50a0c754714aa3ea0b0e62f3765eb666a1579f24
> change-id: 20250220-x1e80100-dts-crd-t14s-enable-typec-retimers-325cdb7b097d
> 
> Best regards,
> -- 
> Abel Vesa <abel.vesa@linaro.org>
> 

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

* Re: [PATCH RESEND v5 0/4] arm64: dts: qcom: x1e80100: crd/t14s: Enable Parade Type-C retimers
  2025-02-20 17:42 [PATCH RESEND v5 0/4] arm64: dts: qcom: x1e80100: crd/t14s: Enable Parade Type-C retimers Abel Vesa
                   ` (5 preceding siblings ...)
  2025-03-04  4:27 ` Bjorn Andersson
@ 2025-03-07 22:03 ` Aleksandrs Vinarskis
  2025-03-09  9:23   ` Abel Vesa
  6 siblings, 1 reply; 15+ messages in thread
From: Aleksandrs Vinarskis @ 2025-03-07 22:03 UTC (permalink / raw)
  To: Abel Vesa, Bjorn Andersson, Konrad Dybcio, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley
  Cc: Johan Hovold, Dmitry Baryshkov, Rajendra Nayak, Sibi Sankar,
	Christophe JAILLET, Trilok Soni, linux-arm-msm, devicetree,
	linux-kernel



On 2/20/25 18:42, Abel Vesa wrote:
> Since the driver and dt-bindings have been alread merged, it has been
> agreed offline that there is no point of holding on to these DT patches
> even though there are some issues with plug/unplug during suspend in
> both pmic-glink-altmode and ucsi-glink. These issues are being worked on
> meanwhile. Merging these means that even though this will provide external DP
> and USB orientation, plug/unplug during suspend will give some splats
> and render both the USB orientation and DP broken. But then, other
> X Elite boards already have these nodes described, so lets bring the crd
> and t14s to the same level.
> 
> These patches are just a resend of the ones found in v5 and dropped in the v6
> patchset of the driver and dt-bindings.
> 
> Link to v5: https://lore.kernel.org/all/20241112-x1e80100-ps8830-v5-0-4ad83af4d162@linaro.org/
> 
> Signed-off-by: Abel Vesa <abel.vesa@linaro.org>

If you will be respinning, could you please add link-frequencies to
enable HBR3 speeds, similarly to [1]? Alternatively, I can also send
fixups once this series lands.

[1] 
https://lore.kernel.org/all/20250226231436.16138-1-alex.vinarskis@gmail.com/

Thanks,
Alex

> ---
> Abel Vesa (4):
>        arm64: dts: qcom: x1e80100-crd: Describe the Parade PS8830 retimers
>        arm64: dts: qcom: x1e80100-crd: Enable external DisplayPort support
>        arm64: dts: qcom: x1e80100-t14s: Describe the Parade PS8830 retimers
>        arm64: dts: qcom: x1e80100-t14s: Enable external DisplayPort support
> 
>   .../dts/qcom/x1e78100-lenovo-thinkpad-t14s.dts     | 321 +++++++++++++-
>   arch/arm64/boot/dts/qcom/x1e80100-crd.dts          | 474 ++++++++++++++++++++-
>   2 files changed, 785 insertions(+), 10 deletions(-)
> ---
> base-commit: 50a0c754714aa3ea0b0e62f3765eb666a1579f24
> change-id: 20250220-x1e80100-dts-crd-t14s-enable-typec-retimers-325cdb7b097d
> 
> Best regards,


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

* Re: [PATCH RESEND v5 0/4] arm64: dts: qcom: x1e80100: crd/t14s: Enable Parade Type-C retimers
  2025-03-07 22:03 ` Aleksandrs Vinarskis
@ 2025-03-09  9:23   ` Abel Vesa
  2025-03-09 12:28     ` Aleksandrs Vinarskis
  0 siblings, 1 reply; 15+ messages in thread
From: Abel Vesa @ 2025-03-09  9:23 UTC (permalink / raw)
  To: Aleksandrs Vinarskis
  Cc: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Johan Hovold, Dmitry Baryshkov, Rajendra Nayak,
	Sibi Sankar, Christophe JAILLET, Trilok Soni, linux-arm-msm,
	devicetree, linux-kernel

On 25-03-07 23:03:07, Aleksandrs Vinarskis wrote:
> 
> 
> On 2/20/25 18:42, Abel Vesa wrote:
> > Since the driver and dt-bindings have been alread merged, it has been
> > agreed offline that there is no point of holding on to these DT patches
> > even though there are some issues with plug/unplug during suspend in
> > both pmic-glink-altmode and ucsi-glink. These issues are being worked on
> > meanwhile. Merging these means that even though this will provide external DP
> > and USB orientation, plug/unplug during suspend will give some splats
> > and render both the USB orientation and DP broken. But then, other
> > X Elite boards already have these nodes described, so lets bring the crd
> > and t14s to the same level.
> > 
> > These patches are just a resend of the ones found in v5 and dropped in the v6
> > patchset of the driver and dt-bindings.
> > 
> > Link to v5: https://lore.kernel.org/all/20241112-x1e80100-ps8830-v5-0-4ad83af4d162@linaro.org/
> > 
> > Signed-off-by: Abel Vesa <abel.vesa@linaro.org>
> 
> If you will be respinning, could you please add link-frequencies to
> enable HBR3 speeds, similarly to [1]? Alternatively, I can also send
> fixups once this series lands.


It's already re-spun here:

https://lore.kernel.org/all/20250304-x1e80100-dts-crd-t14s-enable-typec-retimers-v6-0-e5a49fae4e94@linaro.org/

Waiting to be merged.

Lets make the HBR3 enablement a separate patchset as I'm not able to
test it in time, if we want external DP to be part of 6.15.

> 
> [1]
> https://lore.kernel.org/all/20250226231436.16138-1-alex.vinarskis@gmail.com/
> 
> Thanks,
> Alex
> 
> > ---
> > Abel Vesa (4):
> >        arm64: dts: qcom: x1e80100-crd: Describe the Parade PS8830 retimers
> >        arm64: dts: qcom: x1e80100-crd: Enable external DisplayPort support
> >        arm64: dts: qcom: x1e80100-t14s: Describe the Parade PS8830 retimers
> >        arm64: dts: qcom: x1e80100-t14s: Enable external DisplayPort support
> > 
> >   .../dts/qcom/x1e78100-lenovo-thinkpad-t14s.dts     | 321 +++++++++++++-
> >   arch/arm64/boot/dts/qcom/x1e80100-crd.dts          | 474 ++++++++++++++++++++-
> >   2 files changed, 785 insertions(+), 10 deletions(-)
> > ---
> > base-commit: 50a0c754714aa3ea0b0e62f3765eb666a1579f24
> > change-id: 20250220-x1e80100-dts-crd-t14s-enable-typec-retimers-325cdb7b097d
> > 
> > Best regards,
> 

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

* Re: [PATCH RESEND v5 0/4] arm64: dts: qcom: x1e80100: crd/t14s: Enable Parade Type-C retimers
  2025-03-09  9:23   ` Abel Vesa
@ 2025-03-09 12:28     ` Aleksandrs Vinarskis
  0 siblings, 0 replies; 15+ messages in thread
From: Aleksandrs Vinarskis @ 2025-03-09 12:28 UTC (permalink / raw)
  To: Abel Vesa
  Cc: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Johan Hovold, Dmitry Baryshkov, Rajendra Nayak,
	Sibi Sankar, Christophe JAILLET, Trilok Soni, linux-arm-msm,
	devicetree, linux-kernel



On 3/9/25 10:23, Abel Vesa wrote:
> On 25-03-07 23:03:07, Aleksandrs Vinarskis wrote:
>>
>>
>> On 2/20/25 18:42, Abel Vesa wrote:
>>> Since the driver and dt-bindings have been alread merged, it has been
>>> agreed offline that there is no point of holding on to these DT patches
>>> even though there are some issues with plug/unplug during suspend in
>>> both pmic-glink-altmode and ucsi-glink. These issues are being worked on
>>> meanwhile. Merging these means that even though this will provide external DP
>>> and USB orientation, plug/unplug during suspend will give some splats
>>> and render both the USB orientation and DP broken. But then, other
>>> X Elite boards already have these nodes described, so lets bring the crd
>>> and t14s to the same level.
>>>
>>> These patches are just a resend of the ones found in v5 and dropped in the v6
>>> patchset of the driver and dt-bindings.
>>>
>>> Link to v5: https://lore.kernel.org/all/20241112-x1e80100-ps8830-v5-0-4ad83af4d162@linaro.org/
>>>
>>> Signed-off-by: Abel Vesa <abel.vesa@linaro.org>
>>
>> If you will be respinning, could you please add link-frequencies to
>> enable HBR3 speeds, similarly to [1]? Alternatively, I can also send
>> fixups once this series lands.
> 
> 
> It's already re-spun here:
> 
> https://lore.kernel.org/all/20250304-x1e80100-dts-crd-t14s-enable-typec-retimers-v6-0-e5a49fae4e94@linaro.org/
> 
> Waiting to be merged.

My bad, somehow missed the respin.

> 
> Lets make the HBR3 enablement a separate patchset as I'm not able to
> test it in time, if we want external DP to be part of 6.15.
> 

Sure. Will send as follow up once its merged.

Thanks,
Alex

>>
>> [1]
>> https://lore.kernel.org/all/20250226231436.16138-1-alex.vinarskis@gmail.com/
>>
>> Thanks,
>> Alex
>>
>>> ---
>>> Abel Vesa (4):
>>>         arm64: dts: qcom: x1e80100-crd: Describe the Parade PS8830 retimers
>>>         arm64: dts: qcom: x1e80100-crd: Enable external DisplayPort support
>>>         arm64: dts: qcom: x1e80100-t14s: Describe the Parade PS8830 retimers
>>>         arm64: dts: qcom: x1e80100-t14s: Enable external DisplayPort support
>>>
>>>    .../dts/qcom/x1e78100-lenovo-thinkpad-t14s.dts     | 321 +++++++++++++-
>>>    arch/arm64/boot/dts/qcom/x1e80100-crd.dts          | 474 ++++++++++++++++++++-
>>>    2 files changed, 785 insertions(+), 10 deletions(-)
>>> ---
>>> base-commit: 50a0c754714aa3ea0b0e62f3765eb666a1579f24
>>> change-id: 20250220-x1e80100-dts-crd-t14s-enable-typec-retimers-325cdb7b097d
>>>
>>> Best regards,
>>


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

end of thread, other threads:[~2025-03-09 12:28 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-02-20 17:42 [PATCH RESEND v5 0/4] arm64: dts: qcom: x1e80100: crd/t14s: Enable Parade Type-C retimers Abel Vesa
2025-02-20 17:42 ` [PATCH RESEND v5 1/4] arm64: dts: qcom: x1e80100-crd: Describe the Parade PS8830 retimers Abel Vesa
2025-02-20 17:42 ` [PATCH RESEND v5 2/4] arm64: dts: qcom: x1e80100-crd: Enable external DisplayPort support Abel Vesa
2025-02-21 19:02   ` Konrad Dybcio
2025-02-20 17:42 ` [PATCH RESEND v5 3/4] arm64: dts: qcom: x1e80100-t14s: Describe the Parade PS8830 retimers Abel Vesa
2025-02-21 19:03   ` Konrad Dybcio
2025-02-20 17:42 ` [PATCH RESEND v5 4/4] arm64: dts: qcom: x1e80100-t14s: Enable external DisplayPort support Abel Vesa
2025-02-21 19:03   ` Konrad Dybcio
2025-02-21  9:25 ` [PATCH RESEND v5 0/4] arm64: dts: qcom: x1e80100: crd/t14s: Enable Parade Type-C retimers Johan Hovold
2025-02-21  9:41   ` Abel Vesa
2025-02-21 12:19     ` Johan Hovold
2025-03-04  4:27 ` Bjorn Andersson
2025-03-07 22:03 ` Aleksandrs Vinarskis
2025-03-09  9:23   ` Abel Vesa
2025-03-09 12:28     ` Aleksandrs Vinarskis

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).