diff options
| author | Tom Rini <[email protected]> | 2023-01-13 09:56:19 -0500 |
|---|---|---|
| committer | Tom Rini <[email protected]> | 2023-01-13 09:56:19 -0500 |
| commit | fe4c21de4fbf5756d354d2473ffc675e7596ccfb (patch) | |
| tree | 8778bb160f68af9551d31a904af939f093235131 /drivers/usb | |
| parent | b3f6e0ff1fe48fe56809ff85dc22c555bfc81035 (diff) | |
| parent | 0e86f813f474ea6f46c6055b579eba10930dffd6 (diff) | |
Merge tag 'u-boot-stm32-20230113' of https://source.denx.de/u-boot/custodians/u-boot-stm
Add driver to manage onboard hub supplies
Add calibration support for stm32-adc
Linux kernel v6.1 DT synchronization for stm32mp151.dtsi
stm32mp157a-dk1-scmi-u-boot.dtsi update
Add support of OP-TEE and STM32MP13x in bsec driver
ECDSA various fixes for stm32mp
Diffstat (limited to 'drivers/usb')
| -rw-r--r-- | drivers/usb/Kconfig | 10 | ||||
| -rw-r--r-- | drivers/usb/host/usb-uclass.c | 16 |
2 files changed, 20 insertions, 6 deletions
diff --git a/drivers/usb/Kconfig b/drivers/usb/Kconfig index 8efd4614573..ebe6bf94981 100644 --- a/drivers/usb/Kconfig +++ b/drivers/usb/Kconfig @@ -105,6 +105,16 @@ config USB_KEYBOARD Say Y here if you want to use a USB keyboard for U-Boot command line input. +config USB_ONBOARD_HUB + bool "Onboard USB hub support" + depends on DM_USB + ---help--- + Say Y here if you want to support discrete onboard USB hubs that + don't require an additional control bus for initialization, but + need some non-trivial form of initialization, such as enabling a + power regulator. An example for such a hub is the Microchip + USB2514B. + if USB_KEYBOARD config USB_KEYBOARD_FN_KEYS diff --git a/drivers/usb/host/usb-uclass.c b/drivers/usb/host/usb-uclass.c index 956e2a4e8e4..93c318c3d1d 100644 --- a/drivers/usb/host/usb-uclass.c +++ b/drivers/usb/host/usb-uclass.c @@ -271,19 +271,23 @@ int usb_init(void) /* init low_level USB */ printf("Bus %s: ", bus->name); -#ifdef CONFIG_SANDBOX /* * For Sandbox, we need scan the device tree each time when we * start the USB stack, in order to re-create the emulated USB * devices and bind drivers for them before we actually do the * driver probe. + * + * For USB onboard HUB, we need to do some non-trivial init + * like enabling a power regulator, before enumeration. */ - ret = dm_scan_fdt_dev(bus); - if (ret) { - printf("Sandbox USB device scan failed (%d)\n", ret); - continue; + if (IS_ENABLED(CONFIG_SANDBOX) || + IS_ENABLED(CONFIG_USB_ONBOARD_HUB)) { + ret = dm_scan_fdt_dev(bus); + if (ret) { + printf("USB device scan from fdt failed (%d)", ret); + continue; + } } -#endif ret = device_probe(bus); if (ret == -ENODEV) { /* No such device. */ |
