[PATCH 1/3] usb: onboard-hub: add driver to manage onboard hub supplies

Marek Vasut marex at denx.de
Thu Jan 12 17:24:55 CET 2023


On 12/12/22 11:44, Fabrice Gasnier wrote:
> The main issue the driver addresses is that a USB hub needs to be
> powered before it can be discovered. This is often solved by using
> "regulator-always-on".
> 
> This driver is inspired by the Linux v6.1 driver. It only enables (or
> disables) the hub vdd (3v3) supply, so it can be enumerated.
> Scanning of the device tree is done in a similar manner to the sandbox,
> by the usb-uclass. DT part looks like:
> 
> &usbh_ehci {
> 	...
> 	#address-cells = <1>;
> 	#size-cells = <0>;
> 	hub at 1 {
> 		compatible = "usb424,2514";
> 		reg = <1>;
> 		vdd-supply = <&v3v3>;
> 	};
> };
> 
> When the bus gets probed, the driver is automatically probed/removed from
> the bus tree, as an example on stm32:
> STM32MP> usb start
> starting USB...
> STM32MP> dm tree
>   Class     Index  Probed  Driver                Name
> -----------------------------------------------------------
>   usb           0  [ + ]   ehci_generic          |   |-- usb at 5800d000
>   usb_hub       0  [ + ]   usb_onboard_hub       |   |   `-- hub at 1
>   usb_hub       1  [ + ]   usb_hub               |   |       `-- usb_hub
> 
> STM32MP> usb tree
> USB device tree:
>    1  Hub (480 Mb/s, 0mA)
>    |  u-boot EHCI Host Controller
>    |
>    +-2  Hub (480 Mb/s, 2mA)
> 
> Signed-off-by: Fabrice Gasnier <fabrice.gasnier at foss.st.com>

Reviewed-by: Marek Vasut <marex at denx.de>


More information about the U-Boot mailing list