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