diff options
Diffstat (limited to 'drivers/usb/dwc3/dwc3-generic.c')
-rw-r--r-- | drivers/usb/dwc3/dwc3-generic.c | 25 |
1 files changed, 14 insertions, 11 deletions
diff --git a/drivers/usb/dwc3/dwc3-generic.c b/drivers/usb/dwc3/dwc3-generic.c index 7a00529a2a8..a9ba315463c 100644 --- a/drivers/usb/dwc3/dwc3-generic.c +++ b/drivers/usb/dwc3/dwc3-generic.c @@ -7,7 +7,6 @@ * Based on dwc3-omap.c. */ -#include <common.h> #include <cpu_func.h> #include <log.h> #include <dm.h> @@ -132,7 +131,6 @@ static int dwc3_generic_probe(struct udevice *dev, priv->base = map_physmem(plat->base, DWC3_OTG_REGS_END, MAP_NOCACHE); dwc3->regs = priv->base + DWC3_GLOBALS_REGS_START; - rc = dwc3_init(dwc3); if (rc) { unmap_physmem(priv->base, MAP_NOCACHE); @@ -195,34 +193,39 @@ static int dwc3_generic_of_to_plat(struct udevice *dev) } #if CONFIG_IS_ENABLED(DM_USB_GADGET) -int dm_usb_gadget_handle_interrupts(struct udevice *dev) +static int dwc3_generic_peripheral_probe(struct udevice *dev) { struct dwc3_generic_priv *priv = dev_get_priv(dev); - struct dwc3 *dwc3 = &priv->dwc3; - - dwc3_gadget_uboot_handle_interrupt(dwc3); - return 0; + return dwc3_generic_probe(dev, priv); } -static int dwc3_generic_peripheral_probe(struct udevice *dev) +static int dwc3_generic_peripheral_remove(struct udevice *dev) { struct dwc3_generic_priv *priv = dev_get_priv(dev); - return dwc3_generic_probe(dev, priv); + return dwc3_generic_remove(dev, priv); } -static int dwc3_generic_peripheral_remove(struct udevice *dev) +static int dwc3_gadget_handle_interrupts(struct udevice *dev) { struct dwc3_generic_priv *priv = dev_get_priv(dev); + struct dwc3 *dwc3 = &priv->dwc3; - return dwc3_generic_remove(dev, priv); + dwc3_gadget_uboot_handle_interrupt(dwc3); + + return 0; } +static const struct usb_gadget_generic_ops dwc3_gadget_ops = { + .handle_interrupts = dwc3_gadget_handle_interrupts, +}; + U_BOOT_DRIVER(dwc3_generic_peripheral) = { .name = "dwc3-generic-peripheral", .id = UCLASS_USB_GADGET_GENERIC, .of_to_plat = dwc3_generic_of_to_plat, + .ops = &dwc3_gadget_ops, .probe = dwc3_generic_peripheral_probe, .remove = dwc3_generic_peripheral_remove, .priv_auto = sizeof(struct dwc3_generic_priv), |