]> git.ipfire.org Git - thirdparty/u-boot.git/commitdiff
usb: onboard-hub: Add support for Cypress HX3 family
authorLukasz Czechowski <lukasz.czechowski@thaumatec.com>
Tue, 22 Jul 2025 09:55:37 +0000 (11:55 +0200)
committerTom Rini <trini@konsulko.com>
Wed, 30 Jul 2025 13:57:17 +0000 (07:57 -0600)
The HX3 is a family of USB3.0 hub controllers that comes in
different variants: CYUSB330x/CYUSB331x/CYUSB332x/CYUSB230x.
To support this hub, controlling of reset pin and two
power supplies is required.
The reset time is set to 10ms, based on the datasheet [1].
Power-on delay time is not required, so it is set to 0.
The compatible strings added to of_match table are
compliant with usb/cypress,hx3.yaml bindings.

[1] https://www.infineon.com/dgdl/Infineon-HX3_USB_3_0_Hub_Consumer_Industrial-DataSheet-v22_00-EN.pdf?fileId=8ac78c8c7d0d8da4017d0ecb53f644b8

Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
Signed-off-by: Lukasz Czechowski <lukasz.czechowski@thaumatec.com>
common/usb_onboard_hub.c

index dbe4c3cf9b8320edb8a72c00c34e720d00b23daf..805b2ccbc0097a746cad26c245860fe98f3d66c3 100644 (file)
@@ -272,6 +272,12 @@ static const struct onboard_hub_data usb5744_data = {
        .supply_names = { "vdd-supply" },
 };
 
+static const struct onboard_hub_data usbhx3_data = {
+       .reset_us = 10000,
+       .num_supplies = 2,
+       .supply_names = { "vdd-supply", "vdd2-supply" },
+};
+
 static const struct udevice_id usb_onboard_hub_ids[] = {
        /* Use generic usbVID,PID dt-bindings (usb-device.yaml) */
        {       .compatible = "usb424,2514",    /* USB2514B USB 2.0 */
@@ -282,7 +288,14 @@ static const struct udevice_id usb_onboard_hub_ids[] = {
        }, {
                .compatible = "usb424,5744",    /* USB5744 USB 3.0 */
                .data = (ulong)&usb5744_data,
-       }
+       }, {
+               .compatible = "usb4b4,6504",    /* Cypress HX3 USB 3.0 */
+               .data = (ulong)&usbhx3_data,
+       }, {
+               .compatible = "usb4b4,6506",    /* Cypress HX3 USB 2.0 */
+               .data = (ulong)&usbhx3_data,
+       },
+       { /* sentinel */ }
 };
 
 U_BOOT_DRIVER(usb_onboard_hub) = {