On 5/22/26 08:06, Graham O'Connor wrote:
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 <[email protected]>
---
  .../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>;
+                       };

Previous patch needs this change to work, please squash.

Neil

+
+                       /* 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";
+};

Reply via email to