diff options
author | Marek Vasut <marex@denx.de> | 2013-07-10 03:16:27 +0200 |
---|---|---|
committer | Marek Vasut <marex@denx.de> | 2013-07-29 23:01:31 +0200 |
commit | a7eafcfe45427235804ef60e9983a84fbce3ea07 (patch) | |
tree | 6733524d46da9ce111b3f49665c613cc75df6496 | |
parent | 9fab4bf4cc077c21e43941866f3f2c196f28670d (diff) | |
download | u-boot-imx-a7eafcfe45427235804ef60e9983a84fbce3ea07.zip u-boot-imx-a7eafcfe45427235804ef60e9983a84fbce3ea07.tar.gz u-boot-imx-a7eafcfe45427235804ef60e9983a84fbce3ea07.tar.bz2 |
usb: mv_udc: Unbreak the mv_udc driver
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>
-rw-r--r-- | drivers/serial/usbtty.h | 2 | ||||
-rw-r--r-- | drivers/usb/gadget/gadget_chips.h | 2 | ||||
-rw-r--r-- | drivers/usb/gadget/mv_udc.c | 7 |
3 files changed, 9 insertions, 2 deletions
diff --git a/drivers/serial/usbtty.h b/drivers/serial/usbtty.h index bbabb32..e243a8e 100644 --- a/drivers/serial/usbtty.h +++ b/drivers/serial/usbtty.h @@ -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> diff --git a/drivers/usb/gadget/gadget_chips.h b/drivers/usb/gadget/gadget_chips.h index f038747..aa54b85 100644 --- a/drivers/usb/gadget/gadget_chips.h +++ b/drivers/usb/gadget/gadget_chips.h @@ -144,7 +144,7 @@ #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 diff --git a/drivers/usb/gadget/mv_udc.c b/drivers/usb/gadget/mv_udc.c index 7fa5288..93e5389 100644 --- a/drivers/usb/gadget/mv_udc.c +++ b/drivers/usb/gadget/mv_udc.c @@ -17,6 +17,10 @@ #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); } |