[PATCH] usb: dwc3: Fix remove function if there is no ulpi_reset gpio

Venkatesh Yadav Abbarapu venkatesh.abbarapu at amd.com
Wed Aug 9 05:33:50 CEST 2023

As ulpi_reset gpio is now optional, we need to check it when doing
the 'dwc3_generic_remove' function. Check if it is declared before
accessing the ulpi_reset.

Fixes: 237d1f60b1d ("usb: dwc3: Use the devm_gpiod_get_optional()
		     API for reset gpio")

Reported-by: Thomas Nizan <tnizan at witekio.com>
Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu at amd.com>
 drivers/usb/dwc3/dwc3-generic.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/usb/dwc3/dwc3-generic.c b/drivers/usb/dwc3/dwc3-generic.c
index b3ed728fd8..7f0af05855 100644
--- a/drivers/usb/dwc3/dwc3-generic.c
+++ b/drivers/usb/dwc3/dwc3-generic.c
@@ -145,7 +145,8 @@ static int dwc3_generic_remove(struct udevice *dev,
 	struct dwc3 *dwc3 = &priv->dwc3;
-	    device_is_compatible(dev->parent, "xlnx,zynqmp-dwc3")) {
+	    device_is_compatible(dev->parent, "xlnx,zynqmp-dwc3") &&
+	    priv->ulpi_reset) {
 		struct gpio_desc *ulpi_reset = priv->ulpi_reset;
 		dm_gpio_free(ulpi_reset->dev, ulpi_reset);

More information about the U-Boot mailing list