Devicetree
 help / color / mirror / Atom feed
* [PATCH 0/8] usb: misc: onboard_usb_dev: support several devices
@ 2026-08-10  0:42 Dmitry Baryshkov
  2026-08-10  0:42 ` [PATCH 1/8] dt-bindings: usb: ti,usb8041: document the TUSB8040A hub Dmitry Baryshkov
                   ` (7 more replies)
  0 siblings, 8 replies; 13+ messages in thread
From: Dmitry Baryshkov @ 2026-08-10  0:42 UTC (permalink / raw)
  To: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Alexander Stein, Andrew Lunn, David S. Miller,
	Eric Dumazet, Jakub Kicinski, Paolo Abeni, Oleksij Rempel,
	Matthias Kaehlcke, Fabio Estevam
  Cc: linux-usb, devicetree, linux-kernel, netdev

Describe and add support for several USB devices present on the Qualcomm
APQ8074 DragonBoard device.

Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
---
Dmitry Baryshkov (8):
      dt-bindings: usb: ti,usb8041: document the TUSB8040A hub
      dt-bindings: net: asix,ax88178: document the AX88179
      dt-bindings: usb: document the Prolific PL2775 USB-SATA bridge
      dt-bindings: usb: microchip,usb2514: document the USB4604 hub
      usb: misc: onboard_usb_dev: add support for the TI TUSB8040A hub
      usb: misc: onboard_usb_dev: add support for the ASIX AX88179
      usb: misc: onboard_usb_dev: add support for the Prolific PL2775
      usb: misc: onboard_usb_dev: add support for the SMSC USB4604

 .../devicetree/bindings/net/asix,ax88178.yaml      | 10 ++++-
 .../devicetree/bindings/usb/microchip,usb2514.yaml |  1 +
 .../devicetree/bindings/usb/prolific,pl2775.yaml   | 51 ++++++++++++++++++++++
 .../devicetree/bindings/usb/ti,usb8041.yaml        |  6 ++-
 drivers/usb/misc/onboard_usb_dev.c                 |  9 ++++
 drivers/usb/misc/onboard_usb_dev.h                 | 28 ++++++++++++
 6 files changed, 103 insertions(+), 2 deletions(-)
---
base-commit: 6b8c8af514d739d0335f5579b585e02babe8a727
change-id: 20260810-msm8974-onboard-usb-98d293645270

Best regards,
--  
With best wishes
Dmitry


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

* [PATCH 1/8] dt-bindings: usb: ti,usb8041: document the TUSB8040A hub
  2026-08-10  0:42 [PATCH 0/8] usb: misc: onboard_usb_dev: support several devices Dmitry Baryshkov
@ 2026-08-10  0:42 ` Dmitry Baryshkov
  2026-08-13  9:45   ` Krzysztof Kozlowski
  2026-08-10  0:42 ` [PATCH 2/8] dt-bindings: net: asix,ax88178: document the AX88179 Dmitry Baryshkov
                   ` (6 subsequent siblings)
  7 siblings, 1 reply; 13+ messages in thread
From: Dmitry Baryshkov @ 2026-08-10  0:42 UTC (permalink / raw)
  To: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Alexander Stein, Andrew Lunn, David S. Miller,
	Eric Dumazet, Jakub Kicinski, Paolo Abeni, Oleksij Rempel,
	Matthias Kaehlcke, Fabio Estevam
  Cc: linux-usb, devicetree, linux-kernel, netdev

The TI TUSB8040A four-port USB 3.0 hub is not documented, so onboard
device nodes for it cannot be validated.

Document it next to its TUSB8041 sibling: the same reset-gpios/peer-hub
properties apply. Besides the datasheet default 0451:8040 / 0451:8042
IDs, also document 0451:8041 / 0451:8043: the configuration EEPROM can
override the product IDs, and e.g. the APQ8074 Dragonboard programs
these values, as seen when booting the vendor image.

Assisted-by: Claude:claude-fable-5
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
---
 Documentation/devicetree/bindings/usb/ti,usb8041.yaml | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/Documentation/devicetree/bindings/usb/ti,usb8041.yaml b/Documentation/devicetree/bindings/usb/ti,usb8041.yaml
index 07e13fae640b..a7ce487090a2 100644
--- a/Documentation/devicetree/bindings/usb/ti,usb8041.yaml
+++ b/Documentation/devicetree/bindings/usb/ti,usb8041.yaml
@@ -4,7 +4,7 @@
 $id: http://devicetree.org/schemas/usb/ti,usb8041.yaml#
 $schema: http://devicetree.org/meta-schemas/core.yaml#
 
-title: TI USB8041 and USB8044 USB 3.0 hub controllers
+title: TI TUSB8040A, USB8041 and USB8044 USB 3.0 hub controllers
 
 maintainers:
   - Alexander Stein <alexander.stein@ew.tq-group.com>
@@ -16,6 +16,10 @@ allOf:
 properties:
   compatible:
     enum:
+      - usb451,8040
+      - usb451,8041
+      - usb451,8042
+      - usb451,8043
       - usb451,8140
       - usb451,8142
       - usb451,8440

-- 
2.47.3


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

* [PATCH 2/8] dt-bindings: net: asix,ax88178: document the AX88179
  2026-08-10  0:42 [PATCH 0/8] usb: misc: onboard_usb_dev: support several devices Dmitry Baryshkov
  2026-08-10  0:42 ` [PATCH 1/8] dt-bindings: usb: ti,usb8041: document the TUSB8040A hub Dmitry Baryshkov
@ 2026-08-10  0:42 ` Dmitry Baryshkov
  2026-08-13  9:50   ` Krzysztof Kozlowski
  2026-08-10  0:42 ` [PATCH 3/8] dt-bindings: usb: document the Prolific PL2775 USB-SATA bridge Dmitry Baryshkov
                   ` (5 subsequent siblings)
  7 siblings, 1 reply; 13+ messages in thread
From: Dmitry Baryshkov @ 2026-08-10  0:42 UTC (permalink / raw)
  To: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Alexander Stein, Andrew Lunn, David S. Miller,
	Eric Dumazet, Jakub Kicinski, Paolo Abeni, Oleksij Rempel,
	Matthias Kaehlcke, Fabio Estevam
  Cc: linux-usb, devicetree, linux-kernel, netdev

The APQ8074 Dragonboard has an onboard ASIX AX88179 USB 3.0 Gigabit
Ethernet controller whose RESET_N pin is wired to a PMIC GPIO, so the
device has to be described in DT for the OS to release it from reset.

Add the AX88179 device ID (0b95:1790) to the ASIX USB Ethernet schema,
together with the reset-gpios and vdd-supply properties used by
hard-wired onboard devices.

Assisted-by: Claude:claude-fable-5
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
---
 Documentation/devicetree/bindings/net/asix,ax88178.yaml | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/Documentation/devicetree/bindings/net/asix,ax88178.yaml b/Documentation/devicetree/bindings/net/asix,ax88178.yaml
index 03341b7438d5..48a2ee883c15 100644
--- a/Documentation/devicetree/bindings/net/asix,ax88178.yaml
+++ b/Documentation/devicetree/bindings/net/asix,ax88178.yaml
@@ -4,7 +4,7 @@
 $id: http://devicetree.org/schemas/net/asix,ax88178.yaml#
 $schema: http://devicetree.org/meta-schemas/core.yaml#
 
-title: ASIX AX88172/AX88772 USB Ethernet Controllers
+title: ASIX AX88172/AX88772/AX88179 USB Ethernet Controllers
 
 maintainers:
   - Oleksij Rempel <o.rempel@pengutronix.de>
@@ -22,6 +22,7 @@ properties:
           - usbb95,1720   # ASIX AX88172
           - usbb95,172a   # ASIX AX88172A
           - usbb95,1780   # ASIX AX88178
+          - usbb95,1790   # ASIX AX88179
           - usbb95,7720   # ASIX AX88772
           - usbb95,772a   # ASIX AX88772A
           - usbb95,772b   # ASIX AX88772B
@@ -30,6 +31,13 @@ properties:
   reg:
     maxItems: 1
 
+  reset-gpios:
+    description: GPIO connected to the RESET_N pin.
+    maxItems: 1
+
+  vdd-supply:
+    description: Power supply of the controller.
+
   local-mac-address: true
   mac-address: true
 

-- 
2.47.3


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

* [PATCH 3/8] dt-bindings: usb: document the Prolific PL2775 USB-SATA bridge
  2026-08-10  0:42 [PATCH 0/8] usb: misc: onboard_usb_dev: support several devices Dmitry Baryshkov
  2026-08-10  0:42 ` [PATCH 1/8] dt-bindings: usb: ti,usb8041: document the TUSB8040A hub Dmitry Baryshkov
  2026-08-10  0:42 ` [PATCH 2/8] dt-bindings: net: asix,ax88178: document the AX88179 Dmitry Baryshkov
@ 2026-08-10  0:42 ` Dmitry Baryshkov
  2026-08-13  9:53   ` Krzysztof Kozlowski
  2026-08-10  0:42 ` [PATCH 4/8] dt-bindings: usb: microchip,usb2514: document the USB4604 hub Dmitry Baryshkov
                   ` (4 subsequent siblings)
  7 siblings, 1 reply; 13+ messages in thread
From: Dmitry Baryshkov @ 2026-08-10  0:42 UTC (permalink / raw)
  To: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Alexander Stein, Andrew Lunn, David S. Miller,
	Eric Dumazet, Jakub Kicinski, Paolo Abeni, Oleksij Rempel,
	Matthias Kaehlcke, Fabio Estevam
  Cc: linux-usb, devicetree, linux-kernel, netdev

The APQ8074 Dragonboard has an onboard Prolific PL2775 USB 3.0 to SATA
bridge whose RESET_N pin is wired to a PMIC GPIO, so the device has to
be described in DT for the OS to release it from reset.

Add a schema for the hard-wired PL2775 (067b:2775) with the
reset-gpios and vdd-supply properties used by onboard USB devices.

Assisted-by: Claude:claude-fable-5
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
---
 .../devicetree/bindings/usb/prolific,pl2775.yaml   | 51 ++++++++++++++++++++++
 1 file changed, 51 insertions(+)

diff --git a/Documentation/devicetree/bindings/usb/prolific,pl2775.yaml b/Documentation/devicetree/bindings/usb/prolific,pl2775.yaml
new file mode 100644
index 000000000000..5af8b4f5ee64
--- /dev/null
+++ b/Documentation/devicetree/bindings/usb/prolific,pl2775.yaml
@@ -0,0 +1,51 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/usb/prolific,pl2775.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Prolific PL2775 USB 3.0 to SATA bridge
+
+maintainers:
+  - Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
+
+description:
+  Device tree properties for hard wired Prolific PL2775 USB 3.0 to
+  SATA bridge controllers.
+
+allOf:
+  - $ref: usb-device.yaml#
+
+properties:
+  compatible:
+    const: usb67b,2775
+
+  reg: true
+
+  reset-gpios:
+    description: GPIO connected to the RESET_N pin.
+    maxItems: 1
+
+  vdd-supply:
+    description: Power supply of the controller.
+
+required:
+  - compatible
+  - reg
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+
+    usb {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        device@1 {
+            compatible = "usb67b,2775";
+            reg = <1>;
+            reset-gpios = <&gpio1 11 GPIO_ACTIVE_LOW>;
+        };
+    };

-- 
2.47.3


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

* [PATCH 4/8] dt-bindings: usb: microchip,usb2514: document the USB4604 hub
  2026-08-10  0:42 [PATCH 0/8] usb: misc: onboard_usb_dev: support several devices Dmitry Baryshkov
                   ` (2 preceding siblings ...)
  2026-08-10  0:42 ` [PATCH 3/8] dt-bindings: usb: document the Prolific PL2775 USB-SATA bridge Dmitry Baryshkov
@ 2026-08-10  0:42 ` Dmitry Baryshkov
  2026-08-13  9:53   ` Krzysztof Kozlowski
  2026-08-10  0:42 ` [PATCH 5/8] usb: misc: onboard_usb_dev: add support for the TI TUSB8040A hub Dmitry Baryshkov
                   ` (3 subsequent siblings)
  7 siblings, 1 reply; 13+ messages in thread
From: Dmitry Baryshkov @ 2026-08-10  0:42 UTC (permalink / raw)
  To: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Alexander Stein, Andrew Lunn, David S. Miller,
	Eric Dumazet, Jakub Kicinski, Paolo Abeni, Oleksij Rempel,
	Matthias Kaehlcke, Fabio Estevam
  Cc: linux-usb, devicetree, linux-kernel, netdev

The SMSC/Microchip USB4604 HSIC hub on the APQ8074 Dragonboard has its
RESET_N pin wired to a PMIC GPIO. On this board the hub SMBus
configuration interface is not usable (the bus pull-ups are referenced
to 1.8V while the hub samples the strap against its 3.3V rail), so the
hub runs in standalone mode and only needs its reset released, which
has to be described in DT.

Document the USB4604 device ID (0424:4604, the ID used when the
upstream port operates in HSIC mode) in the onboard hub schema.

Assisted-by: Claude:claude-fable-5
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
---
 Documentation/devicetree/bindings/usb/microchip,usb2514.yaml | 1 +
 1 file changed, 1 insertion(+)

diff --git a/Documentation/devicetree/bindings/usb/microchip,usb2514.yaml b/Documentation/devicetree/bindings/usb/microchip,usb2514.yaml
index 4e3901efed3f..cbff9a350857 100644
--- a/Documentation/devicetree/bindings/usb/microchip,usb2514.yaml
+++ b/Documentation/devicetree/bindings/usb/microchip,usb2514.yaml
@@ -17,6 +17,7 @@ properties:
           - usb424,2417
           - usb424,2514
           - usb424,2517
+          - usb424,4604
       - items:
           - enum:
               - usb424,2512

-- 
2.47.3


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

* [PATCH 5/8] usb: misc: onboard_usb_dev: add support for the TI TUSB8040A hub
  2026-08-10  0:42 [PATCH 0/8] usb: misc: onboard_usb_dev: support several devices Dmitry Baryshkov
                   ` (3 preceding siblings ...)
  2026-08-10  0:42 ` [PATCH 4/8] dt-bindings: usb: microchip,usb2514: document the USB4604 hub Dmitry Baryshkov
@ 2026-08-10  0:42 ` Dmitry Baryshkov
  2026-08-10  0:42 ` [PATCH 6/8] usb: misc: onboard_usb_dev: add support for the ASIX AX88179 Dmitry Baryshkov
                   ` (2 subsequent siblings)
  7 siblings, 0 replies; 13+ messages in thread
From: Dmitry Baryshkov @ 2026-08-10  0:42 UTC (permalink / raw)
  To: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Alexander Stein, Andrew Lunn, David S. Miller,
	Eric Dumazet, Jakub Kicinski, Paolo Abeni, Oleksij Rempel,
	Matthias Kaehlcke, Fabio Estevam
  Cc: linux-usb, devicetree, linux-kernel, netdev

The TI TUSB8040A four-port USB 3.0 hub has no onboard-usb-dev support,
so its reset GPIO and power supply cannot be managed by the kernel.

Add the device IDs, reusing the TUSB8020B platform data: the power-on
and reset timings match. Cover both the datasheet default product IDs
(0451:8040 / 0451:8042) and the EEPROM-overridden 0451:8041 /
0451:8043 pair used e.g. on the APQ8074 Dragonboard.

Assisted-by: Claude:claude-fable-5
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
---
 drivers/usb/misc/onboard_usb_dev.c | 4 ++++
 drivers/usb/misc/onboard_usb_dev.h | 4 ++++
 2 files changed, 8 insertions(+)

diff --git a/drivers/usb/misc/onboard_usb_dev.c b/drivers/usb/misc/onboard_usb_dev.c
index 11508ed4df25..37ebbccce35b 100644
--- a/drivers/usb/misc/onboard_usb_dev.c
+++ b/drivers/usb/misc/onboard_usb_dev.c
@@ -681,6 +681,10 @@ static const struct usb_device_id onboard_dev_id_table[] = {
 	{ USB_DEVICE(VENDOR_ID_TERMINUS, 0x0101) }, /* Terminus FE1.1s 2.0 HUB */
 	{ USB_DEVICE(VENDOR_ID_TI, 0x8025) }, /* TI USB8020B 3.0 HUB */
 	{ USB_DEVICE(VENDOR_ID_TI, 0x8027) }, /* TI USB8020B 2.0 HUB */
+	{ USB_DEVICE(VENDOR_ID_TI, 0x8040) }, /* TI TUSB8040A 3.0 HUB */
+	{ USB_DEVICE(VENDOR_ID_TI, 0x8041) }, /* TI TUSB8040A 3.0 HUB (custom PID) */
+	{ USB_DEVICE(VENDOR_ID_TI, 0x8042) }, /* TI TUSB8040A 2.0 HUB */
+	{ USB_DEVICE(VENDOR_ID_TI, 0x8043) }, /* TI TUSB8040A 2.0 HUB (custom PID) */
 	{ USB_DEVICE(VENDOR_ID_TI, 0x8140) }, /* TI USB8041 3.0 HUB */
 	{ USB_DEVICE(VENDOR_ID_TI, 0x8142) }, /* TI USB8041 2.0 HUB */
 	{ USB_DEVICE(VENDOR_ID_TI, 0x8440) }, /* TI USB8044 3.0 HUB */
diff --git a/drivers/usb/misc/onboard_usb_dev.h b/drivers/usb/misc/onboard_usb_dev.h
index 3523f8f8a149..7961b9ffa99e 100644
--- a/drivers/usb/misc/onboard_usb_dev.h
+++ b/drivers/usb/misc/onboard_usb_dev.h
@@ -143,6 +143,10 @@ static const struct of_device_id onboard_dev_match[] = {
 	{ .compatible = "usb424,5744", .data = &microchip_usb5744_data, },
 	{ .compatible = "usb451,8025", .data = &ti_tusb8020b_data, },
 	{ .compatible = "usb451,8027", .data = &ti_tusb8020b_data, },
+	{ .compatible = "usb451,8040", .data = &ti_tusb8020b_data, },
+	{ .compatible = "usb451,8041", .data = &ti_tusb8020b_data, },
+	{ .compatible = "usb451,8042", .data = &ti_tusb8020b_data, },
+	{ .compatible = "usb451,8043", .data = &ti_tusb8020b_data, },
 	{ .compatible = "usb451,8140", .data = &ti_tusb8020b_data, },
 	{ .compatible = "usb451,8142", .data = &ti_tusb8020b_data, },
 	{ .compatible = "usb451,8440", .data = &ti_tusb8020b_data, },

-- 
2.47.3


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

* [PATCH 6/8] usb: misc: onboard_usb_dev: add support for the ASIX AX88179
  2026-08-10  0:42 [PATCH 0/8] usb: misc: onboard_usb_dev: support several devices Dmitry Baryshkov
                   ` (4 preceding siblings ...)
  2026-08-10  0:42 ` [PATCH 5/8] usb: misc: onboard_usb_dev: add support for the TI TUSB8040A hub Dmitry Baryshkov
@ 2026-08-10  0:42 ` Dmitry Baryshkov
  2026-08-10  0:42 ` [PATCH 7/8] usb: misc: onboard_usb_dev: add support for the Prolific PL2775 Dmitry Baryshkov
  2026-08-10  0:42 ` [PATCH 8/8] usb: misc: onboard_usb_dev: add support for the SMSC USB4604 Dmitry Baryshkov
  7 siblings, 0 replies; 13+ messages in thread
From: Dmitry Baryshkov @ 2026-08-10  0:42 UTC (permalink / raw)
  To: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Alexander Stein, Andrew Lunn, David S. Miller,
	Eric Dumazet, Jakub Kicinski, Paolo Abeni, Oleksij Rempel,
	Matthias Kaehlcke, Fabio Estevam
  Cc: linux-usb, devicetree, linux-kernel, netdev

The ASIX AX88179 USB 3.0 Gigabit Ethernet controller on the APQ8074
Dragonboard has its RESET_N pin wired to a PMIC GPIO, so it stays in
reset until the OS releases it and the device never enumerates.

Add the AX88179 (0b95:1790) to the onboard USB device driver as a
non-hub device with a single vdd supply and a conservative 1 ms reset
pulse.

Assisted-by: Claude:claude-fable-5
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
---
 drivers/usb/misc/onboard_usb_dev.c | 2 ++
 drivers/usb/misc/onboard_usb_dev.h | 8 ++++++++
 2 files changed, 10 insertions(+)

diff --git a/drivers/usb/misc/onboard_usb_dev.c b/drivers/usb/misc/onboard_usb_dev.c
index 37ebbccce35b..8139fe3f2cf5 100644
--- a/drivers/usb/misc/onboard_usb_dev.c
+++ b/drivers/usb/misc/onboard_usb_dev.c
@@ -564,6 +564,7 @@ static struct platform_driver onboard_dev_driver = {
 
 /************************** USB driver **************************/
 
+#define VENDOR_ID_ASIX		0x0b95
 #define VENDOR_ID_BISON		0x5986
 #define VENDOR_ID_CORECHIPS	0x3431
 #define VENDOR_ID_CYPRESS	0x04b4
@@ -650,6 +651,7 @@ static void onboard_dev_usbdev_disconnect(struct usb_device *udev)
 }
 
 static const struct usb_device_id onboard_dev_id_table[] = {
+	{ USB_DEVICE(VENDOR_ID_ASIX, 0x1790) }, /* AX88179 USB 3.0 Gigabit Ethernet */
 	{ USB_DEVICE(VENDOR_ID_BISON, 0x1198) }, /* Bison Electronics Inc. Integrated Camera */
 	{ USB_DEVICE(VENDOR_ID_CORECHIPS, 0x6241) }, /* SL6341 2.0 HUB */
 	{ USB_DEVICE(VENDOR_ID_CORECHIPS, 0x6341) }, /* SL6341 3.0 HUB */
diff --git a/drivers/usb/misc/onboard_usb_dev.h b/drivers/usb/misc/onboard_usb_dev.h
index 7961b9ffa99e..27efccbe2286 100644
--- a/drivers/usb/misc/onboard_usb_dev.h
+++ b/drivers/usb/misc/onboard_usb_dev.h
@@ -59,6 +59,13 @@ static const struct onboard_dev_pdata realtek_rtl8188etv_data = {
 	.is_hub = false,
 };
 
+static const struct onboard_dev_pdata asix_ax88179_data = {
+	.reset_us = 1000,
+	.num_supplies = 1,
+	.supply_names = { "vdd" },
+	.is_hub = false,
+};
+
 static const struct onboard_dev_pdata ti_tusb8020b_data = {
 	.reset_us = 3000,
 	.num_supplies = 1,
@@ -159,6 +166,7 @@ static const struct of_device_id onboard_dev_match[] = {
 	{ .compatible = "usb5e3,620", .data = &genesys_gl852g_data, },
 	{ .compatible = "usb5e3,625", .data = &genesys_gl3590_data, },
 	{ .compatible = "usb5e3,626", .data = &genesys_gl852g_data, },
+	{ .compatible = "usbb95,1790", .data = &asix_ax88179_data, },
 	{ .compatible = "usbbda,179", .data = &realtek_rtl8188etv_data, },
 	{ .compatible = "usbbda,411", .data = &realtek_rts5411_data, },
 	{ .compatible = "usbbda,5411", .data = &realtek_rts5411_data, },

-- 
2.47.3


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

* [PATCH 7/8] usb: misc: onboard_usb_dev: add support for the Prolific PL2775
  2026-08-10  0:42 [PATCH 0/8] usb: misc: onboard_usb_dev: support several devices Dmitry Baryshkov
                   ` (5 preceding siblings ...)
  2026-08-10  0:42 ` [PATCH 6/8] usb: misc: onboard_usb_dev: add support for the ASIX AX88179 Dmitry Baryshkov
@ 2026-08-10  0:42 ` Dmitry Baryshkov
  2026-08-10  0:42 ` [PATCH 8/8] usb: misc: onboard_usb_dev: add support for the SMSC USB4604 Dmitry Baryshkov
  7 siblings, 0 replies; 13+ messages in thread
From: Dmitry Baryshkov @ 2026-08-10  0:42 UTC (permalink / raw)
  To: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Alexander Stein, Andrew Lunn, David S. Miller,
	Eric Dumazet, Jakub Kicinski, Paolo Abeni, Oleksij Rempel,
	Matthias Kaehlcke, Fabio Estevam
  Cc: linux-usb, devicetree, linux-kernel, netdev

The Prolific PL2775 USB 3.0 to SATA bridge on the APQ8074 Dragonboard
has its RESET_N pin wired to a PMIC GPIO, so it stays in reset until
the OS releases it and the device never enumerates.

Add the PL2775 (067b:2775) to the onboard USB device driver as a
non-hub device with a single vdd supply and a conservative 1 ms reset
pulse.

Assisted-by: Claude:claude-fable-5
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
---
 drivers/usb/misc/onboard_usb_dev.c | 2 ++
 drivers/usb/misc/onboard_usb_dev.h | 8 ++++++++
 2 files changed, 10 insertions(+)

diff --git a/drivers/usb/misc/onboard_usb_dev.c b/drivers/usb/misc/onboard_usb_dev.c
index 8139fe3f2cf5..6299c0539212 100644
--- a/drivers/usb/misc/onboard_usb_dev.c
+++ b/drivers/usb/misc/onboard_usb_dev.c
@@ -571,6 +571,7 @@ static struct platform_driver onboard_dev_driver = {
 #define VENDOR_ID_GENESYS	0x05e3
 #define VENDOR_ID_MICROCHIP	0x0424
 #define VENDOR_ID_PARADE	0x1da0
+#define VENDOR_ID_PROLIFIC	0x067b
 #define VENDOR_ID_REALTEK	0x0bda
 #define VENDOR_ID_TERMINUS	0x1a40
 #define VENDOR_ID_TI		0x0451
@@ -675,6 +676,7 @@ static const struct usb_device_id onboard_dev_id_table[] = {
 	{ USB_DEVICE(VENDOR_ID_MICROCHIP, 0x5744) }, /* USB5744 USB 3.0 HUB */
 	{ USB_DEVICE(VENDOR_ID_PARADE, 0x5511) }, /* PS5511 USB 3.2 */
 	{ USB_DEVICE(VENDOR_ID_PARADE, 0x55a1) }, /* PS5511 USB 2.0 */
+	{ USB_DEVICE(VENDOR_ID_PROLIFIC, 0x2775) }, /* PL2775 USB 3.0 SATA bridge */
 	{ USB_DEVICE(VENDOR_ID_REALTEK, 0x0411) }, /* RTS5411 USB 3.1 HUB */
 	{ USB_DEVICE(VENDOR_ID_REALTEK, 0x5411) }, /* RTS5411 USB 2.1 HUB */
 	{ USB_DEVICE(VENDOR_ID_REALTEK, 0x0414) }, /* RTS5414 USB 3.2 HUB */
diff --git a/drivers/usb/misc/onboard_usb_dev.h b/drivers/usb/misc/onboard_usb_dev.h
index 27efccbe2286..11425bdc5a63 100644
--- a/drivers/usb/misc/onboard_usb_dev.h
+++ b/drivers/usb/misc/onboard_usb_dev.h
@@ -66,6 +66,13 @@ static const struct onboard_dev_pdata asix_ax88179_data = {
 	.is_hub = false,
 };
 
+static const struct onboard_dev_pdata prolific_pl2775_data = {
+	.reset_us = 1000,
+	.num_supplies = 1,
+	.supply_names = { "vdd" },
+	.is_hub = false,
+};
+
 static const struct onboard_dev_pdata ti_tusb8020b_data = {
 	.reset_us = 3000,
 	.num_supplies = 1,
@@ -166,6 +173,7 @@ static const struct of_device_id onboard_dev_match[] = {
 	{ .compatible = "usb5e3,620", .data = &genesys_gl852g_data, },
 	{ .compatible = "usb5e3,625", .data = &genesys_gl3590_data, },
 	{ .compatible = "usb5e3,626", .data = &genesys_gl852g_data, },
+	{ .compatible = "usb67b,2775", .data = &prolific_pl2775_data, },
 	{ .compatible = "usbb95,1790", .data = &asix_ax88179_data, },
 	{ .compatible = "usbbda,179", .data = &realtek_rtl8188etv_data, },
 	{ .compatible = "usbbda,411", .data = &realtek_rts5411_data, },

-- 
2.47.3


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

* [PATCH 8/8] usb: misc: onboard_usb_dev: add support for the SMSC USB4604
  2026-08-10  0:42 [PATCH 0/8] usb: misc: onboard_usb_dev: support several devices Dmitry Baryshkov
                   ` (6 preceding siblings ...)
  2026-08-10  0:42 ` [PATCH 7/8] usb: misc: onboard_usb_dev: add support for the Prolific PL2775 Dmitry Baryshkov
@ 2026-08-10  0:42 ` Dmitry Baryshkov
  7 siblings, 0 replies; 13+ messages in thread
From: Dmitry Baryshkov @ 2026-08-10  0:42 UTC (permalink / raw)
  To: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Alexander Stein, Andrew Lunn, David S. Miller,
	Eric Dumazet, Jakub Kicinski, Paolo Abeni, Oleksij Rempel,
	Matthias Kaehlcke, Fabio Estevam
  Cc: linux-usb, devicetree, linux-kernel, netdev

The SMSC USB4604 HSIC hub on the APQ8074 Dragonboard has its RESET_N
pin wired to a PMIC GPIO, so it stays in reset until the OS releases
it. The release also has to happen while the HSIC host controller is
up: HSIC has no connect detection comparable to USB 2.0, so the
one-shot connect signaled by the hub after reset deassertion is lost
if the controller is not yet running.

Add the USB4604 (0424:4604, the ID used when the upstream port is in
HSIC mode) to the onboard USB device driver, which releases the reset
when the parent host controller probes.

Assisted-by: Claude:claude-fable-5
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
---
 drivers/usb/misc/onboard_usb_dev.c | 1 +
 drivers/usb/misc/onboard_usb_dev.h | 8 ++++++++
 2 files changed, 9 insertions(+)

diff --git a/drivers/usb/misc/onboard_usb_dev.c b/drivers/usb/misc/onboard_usb_dev.c
index 6299c0539212..0eeb9713f5a3 100644
--- a/drivers/usb/misc/onboard_usb_dev.c
+++ b/drivers/usb/misc/onboard_usb_dev.c
@@ -673,6 +673,7 @@ static const struct usb_device_id onboard_dev_id_table[] = {
 	{ USB_DEVICE(VENDOR_ID_MICROCHIP, 0x2514) }, /* USB2514B USB 2.0 HUB */
 	{ USB_DEVICE(VENDOR_ID_MICROCHIP, 0x2517) }, /* USB2517 USB 2.0 HUB */
 	{ USB_DEVICE(VENDOR_ID_MICROCHIP, 0x2744) }, /* USB5744 USB 2.0 HUB */
+	{ USB_DEVICE(VENDOR_ID_MICROCHIP, 0x4604) }, /* USB4604 HSIC HUB */
 	{ USB_DEVICE(VENDOR_ID_MICROCHIP, 0x5744) }, /* USB5744 USB 3.0 HUB */
 	{ USB_DEVICE(VENDOR_ID_PARADE, 0x5511) }, /* PS5511 USB 3.2 */
 	{ USB_DEVICE(VENDOR_ID_PARADE, 0x55a1) }, /* PS5511 USB 2.0 */
diff --git a/drivers/usb/misc/onboard_usb_dev.h b/drivers/usb/misc/onboard_usb_dev.h
index 11425bdc5a63..9e320b042a86 100644
--- a/drivers/usb/misc/onboard_usb_dev.h
+++ b/drivers/usb/misc/onboard_usb_dev.h
@@ -30,6 +30,13 @@ static const struct onboard_dev_pdata microchip_usb2514_data = {
 	.is_hub = true,
 };
 
+static const struct onboard_dev_pdata microchip_usb4604_data = {
+	.reset_us = 3000,
+	.num_supplies = 1,
+	.supply_names = { "vdd" },
+	.is_hub = true,
+};
+
 static const struct onboard_dev_pdata microchip_usb5744_data = {
 	.reset_us = 0,
 	.power_on_delay_us = 10000,
@@ -154,6 +161,7 @@ static const struct of_device_id onboard_dev_match[] = {
 	{ .compatible = "usb424,2514", .data = &microchip_usb2514_data, },
 	{ .compatible = "usb424,2517", .data = &microchip_usb424_data, },
 	{ .compatible = "usb424,2744", .data = &microchip_usb5744_data, },
+	{ .compatible = "usb424,4604", .data = &microchip_usb4604_data, },
 	{ .compatible = "usb424,5744", .data = &microchip_usb5744_data, },
 	{ .compatible = "usb451,8025", .data = &ti_tusb8020b_data, },
 	{ .compatible = "usb451,8027", .data = &ti_tusb8020b_data, },

-- 
2.47.3


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

* Re: [PATCH 1/8] dt-bindings: usb: ti,usb8041: document the TUSB8040A hub
  2026-08-10  0:42 ` [PATCH 1/8] dt-bindings: usb: ti,usb8041: document the TUSB8040A hub Dmitry Baryshkov
@ 2026-08-13  9:45   ` Krzysztof Kozlowski
  0 siblings, 0 replies; 13+ messages in thread
From: Krzysztof Kozlowski @ 2026-08-13  9:45 UTC (permalink / raw)
  To: Dmitry Baryshkov
  Cc: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Alexander Stein, Andrew Lunn, David S. Miller,
	Eric Dumazet, Jakub Kicinski, Paolo Abeni, Oleksij Rempel,
	Matthias Kaehlcke, Fabio Estevam, linux-usb, devicetree,
	linux-kernel, netdev

On Mon, Aug 10, 2026 at 03:42:32AM +0300, Dmitry Baryshkov wrote:
> The TI TUSB8040A four-port USB 3.0 hub is not documented, so onboard
> device nodes for it cannot be validated.
> 
> Document it next to its TUSB8041 sibling: the same reset-gpios/peer-hub
> properties apply. Besides the datasheet default 0451:8040 / 0451:8042
> IDs, also document 0451:8041 / 0451:8043: the configuration EEPROM can
> override the product IDs, and e.g. the APQ8074 Dragonboard programs
> these values, as seen when booting the vendor image.
> 
> Assisted-by: Claude:claude-fable-5
> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
> ---
>  Documentation/devicetree/bindings/usb/ti,usb8041.yaml | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)

Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>

Best regards,
Krzysztof


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

* Re: [PATCH 2/8] dt-bindings: net: asix,ax88178: document the AX88179
  2026-08-10  0:42 ` [PATCH 2/8] dt-bindings: net: asix,ax88178: document the AX88179 Dmitry Baryshkov
@ 2026-08-13  9:50   ` Krzysztof Kozlowski
  0 siblings, 0 replies; 13+ messages in thread
From: Krzysztof Kozlowski @ 2026-08-13  9:50 UTC (permalink / raw)
  To: Dmitry Baryshkov
  Cc: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Alexander Stein, Andrew Lunn, David S. Miller,
	Eric Dumazet, Jakub Kicinski, Paolo Abeni, Oleksij Rempel,
	Matthias Kaehlcke, Fabio Estevam, linux-usb, devicetree,
	linux-kernel, netdev

On Mon, Aug 10, 2026 at 03:42:33AM +0300, Dmitry Baryshkov wrote:
> The APQ8074 Dragonboard has an onboard ASIX AX88179 USB 3.0 Gigabit
> Ethernet controller whose RESET_N pin is wired to a PMIC GPIO, so the
> device has to be described in DT for the OS to release it from reset.

Would be nice if you checked other devices from this schema if they have
reset-gpios as well. I think they do (confirmed on AX88772 and
AX88772A), but having this explicit would spare us from validating it by
outselves.

Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>

Best regards,
Krzysztof


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

* Re: [PATCH 3/8] dt-bindings: usb: document the Prolific PL2775 USB-SATA bridge
  2026-08-10  0:42 ` [PATCH 3/8] dt-bindings: usb: document the Prolific PL2775 USB-SATA bridge Dmitry Baryshkov
@ 2026-08-13  9:53   ` Krzysztof Kozlowski
  0 siblings, 0 replies; 13+ messages in thread
From: Krzysztof Kozlowski @ 2026-08-13  9:53 UTC (permalink / raw)
  To: Dmitry Baryshkov
  Cc: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Alexander Stein, Andrew Lunn, David S. Miller,
	Eric Dumazet, Jakub Kicinski, Paolo Abeni, Oleksij Rempel,
	Matthias Kaehlcke, Fabio Estevam, linux-usb, devicetree,
	linux-kernel, netdev

On Mon, Aug 10, 2026 at 03:42:34AM +0300, Dmitry Baryshkov wrote:
> The APQ8074 Dragonboard has an onboard Prolific PL2775 USB 3.0 to SATA
> bridge whose RESET_N pin is wired to a PMIC GPIO, so the device has to
> be described in DT for the OS to release it from reset.
> 
> Add a schema for the hard-wired PL2775 (067b:2775) with the
> reset-gpios and vdd-supply properties used by onboard USB devices.
> 
> Assisted-by: Claude:claude-fable-5
> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
> ---
>  .../devicetree/bindings/usb/prolific,pl2775.yaml   | 51 ++++++++++++++++++++++
>  1 file changed, 51 insertions(+)

Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>

Best regards,
Krzysztof


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

* Re: [PATCH 4/8] dt-bindings: usb: microchip,usb2514: document the USB4604 hub
  2026-08-10  0:42 ` [PATCH 4/8] dt-bindings: usb: microchip,usb2514: document the USB4604 hub Dmitry Baryshkov
@ 2026-08-13  9:53   ` Krzysztof Kozlowski
  0 siblings, 0 replies; 13+ messages in thread
From: Krzysztof Kozlowski @ 2026-08-13  9:53 UTC (permalink / raw)
  To: Dmitry Baryshkov
  Cc: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Alexander Stein, Andrew Lunn, David S. Miller,
	Eric Dumazet, Jakub Kicinski, Paolo Abeni, Oleksij Rempel,
	Matthias Kaehlcke, Fabio Estevam, linux-usb, devicetree,
	linux-kernel, netdev

On Mon, Aug 10, 2026 at 03:42:35AM +0300, Dmitry Baryshkov wrote:
> The SMSC/Microchip USB4604 HSIC hub on the APQ8074 Dragonboard has its
> RESET_N pin wired to a PMIC GPIO. On this board the hub SMBus
> configuration interface is not usable (the bus pull-ups are referenced
> to 1.8V while the hub samples the strap against its 3.3V rail), so the
> hub runs in standalone mode and only needs its reset released, which
> has to be described in DT.
> 
> Document the USB4604 device ID (0424:4604, the ID used when the
> upstream port operates in HSIC mode) in the onboard hub schema.
> 
> Assisted-by: Claude:claude-fable-5
> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
> ---

Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>

Best regards,
Krzysztof


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

end of thread, other threads:[~2026-08-13  9:53 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-10  0:42 [PATCH 0/8] usb: misc: onboard_usb_dev: support several devices Dmitry Baryshkov
2026-08-10  0:42 ` [PATCH 1/8] dt-bindings: usb: ti,usb8041: document the TUSB8040A hub Dmitry Baryshkov
2026-08-13  9:45   ` Krzysztof Kozlowski
2026-08-10  0:42 ` [PATCH 2/8] dt-bindings: net: asix,ax88178: document the AX88179 Dmitry Baryshkov
2026-08-13  9:50   ` Krzysztof Kozlowski
2026-08-10  0:42 ` [PATCH 3/8] dt-bindings: usb: document the Prolific PL2775 USB-SATA bridge Dmitry Baryshkov
2026-08-13  9:53   ` Krzysztof Kozlowski
2026-08-10  0:42 ` [PATCH 4/8] dt-bindings: usb: microchip,usb2514: document the USB4604 hub Dmitry Baryshkov
2026-08-13  9:53   ` Krzysztof Kozlowski
2026-08-10  0:42 ` [PATCH 5/8] usb: misc: onboard_usb_dev: add support for the TI TUSB8040A hub Dmitry Baryshkov
2026-08-10  0:42 ` [PATCH 6/8] usb: misc: onboard_usb_dev: add support for the ASIX AX88179 Dmitry Baryshkov
2026-08-10  0:42 ` [PATCH 7/8] usb: misc: onboard_usb_dev: add support for the Prolific PL2775 Dmitry Baryshkov
2026-08-10  0:42 ` [PATCH 8/8] usb: misc: onboard_usb_dev: add support for the SMSC USB4604 Dmitry Baryshkov

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