Skip to contentSkip to conversation

arm64: dts: qcom: x1e80100-hp-x14: drop bogus USB retimer

PATCH Applied Johan Hovold 7 participants 7 messages Mar 28, 2025 – May 17, 2025

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

PATCH 1/1 arm64: dts: qcom: x1e80100-hp-x14: drop bogus USB retimer

Jens reported that the sanity checks added to the new ps883x USB retimer driver breaks USB and display on the HP X14. Turns out the X14 only has a retimer on one of the ports, but this initially went unnoticed due to the missing sanity check (and error handling) in the retimer driver.

Drop the non-existing retimer from the devicetree to enable the second USB port and the display subsystem.

Note that this also matches the ACPI tables.

Fixes 6f18b8d4142c ("arm64: dts: qcom: x1e80100-hp-x14: dt for HP Omnibook X Laptop 14")
Cc Jens Glathe <[email protected]>

---

The devicetree went upstream before the retimer driver so the display would already be broken in 6.14 and there's no need to backport this one (but it should go into 6.15).

Note that the SBU mux can be added later when/if someone figures out how it is connected.

Johan

 .../dts/qcom/x1e80100-hp-omnibook-x14.dts     | 146 +-----------------
 1 file changed, 2 insertions(+), 144 deletions(-)
arch/arm64/boot/dts/qcom/x1e80100-hp-omnibook-x14.dts +2 -144
index 05ad07d90b97..03bbebff4576 100644
@@ -150,15 +150,7 @@ port@1 {
 					reg = <1>;
 
 					pmic_glink_ss1_ss_in: endpoint {
-						remote-endpoint = <&retimer_ss1_ss_out>;
-					};
-				};
-
-				port@2 {
-					reg = <2>;
-
-					pmic_glink_ss1_con_sbu_in: endpoint {
-						remote-endpoint = <&retimer_ss1_con_sbu_out>;
+						remote-endpoint = <&usb_1_ss1_qmpphy_out>;
 					};
 				};
 			};
@@ -370,54 +362,6 @@ vreg_rtmr0_3p3: regulator-rtmr0-3p3 {
 		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_vph_pwr: regulator-vph-pwr {
 		compatible = "regulator-fixed";
 
@@ -1027,64 +971,6 @@ eusb3_repeater: redriver@47 {
 	};
 };
 
-&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";
-
-		orientation-switch;
-		retimer-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>;
 
@@ -1519,13 +1405,6 @@ wake-n-pins {
 		};
 	};
 
-	rtmr1_default: rtmr1-reset-n-active-state {
-		pins = "gpio176";
-		function = "gpio";
-		drive-strength = <2>;
-		bias-disable;
-	};
-
 	tpad_default: tpad-default-state {
 		pins = "gpio3";
 		function = "gpio";
@@ -1547,27 +1426,6 @@ 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;
-	};
-
 	wcd_default: wcd-reset-n-active-state {
 		pins = "gpio191";
 		function = "gpio";
@@ -1670,7 +1528,7 @@ &usb_1_ss1_dwc3_hs {
 };
 
 &usb_1_ss1_qmpphy_out {
-	remote-endpoint = <&retimer_ss1_ss_in>;
+	remote-endpoint = <&pmic_glink_ss1_ss_in>;
 };
 
 &usb_mp {
Signature · 1 line
2.48.1
Reviewed-by on v1 1/1
#1 lore raw
Quoted 5 lines · Johan Hovold

Jens reported that the sanity checks added to the new ps883x USB retimer driver breaks USB and display on the HP X14. Turns out the X14 only has a retimer on one of the ports, but this initially went unnoticed due to the missing sanity check (and error handling) in the retimer driver.

Quoted 8 lines

Drop the non-existing retimer from the devicetree to enable the second USB port and the display subsystem.

Note that this also matches the ACPI tables.

Fixes 6f18b8d4142c ("arm64: dts: qcom: x1e80100-hp-x14: dt for HP Omnibook X Laptop 14")
Cc Jens Glathe <[email protected]>
Reviewed-by on v1 1/1
#2 lore raw
In reply to Johan Hovold
Quoted 13 lines · Johan Hovold

Jens reported that the sanity checks added to the new ps883x USB retimer driver breaks USB and display on the HP X14. Turns out the X14 only has a retimer on one of the ports, but this initially went unnoticed due to the missing sanity check (and error handling) in the retimer driver.

Drop the non-existing retimer from the devicetree to enable the second USB port and the display subsystem.

Note that this also matches the ACPI tables.

Fixes 6f18b8d4142c ("arm64: dts: qcom: x1e80100-hp-x14: dt for HP Omnibook X Laptop 14")
Cc Jens Glathe <[email protected]>
Quoted 8 lines

---

The devicetree went upstream before the retimer driver so the display would already be broken in 6.14 and there's no need to backport this one (but it should go into 6.15).

Note that the SBU mux can be added later when/if someone figures out how it is connected.

I am shocked, but this product photo [1] (is this the right laptop? there's a bunch with similar naming) on the HP website suggests that indeed only one port has a USB-40Gbps marking on it, with the other type-C only being supposed to do 10Gbps

Konrad

[1] https://ssl-product-images.www8-hp.com/digmedialib/prodimg/lowres/c08993265.png

#3 lore raw
Quoted 20 lines · Konrad Dybcio
Quoted 19 lines · Johan Hovold

Jens reported that the sanity checks added to the new ps883x USB retimer driver breaks USB and display on the HP X14. Turns out the X14 only has a retimer on one of the ports, but this initially went unnoticed due to the missing sanity check (and error handling) in the retimer driver.

Drop the non-existing retimer from the devicetree to enable the second USB port and the display subsystem.

Note that this also matches the ACPI tables.

Fixes 6f18b8d4142c ("arm64: dts: qcom: x1e80100-hp-x14: dt for HP Omnibook X Laptop 14")
Cc Jens Glathe <[email protected]>

---

The devicetree went upstream before the retimer driver so the display would already be broken in 6.14 and there's no need to backport this one (but it should go into 6.15).

Quoted 7 lines
Quoted 2 lines

Note that the SBU mux can be added later when/if someone figures out how it is connected.

I am shocked, but this product photo [1] (is this the right laptop? there's a bunch with similar naming) on the HP website suggests that indeed only one port has a USB-40Gbps marking on it, with the other type-C only being supposed to do 10Gbps

Yeah, I found a photo like that on their web page too, and the specs also mention it:

1 USB Type-C® 10Gbps signaling rate (USB Power Delivery, DisplayPort™ 1.4a, HP Sleep and Charge); 1 USB Type-C® 40Gbps signaling rate (USB Power Delivery, DisplayPort™ 1.4a, HP Sleep and Charge)

https://www.hp.com/us-en/shop/pdp/hp-omnibook-x-laptop-ai-pc-14-fe000-14-9j1h6av-1#techSpecs

Quoted 1 line

[1] https://ssl-product-images.www8-hp.com/digmedialib/prodimg/lowres/c08993265.png

Johan

Tested-by on v1 1/1
#4 lore raw
In reply to Johan Hovold
Quoted 5 lines · On Fri, 28 Mar 2025 09:41:54 +0100 Johan Hovold <[email protected]> wrote:

Jens reported that the sanity checks added to the new ps883x USB retimer driver breaks USB and display on the HP X14. Turns out the X14 only has a retimer on one of the ports, but this initially went unnoticed due to the missing sanity check (and error handling) in the retimer driver.

Quoted 8 lines

Drop the non-existing retimer from the devicetree to enable the second USB port and the display subsystem.

Note that this also matches the ACPI tables.

Fixes 6f18b8d4142c ("arm64: dts: qcom: x1e80100-hp-x14: dt for HP Omnibook X Laptop 14")
Cc Jens Glathe <[email protected]>

Tested on an HP EliteBook Ultra which is the same HW but in a more expensive (?) packaging.

maintainer Applied
#6 lore raw
In reply to Johan Hovold
Quoted 9 lines · Johan Hovold

Jens reported that the sanity checks added to the new ps883x USB retimer driver breaks USB and display on the HP X14. Turns out the X14 only has a retimer on one of the ports, but this initially went unnoticed due to the missing sanity check (and error handling) in the retimer driver.

Drop the non-existing retimer from the devicetree to enable the second USB port and the display subsystem.

[...]

Applied, thanks!

[1/1] arm64: dts: qcom: x1e80100-hp-x14: drop bogus USB retimer

      commit: 9c6ee9a760c52207eae64cb6b20cd1d93c3761ff

Best regards,

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