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