]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
usb: mv_udc: Unbreak the mv_udc driver
authorMarek Vasut <marex@denx.de>
Wed, 10 Jul 2013 01:16:27 +0000 (03:16 +0200)
committerMarek Vasut <marex@denx.de>
Mon, 29 Jul 2013 21:01:31 +0000 (23:01 +0200)
The mv_udc driver is broken for a while and doesn't even compile.
This patch fixes the issues and gets the driver into working state
again. This driver was tested on Freescale i.MX233/i.MX28 .

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Fabio Estevam <fabio.estevam@freescale.com>
Cc: Lei Wen <leiwen@marvell.com>
Cc: Otavio Salvador <otavio@ossystems.com.br>
Cc: Stefano Babic <sbabic@denx.de>
drivers/serial/usbtty.h
drivers/usb/gadget/gadget_chips.h
drivers/usb/gadget/mv_udc.c

index bbabb325f83a2d777d5bd5b1e50ceba5305f231b..e243a8e3b203fe2106beae5b7b3b957629acfacb 100644 (file)
@@ -22,6 +22,8 @@
 #include <usb/pxa27x_udc.h>
 #elif defined(CONFIG_DW_UDC)
 #include <usb/designware_udc.h>
+#elif defined(CONFIG_MV_UDC)
+#include <usb/mv_udc.h>
 #endif
 
 #include <version.h>
index f038747e63e0d5175bb58ee495b7e419140d8c98..aa54b8547e73d2945a9b5d8df5486c87ec73f3bc 100644 (file)
 #define        gadget_is_m66592(g)     0
 #endif
 
-#ifdef CONFIG_USB_GADGET_MV
+#ifdef CONFIG_MV_UDC
 #define gadget_is_mv(g)        (!strcmp("mv_udc", (g)->name))
 #else
 #define gadget_is_mv(g)        0
index 7fa5288803809653a12fb5308edafaf15b0405e4..93e5389398576a197039b62782d3926bf3d03ab7 100644 (file)
 #include <linux/types.h>
 #include <usb/mv_udc.h>
 
+#if CONFIG_USB_MAX_CONTROLLER_COUNT > 1
+#error This driver only supports one single controller.
+#endif
+
 #ifndef DEBUG
 #define DBG(x...) do {} while (0)
 #else
@@ -453,6 +457,7 @@ int usb_gadget_register_driver(struct usb_gadget_driver *driver)
 {
        struct mv_udc *udc = controller.udc;
        int             retval;
+       void *ctrl;
 
        if (!driver
                        || driver->speed < USB_SPEED_FULL
@@ -463,7 +468,7 @@ int usb_gadget_register_driver(struct usb_gadget_driver *driver)
        }
 
        if (!mvudc_probe()) {
-               usb_lowlevel_init();
+               usb_lowlevel_init(0, &ctrl);
                /* select ULPI phy */
                writel(PTS(PTS_ENABLE) | PFSC, &udc->portsc);
        }