[PATCH 10/10] ARM: dts: qcom: apq8074-dragonboard: enable the USB3 host

From: Dmitry Baryshkov

Date: Mon Aug 10 2026 - 07:49:41 EST


The USB3 port of the dragonboard drives the onboard TUSB8040A hub with
the AX88179 GbE controller and the PL2775 USB-SATA bridge behind it,
but the controller is disabled and nothing describes the devices, so
their reset lines float and their supplies are unmanaged.

Enable the DWC3 controller in host mode together with both of its
PHYs, and describe the onboard chain as device nodes under the
controller: the TUSB8040A hub pair (with the EEPROM-programmed
0451:8041/0451:8043 IDs this board reports), the AX88179 on the DN2
port and the PL2775 on the DN0 port, each with its PM8941 reset GPIO,
all powered from the always-on 3.3V carrier board rail, modeled as a
fixed regulator.

The SuperSpeed PHY is required even for the hub's USB 2.0 half to
respond: with the SS PHY left uninitialized the hub connects but never
answers enumeration at any speed.

Assisted-by: Claude:claude-fable-5
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@xxxxxxxxxxxxxxxx>
---
.../arm/boot/dts/qcom/qcom-apq8074-dragonboard.dts | 61 ++++++++++++++++++++++
1 file changed, 61 insertions(+)

diff --git a/arch/arm/boot/dts/qcom/qcom-apq8074-dragonboard.dts b/arch/arm/boot/dts/qcom/qcom-apq8074-dragonboard.dts
index d3ae6c6a6f83..083fd8fa0aea 100644
--- a/arch/arm/boot/dts/qcom/qcom-apq8074-dragonboard.dts
+++ b/arch/arm/boot/dts/qcom/qcom-apq8074-dragonboard.dts
@@ -50,6 +50,15 @@ mpss_region: mpss@ac00000 {
};
};

+ pwr_c_3p3: regulator-pwr-c-3p3 {
+ compatible = "regulator-fixed";
+ regulator-name = "pwr_c_3p3";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-always-on;
+ regulator-boot-on;
+ };
+
vreg_boost: vreg-boost {
compatible = "regulator-fixed";

@@ -477,3 +486,55 @@ &usb_hs2_phy {
extcon = <&smbb>;
qcom,init-seq = /bits/ 8 <0x1 0x63>;
};
+
+&usb3 {
+ dr_mode = "host";
+
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ status = "okay";
+
+ /* TI TUSB8040A four port hub */
+ hub_2_0: hub@1 {
+ compatible = "usb451,8043";
+ reg = <1>;
+ peer-hub = <&hub_3_0>;
+ reset-gpios = <&pm8941_gpios 6 GPIO_ACTIVE_LOW>;
+ vdd-supply = <&pwr_c_3p3>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ /* Prolific PL2775 USB-SATA bridge on the DN0 port */
+ device@1 {
+ compatible = "usb67b,2775";
+ reg = <1>;
+ reset-gpios = <&pm8941_gpios 10 GPIO_ACTIVE_LOW>;
+ vdd-supply = <&pwr_c_3p3>;
+ };
+
+ /* ASIX AX88179 USB-GbE controller on the DN2 port */
+ ethernet@3 {
+ compatible = "usbb95,1790";
+ reg = <3>;
+ reset-gpios = <&pm8941_gpios 9 GPIO_ACTIVE_LOW>;
+ vdd-supply = <&pwr_c_3p3>;
+ };
+ };
+
+ hub_3_0: hub@2 {
+ compatible = "usb451,8041";
+ reg = <2>;
+ peer-hub = <&hub_2_0>;
+ reset-gpios = <&pm8941_gpios 6 GPIO_ACTIVE_LOW>;
+ vdd-supply = <&pwr_c_3p3>;
+ };
+};
+
+&usb3_hs_phy {
+ status = "okay";
+};
+
+&usb3_ss_phy {
+ status = "okay";
+};

--
2.47.3