The VL817 is a USB 3.1 Gen 1 hub controller with one supply and a reset
pin. Use the same reset time as Linux.

The Milk-V Jupiter and the Banana Pi BPI-F3 have one in front of all
their USB ports. Without this, U-Boot leaves the hub unpowered and in
reset, so no USB device is found.

Signed-off-by: Hung-Chun Tseng <[email protected]>
---
 common/usb_onboard_hub.c | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/common/usb_onboard_hub.c b/common/usb_onboard_hub.c
index 0684f7bfd..0ed70a6ba 100644
--- a/common/usb_onboard_hub.c
+++ b/common/usb_onboard_hub.c
@@ -289,9 +289,21 @@ static const struct onboard_hub_data usbhx3_data = {
        .supply_names = { "vdd-supply", "vdd2-supply" },
 };
 
+static const struct onboard_hub_data vialab_vl817_data = {
+       .reset_us = 10,
+       .num_supplies = 1,
+       .supply_names = { "vdd-supply" },
+};
+
 static const struct udevice_id usb_onboard_hub_ids[] = {
        /* Use generic usbVID,PID dt-bindings (usb-device.yaml) */
-       {       .compatible = "usb3431,6241",   /* Corechips SL6341 USB 2.0 */
+       {       .compatible = "usb2109,2817",   /* VIA Labs VL817 USB 2.0 */
+               .data = (ulong)&vialab_vl817_data,
+       }, {
+               .compatible = "usb2109,817",    /* VIA Labs VL817 USB 3.0 */
+               .data = (ulong)&vialab_vl817_data,
+       }, {
+               .compatible = "usb3431,6241",   /* Corechips SL6341 USB 2.0 */
                .data = (ulong)&corechips_sl6341_data,
        }, {
                .compatible = "usb3431,6341",   /* Corechips SL6341 USB 3.0 */
-- 
2.43.0

Reply via email to