diff options
author | Ye Li <ye.li@nxp.com> | 2020-06-29 05:12:59 +0300 |
---|---|---|
committer | Marek Vasut <marex@denx.de> | 2020-09-01 15:47:43 +0300 |
commit | 1468a1cc72afa210c35a4d0ed533de29110de648 (patch) | |
tree | 26c987450664ce86a785e1a0143c47777a63f984 /drivers/usb/gadget | |
parent | 213fa47dacf07d11f094ff58a5695cd0c425e164 (diff) | |
download | u-boot-1468a1cc72afa210c35a4d0ed533de29110de648.tar.xz |
usb: ci_udc: Add function to remove usb device
When unregister gadget driver in ci_udc, the usb device is not
removed or stop. This causes next "usb start" fails to work.
Add a new interface "usb_remove_ehci_gadget" in usb-uclass to
remove the usb device for DM driver. Using "usb_lowlevel_stop" for
non-DM driver.
Signed-off-by: Ye Li <ye.li@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
Diffstat (limited to 'drivers/usb/gadget')
-rw-r--r-- | drivers/usb/gadget/ci_udc.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/usb/gadget/ci_udc.c b/drivers/usb/gadget/ci_udc.c index cdbdbcc5ca..cdb8f6fb3d 100644 --- a/drivers/usb/gadget/ci_udc.c +++ b/drivers/usb/gadget/ci_udc.c @@ -1053,6 +1053,13 @@ int usb_gadget_unregister_driver(struct usb_gadget_driver *driver) free(controller.items_mem); free(controller.epts); +#if CONFIG_IS_ENABLED(DM_USB) + usb_remove_ehci_gadget(&controller.ctrl); +#else + usb_lowlevel_stop(0); + controller.ctrl = NULL; +#endif + return 0; } |