[PATCH 6/6] arm64: dts: qcom: qcs6490-radxa-dragon-q6a: Enable USB3 SuperSpeed

From: Graham O'Connor

Date: Fri May 22 2026 - 02:12:42 EST


Enable the USB3-A port by configuring the USB HSPHY with required
regulator supplies and the QMP combo PHY with correct lane assignments
for this fixed USB-A connector.

The QMP combo PHY shares lanes between DisplayPort and USB3 SuperSpeed.
Configure port@0 with two endpoints: endpoint@0 for DP output (lanes
0-1) connected to the HDMI bridge, and endpoint@1 for USB3 SS output
(lanes 2-3). Remove the orientation-switch property as this is a fixed
USB-A connector with no orientation switching.

Add a usb-a-connector node wiring the HS and SS paths to the DWC3
controller and QMP PHY respectively. Set dr_mode to host as this is
a fixed host-only USB-A port.

Tested on Radxa Dragon Q6A (QCS6490) with USB3 SuperSpeed confirmed
via lsusb showing 5000M link speed.

Signed-off-by: Graham O'Connor <graham.oconnor@xxxxxxxxx>
---
.../dts/qcom/qcs6490-radxa-dragon-q6a.dts | 71 +++++++++++++++++++
1 file changed, 71 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/qcs6490-radxa-dragon-q6a.dts b/arch/arm64/boot/dts/qcom/qcs6490-radxa-dragon-q6a.dts
index e8ad6e666..c16c3664e 100644
--- a/arch/arm64/boot/dts/qcom/qcs6490-radxa-dragon-q6a.dts
+++ b/arch/arm64/boot/dts/qcom/qcs6490-radxa-dragon-q6a.dts
@@ -1198,3 +1198,74 @@ &mdss_edp {
&mdss_edp_phy {
status = "disabled";
};
+
+&usb_1_hsphy {
+ vdda-pll-supply = <&vreg_l10c_0p88>;
+ vdda18-supply = <&vreg_l1c_1p8>;
+ vdda33-supply = <&vreg_l2b_3p072>;
+ status = "okay";
+};
+
+&usb_1_qmpphy {
+ vdda-phy-supply = <&vreg_l6b_1p2>;
+ vdda-pll-supply = <&vreg_l1b_0p912>;
+ /delete-property/ orientation-switch;
+ status = "okay";
+
+ ports {
+ port@0 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ /delete-node/ endpoint;
+
+ /* DP output - connected to hdmi-bridge */
+ usb_dp_qmpphy_out_dp: endpoint@0 {
+ reg = <0>;
+ data-lanes = <0 1>;
+ remote-endpoint = <&hdmi_bridge_in>;
+ };
+
+ /* USB3 SS output */
+ usb_dp_qmpphy_out_usb: endpoint@1 {
+ reg = <1>;
+ data-lanes = <2 3>;
+ remote-endpoint = <&usb3_con_ss_in>;
+ };
+ };
+ };
+};
+
+/ {
+ usb3_con: connector {
+ compatible = "usb-a-connector";
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+ usb3_con_hs_in: endpoint {
+ remote-endpoint = <&usb_1_dwc3_hs>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+ usb3_con_ss_in: endpoint {
+ remote-endpoint = <&usb_dp_qmpphy_out_usb>;
+ };
+ };
+ };
+ };
+};
+
+&usb_1_dwc3_hs {
+ remote-endpoint = <&usb3_con_hs_in>;
+};
+
+&usb_1 {
+ dr_mode = "host";
+ status = "okay";
+};
--
2.53.0