From e30f0549f9c7a13f073e1f7973fee51cec508b30 Mon Sep 17 00:00:00 2001 From: Chukun Pan Date: Mon, 16 Mar 2026 16:00:00 +0800 Subject: [PATCH] usb: dwc3: dwc3-generic-plat: Add optional VBUS regulator support Some boards provide USB VBUS through a controllable regulator. Add support for the optional vbus-supply property so the regulator can be properly managed instead of left always-on. Note that this does not apply to USB Hub downstream ports with different VBUS supplies. The enabled and disabled actions of the regulator are handled automatically by devm_regulator_get_enable_optional(). Signed-off-by: Chukun Pan Signed-off-by: Linux RISC-V bot --- drivers/usb/dwc3/dwc3-generic-plat.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/usb/dwc3/dwc3-generic-plat.c b/drivers/usb/dwc3/dwc3-generic-plat.c index e846844e0023a7..83b4e4d69ba95d 100644 --- a/drivers/usb/dwc3/dwc3-generic-plat.c +++ b/drivers/usb/dwc3/dwc3-generic-plat.c @@ -12,6 +12,7 @@ #include #include #include +#include #include "glue.h" #define EIC7700_HSP_BUS_FILTER_EN BIT(0) @@ -113,6 +114,10 @@ static int dwc3_generic_probe(struct platform_device *pdev) if (ret < 0) return dev_err_probe(dev, ret, "failed to get clocks\n"); + ret = devm_regulator_get_enable_optional(dev, "vbus"); + if (ret && ret != -ENODEV) + return dev_err_probe(dev, ret, "failed to enable VBUS\n"); + dwc3g->num_clocks = ret; dwc3g->dwc.dev = dev; probe_data.dwc = &dwc3g->dwc;