]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
usb: dwc3-generic: fix CONFIG_DM_REGULATOR-off case
authorJan Kiszka <jan.kiszka@siemens.com>
Thu, 8 Aug 2024 08:51:33 +0000 (10:51 +0200)
committerMarek Vasut <marex@denx.de>
Fri, 11 Oct 2024 03:11:06 +0000 (05:11 +0200)
When DM_REGULATOR is disabled, all calls will return -ENOSYS. Account
for that so that targets like the IOT2050 will work again.

Fixes: de451d5d5b6f ("usb: dwc3-generic: support external vbus regulator")
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Reviewed-by: Caleb Connolly <caleb.connolly@linaro.org>
drivers/usb/dwc3/dwc3-generic.c

index a9ba315463cfc4194a19b4a0c85aa73f19c03d57..2ab41cbae45d78ad140d54e602150b6ddd0a3b99 100644 (file)
@@ -246,12 +246,12 @@ static int dwc3_generic_host_probe(struct udevice *dev)
                return rc;
 
        rc = device_get_supply_regulator(dev, "vbus-supply", &priv->vbus_supply);
-       if (rc)
+       if (rc && rc != -ENOSYS)
                debug("%s: No vbus regulator found: %d\n", dev->name, rc);
 
-       /* Only returns an error if regulator is valid and failed to enable due to a driver issue */
+       /* Does not return an error if regulator is invalid - but does so when DM_REGULATOR is disabled */
        rc = regulator_set_enable_if_allowed(priv->vbus_supply, true);
-       if (rc)
+       if (rc && rc != -ENOSYS)
                return rc;
 
        hccr = (struct xhci_hccr *)priv->gen_priv.base;