mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH] arm64: dts: qcom: hamoa-iot-evk: switch typec0 to PS8830 retimer
@ 2026-07-21  7:41 Xin Liu
  2026-07-21 14:28 ` Konrad Dybcio
  0 siblings, 1 reply; 3+ messages in thread
From: Xin Liu @ 2026-07-21  7:41 UTC (permalink / raw)
  To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley
  Cc: linux-arm-msm, devicetree, linux-kernel, xin.liu, tingwei.zhang,
	jie.gan, Guodong Xu

The Hamoa IoT EVK populates a Parade PS8830 retimer on I2C3 for the
TypeC 0 port to support USB3.0 and SBU muxing. Describe the PS8830 and
route typec0 through it.

The vreg_rtmr0_* rails provisioned for a retimer were already defined
but previously wired to nowhere. They are now consumed by the PS8830,
so drop the "Left unused" comment.

The FSUSB42 SBU mux chip won't be populated on the final EVK
board, so remove the fsusb42 node and its pinctrl group.

Signed-off-by: Guodong Xu <guodong.xu@oss.qualcomm.com>
Signed-off-by: Xin Liu <xin.liu@oss.qualcomm.com>
---
 arch/arm64/boot/dts/qcom/hamoa-iot-evk.dts | 108 ++++++++++++---------
 1 file changed, 60 insertions(+), 48 deletions(-)

diff --git a/arch/arm64/boot/dts/qcom/hamoa-iot-evk.dts b/arch/arm64/boot/dts/qcom/hamoa-iot-evk.dts
index 9fa86bb6438e..a3ca22f9c3e8 100644
--- a/arch/arm64/boot/dts/qcom/hamoa-iot-evk.dts
+++ b/arch/arm64/boot/dts/qcom/hamoa-iot-evk.dts
@@ -126,15 +126,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_sbu: endpoint {
-						remote-endpoint = <&usb_1_ss0_sbu_mux>;
+					pmic_glink_ss0_con_sbu_in: endpoint {
+						remote-endpoint = <&retimer_ss0_con_sbu_out>;
 					};
 				};
 			};
@@ -303,7 +303,6 @@ vreg_pcie_3v3_aux: regulator-pcie-3v3-aux {
 		pinctrl-names = "default";
 	};
 
-	/* Left unused as the retimer is not used on this board. */
 	vreg_rtmr0_1p15: regulator-rtmr0-1p15 {
 		compatible = "regulator-fixed";
 
@@ -658,25 +657,6 @@ platform {
 		};
 	};
 
-	usb-1-ss0-sbu-mux {
-		compatible = "onnn,fsusb42", "gpio-sbu-mux";
-
-		enable-gpios = <&tlmm 168 GPIO_ACTIVE_LOW>;
-		select-gpios = <&tlmm 167 GPIO_ACTIVE_HIGH>;
-
-		pinctrl-0 = <&usb_1_ss0_sbu_default>;
-		pinctrl-names = "default";
-
-		mode-switch;
-		orientation-switch;
-
-		port {
-			usb_1_ss0_sbu_mux: endpoint {
-				remote-endpoint = <&pmic_glink_ss0_sbu>;
-			};
-		};
-	};
-
 	wcn7850-pmu {
 		compatible = "qcom,wcn7850-pmu";
 
@@ -793,6 +773,62 @@ retimer_ss2_con_sbu_out: endpoint {
 	};
 };
 
+&i2c3 {
+	clock-frequency = <400000>;
+	status = "okay";
+
+	typec-mux@8 {
+		compatible = "parade,ps8830";
+		reg = <0x08>;
+
+		clocks = <&rpmhcc RPMH_RF_CLK4>;
+
+		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>;
 
@@ -1458,30 +1494,6 @@ usb2_pwr_3p3_reg_en: usb2-pwr-3p3-reg-en-state {
 		bias-disable;
 	};
 
-	usb_1_ss0_sbu_default: usb-1-ss0-sbu-state {
-		mode-pins {
-			pins = "gpio166";
-			function = "gpio";
-			bias-disable;
-			drive-strength = <2>;
-			output-high;
-		};
-
-		oe-n-pins {
-			pins = "gpio168";
-			function = "gpio";
-			bias-disable;
-			drive-strength = <2>;
-		};
-
-		sel-pins {
-			pins = "gpio167";
-			function = "gpio";
-			bias-disable;
-			drive-strength = <2>;
-		};
-	};
-
 	wcd_default: wcd-reset-n-active-state {
 		pins = "gpio191";
 		function = "gpio";
@@ -1578,7 +1590,7 @@ &usb_1_ss0_hsphy {
 };
 
 &usb_1_ss0_qmpphy_out {
-	remote-endpoint = <&pmic_glink_ss0_ss_in>;
+	remote-endpoint = <&retimer_ss0_ss_in>;
 };
 
 &usb_1_ss1_dwc3_hs {
-- 
2.43.0


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

* Re: [PATCH] arm64: dts: qcom: hamoa-iot-evk: switch typec0 to PS8830 retimer
  2026-07-21  7:41 [PATCH] arm64: dts: qcom: hamoa-iot-evk: switch typec0 to PS8830 retimer Xin Liu
@ 2026-07-21 14:28 ` Konrad Dybcio
  2026-08-03  6:03   ` Xin Liu
  0 siblings, 1 reply; 3+ messages in thread
From: Konrad Dybcio @ 2026-07-21 14:28 UTC (permalink / raw)
  To: Xin Liu, Bjorn Andersson, Konrad Dybcio, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley
  Cc: linux-arm-msm, devicetree, linux-kernel, tingwei.zhang, jie.gan,
	Guodong Xu, Milosz Wasilewski

On 7/21/26 9:41 AM, Xin Liu wrote:
> The Hamoa IoT EVK populates a Parade PS8830 retimer on I2C3 for the
> TypeC 0 port to support USB3.0 and SBU muxing. Describe the PS8830 and
> route typec0 through it.
> 
> The vreg_rtmr0_* rails provisioned for a retimer were already defined
> but previously wired to nowhere. They are now consumed by the PS8830,
> so drop the "Left unused" comment.
> 
> The FSUSB42 SBU mux chip won't be populated on the final EVK
> board, so remove the fsusb42 node and its pinctrl group.

Are we sure about that? I inquired about this on a pre-release
version of an equivalent patch and never got an answer. For sure
there are a number of boards without a retimer, including in our CI
(+CC Miłosz)..

Konrad

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

* Re: [PATCH] arm64: dts: qcom: hamoa-iot-evk: switch typec0 to PS8830 retimer
  2026-07-21 14:28 ` Konrad Dybcio
@ 2026-08-03  6:03   ` Xin Liu
  0 siblings, 0 replies; 3+ messages in thread
From: Xin Liu @ 2026-08-03  6:03 UTC (permalink / raw)
  To: Konrad Dybcio, Bjorn Andersson, Konrad Dybcio, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley
  Cc: linux-arm-msm, devicetree, linux-kernel, tingwei.zhang, jie.gan,
	Guodong Xu, Milosz Wasilewski


On 7/21/2026 10:28 PM, Konrad Dybcio wrote:
> On 7/21/26 9:41 AM, Xin Liu wrote:
>> The Hamoa IoT EVK populates a Parade PS8830 retimer on I2C3 for the
>> TypeC 0 port to support USB3.0 and SBU muxing. Describe the PS8830 and
>> route typec0 through it.
>>
>> The vreg_rtmr0_* rails provisioned for a retimer were already defined
>> but previously wired to nowhere. They are now consumed by the PS8830,
>> so drop the "Left unused" comment.
>>
>> The FSUSB42 SBU mux chip won't be populated on the final EVK
>> board, so remove the fsusb42 node and its pinctrl group.
> Are we sure about that? I inquired about this on a pre-release
> version of an equivalent patch and never got an answer. For sure
> there are a number of boards without a retimer, including in our CI
> (+CC Miłosz)..
>
> Konrad
Hi, Konrad

FSUSB42 is still present on the board but with all signal lines 
unconnected. It has also been confirmed that all CI test machines are 
using PS8833, not FSUSB42.

Xin

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

end of thread, other threads:[~2026-08-03  6:03 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-07-21  7:41 [PATCH] arm64: dts: qcom: hamoa-iot-evk: switch typec0 to PS8830 retimer Xin Liu
2026-07-21 14:28 ` Konrad Dybcio
2026-08-03  6:03   ` Xin Liu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®