Adapt at91_udc, atmel_usba_udc and epautoconf to the new gadget API.

Co-developed-by: Jerome Forissier <[email protected]>
Signed-off-by: Jerome Forissier <[email protected]>
Co-developed-by: Jens Wiklander <[email protected]>
Signed-off-by: Jens Wiklander <[email protected]>
Signed-off-by: Anders Roxell <[email protected]>
---
 drivers/usb/gadget/at91_udc.c       |  46 -------------
 drivers/usb/gadget/atmel_usba_udc.c | 102 ++++++++--------------------
 drivers/usb/gadget/epautoconf.c     |   2 -
 3 files changed, 28 insertions(+), 122 deletions(-)

diff --git a/drivers/usb/gadget/at91_udc.c b/drivers/usb/gadget/at91_udc.c
index b3c780a4e35c..5b0c55d59c8d 100644
--- a/drivers/usb/gadget/at91_udc.c
+++ b/drivers/usb/gadget/at91_udc.c
@@ -1435,52 +1435,6 @@ int dm_usb_gadget_handle_interrupts(struct udevice *dev)
        return at91_udc_irq(udc);
 }
 
-int usb_gadget_register_driver(struct usb_gadget_driver *driver)
-{
-       struct at91_udc *udc = controller;
-       int ret;
-
-       if (!driver || !driver->bind || !driver->setup) {
-               printf("bad paramter\n");
-               return -EINVAL;
-       }
-
-       if (udc->driver) {
-               printf("UDC already has a gadget driver\n");
-               return -EBUSY;
-       }
-
-       at91_start(&udc->gadget, driver);
-
-       udc->driver = driver;
-
-       ret = driver->bind(&udc->gadget);
-       if (ret) {
-               pr_err("driver->bind() returned %d\n", ret);
-               udc->driver = NULL;
-       }
-
-       return ret;
-}
-
-int usb_gadget_unregister_driver(struct usb_gadget_driver *driver)
-{
-       struct at91_udc *udc = controller;
-
-       if (!driver || !driver->unbind || !driver->disconnect) {
-               pr_err("bad paramter\n");
-               return -EINVAL;
-       }
-
-       driver->disconnect(&udc->gadget);
-       driver->unbind(&udc->gadget);
-       udc->driver = NULL;
-
-       at91_stop(&udc->gadget);
-
-       return 0;
-}
-
 int at91_udc_probe(struct at91_udc_data *pdata)
 {
        struct at91_udc *udc;
diff --git a/drivers/usb/gadget/atmel_usba_udc.c 
b/drivers/usb/gadget/atmel_usba_udc.c
index 0caf8b8b7b45..52900ad654cf 100644
--- a/drivers/usb/gadget/atmel_usba_udc.c
+++ b/drivers/usb/gadget/atmel_usba_udc.c
@@ -32,12 +32,6 @@ static int usba_udc_stop(struct usb_gadget *gadget);
 
 #include "atmel_usba_udc.h"
 
-static int vbus_is_present(struct usba_udc *udc)
-{
-       /* No Vbus detection: Assume always present */
-       return 1;
-}
-
 static void next_fifo_transaction(struct usba_ep *ep, struct usba_request *req)
 {
        unsigned int transaction_len;
@@ -1169,32 +1163,6 @@ static int usba_udc_irq(struct usba_udc *udc)
        return 0;
 }
 
-static int usba_udc_enable(struct usba_udc *udc)
-{
-       udc->devstatus = 1 << USB_DEVICE_SELF_POWERED;
-
-       udc->vbus_prev = 0;
-
-       /* If Vbus is present, enable the controller and wait for reset */
-       if (vbus_is_present(udc) && udc->vbus_prev == 0) {
-               usba_writel(udc, CTRL, USBA_ENABLE_MASK);
-               usba_writel(udc, INT_ENB, USBA_END_OF_RESET);
-       }
-
-       return 0;
-}
-
-static int usba_udc_disable(struct usba_udc *udc)
-{
-       udc->gadget.speed = USB_SPEED_UNKNOWN;
-       reset_all_endpoints(udc);
-
-       /* This will also disable the DP pullup */
-       usba_writel(udc, CTRL, USBA_DISABLE_MASK);
-
-       return 0;
-}
-
 static struct usba_ep *usba_udc_pdata(struct usba_platform_data *pdata,
                                      struct usba_udc *udc)
 {
@@ -1255,69 +1223,55 @@ int dm_usb_gadget_handle_interrupts(struct udevice *dev)
        return usba_udc_irq(udc);
 }
 
-int usb_gadget_register_driver(struct usb_gadget_driver *driver)
+int usba_udc_probe(struct usba_platform_data *pdata)
 {
-       struct usba_udc *udc = &controller;
-       int ret;
-
-       if (!driver || !driver->bind || !driver->setup) {
-               log_err("bad parameter\n");
-               return -EINVAL;
-       }
+       struct usba_udc *udc;
 
-       if (udc->driver) {
-               log_err("UDC already has a gadget driver\n");
-               return -EBUSY;
-       }
+       udc = &controller;
 
-       usba_udc_enable(udc);
+       udc->usba_ep = usba_udc_pdata(pdata, udc);
 
-       udc->driver = driver;
+       return 0;
+}
 
-       ret = driver->bind(&udc->gadget);
-       if (ret) {
-               log_err("driver->bind() returned %d\n", ret);
-               udc->driver = NULL;
-       }
+#else /* !CONFIG_IS_ENABLED(DM_USB_GADGET) */
+struct usba_priv_data {
+       struct clk_bulk         clks;
+       struct usba_udc         udc;
+};
 
-       return ret;
+static int vbus_is_present(struct usba_udc *udc)
+{
+       /* No Vbus detection: Assume always present */
+       return 1;
 }
 
-int usb_gadget_unregister_driver(struct usb_gadget_driver *driver)
+static int usba_udc_enable(struct usba_udc *udc)
 {
-       struct usba_udc *udc = &controller;
-
-       if (!driver || !driver->unbind || !driver->disconnect) {
-               log_err("bad parameter\n");
-               return -EINVAL;
-       }
+       udc->devstatus = 1 << USB_DEVICE_SELF_POWERED;
 
-       driver->disconnect(&udc->gadget);
-       driver->unbind(&udc->gadget);
-       udc->driver = NULL;
+       udc->vbus_prev = 0;
 
-       usba_udc_disable(udc);
+       /* If Vbus is present, enable the controller and wait for reset */
+       if (vbus_is_present(udc) && udc->vbus_prev == 0) {
+               usba_writel(udc, CTRL, USBA_ENABLE_MASK);
+               usba_writel(udc, INT_ENB, USBA_END_OF_RESET);
+       }
 
        return 0;
 }
 
-int usba_udc_probe(struct usba_platform_data *pdata)
+static int usba_udc_disable(struct usba_udc *udc)
 {
-       struct usba_udc *udc;
-
-       udc = &controller;
+       udc->gadget.speed = USB_SPEED_UNKNOWN;
+       reset_all_endpoints(udc);
 
-       udc->usba_ep = usba_udc_pdata(pdata, udc);
+       /* This will also disable the DP pullup */
+       usba_writel(udc, CTRL, USBA_DISABLE_MASK);
 
        return 0;
 }
 
-#else /* !CONFIG_IS_ENABLED(DM_USB_GADGET) */
-struct usba_priv_data {
-       struct clk_bulk         clks;
-       struct usba_udc         udc;
-};
-
 static int usba_udc_start(struct usb_gadget *gadget,
                          struct usb_gadget_driver *driver)
 {
diff --git a/drivers/usb/gadget/epautoconf.c b/drivers/usb/gadget/epautoconf.c
index 30016b805bfd..93ea70a5d79b 100644
--- a/drivers/usb/gadget/epautoconf.c
+++ b/drivers/usb/gadget/epautoconf.c
@@ -6,9 +6,7 @@
  */
 
 #include <linux/kernel.h>
-#include <linux/module.h>
 #include <linux/types.h>
-#include <linux/device.h>
 
 #include <linux/ctype.h>
 #include <linux/string.h>
-- 
2.53.0

Reply via email to