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 Signed-off-by: Lukasz Czechowski <lukasz.czechow...@thaumatec.com> --- common/usb_onboard_hub.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/common/usb_onboard_hub.c b/common/usb_onboard_hub.c index b8fa38a4111d..8d2e40475b25 100644 --- a/common/usb_onboard_hub.c +++ b/common/usb_onboard_hub.c @@ -255,6 +255,13 @@ static const struct onboard_hub_data usb5744_data = { .supply_names = { "vdd-supply" }, }; +static const struct onboard_hub_data usbhx3_data = { + .power_on_delay_us = 0, + .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 */ @@ -265,7 +272,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) = { -- 2.43.0