[PATCH v2 02/32] usb: dwc3-generic: support external vbus regulator

Neil Armstrong neil.armstrong at linaro.org
Thu Dec 21 17:14:38 CET 2023


On 19/12/2023 17:04, Caleb Connolly wrote:
> Add support for a vbus-supply regulator specified in devicetree. This
> provides generic support to avoid hardcoded GPIO configuration in board
> init code.
> 
> Signed-off-by: Caleb Connolly <caleb.connolly at linaro.org>
> ---
> This patch has no dependencies
> 
> Cc: Marek Vasut <marex at denx.de>
> ---
>   drivers/usb/dwc3/dwc3-generic.c | 12 ++++++++++++
>   1 file changed, 12 insertions(+)
> 
> diff --git a/drivers/usb/dwc3/dwc3-generic.c b/drivers/usb/dwc3/dwc3-generic.c
> index 744fde806948..e66e7961c70f 100644
> --- a/drivers/usb/dwc3/dwc3-generic.c
> +++ b/drivers/usb/dwc3/dwc3-generic.c
> @@ -21,6 +21,7 @@
>   #include <linux/usb/ch9.h>
>   #include <linux/usb/gadget.h>
>   #include <malloc.h>
> +#include <power/regulator.h>
>   #include <usb.h>
>   #include "core.h"
>   #include "gadget.h"
> @@ -47,6 +48,7 @@ struct dwc3_generic_priv {
>   struct dwc3_generic_host_priv {
>   	struct xhci_ctrl xhci_ctrl;
>   	struct dwc3_generic_priv gen_priv;
> +	struct udevice *vbus_dev;
>   };
>   
>   static int dwc3_generic_probe(struct udevice *dev,
> @@ -240,6 +242,13 @@ static int dwc3_generic_host_probe(struct udevice *dev)
>   	if (rc)
>   		return rc;
>   
> +	rc = device_get_supply_regulator(dev, "vbus-supply", &priv->vbus_dev);
> +	if (rc)
> +		debug("%s: No vbus regulator found: %d\n", dev->name, rc);
> +
> +	if (priv->vbus_dev)
> +		regulator_set_enable(priv->vbus_dev, true);
> +
>   	hccr = (struct xhci_hccr *)priv->gen_priv.base;
>   	hcor = (struct xhci_hcor *)(priv->gen_priv.base +
>   			HC_LENGTH(xhci_readl(&(hccr)->cr_capbase)));
> @@ -256,6 +265,9 @@ static int dwc3_generic_host_remove(struct udevice *dev)
>   	if (rc)
>   		return rc;
>   
> +	if (priv->vbus_dev)
> +		regulator_set_enable(priv->vbus_dev, false);
> +
>   	return dwc3_generic_remove(dev, &priv->gen_priv);
>   }
>   
> 

Reviewed-by: Neil Armstrong <neil.armstrong at linaro.org>


More information about the U-Boot mailing list