Commit 3948f0e0 authored by Li Yang's avatar Li Yang Committed by Greg Kroah-Hartman

usb: add Freescale QE/CPM USB peripheral controller driver

Some of Freescale SoC chips have a QE or CPM co-processor which
supports full speed USB.  The driver adds device mode support
of both QE and CPM USB controller to Linux USB gadget.  The
driver is tested with MPC8360 and MPC8272, and should work with
other models having QE/CPM given minor tweaks.
Signed-off-by: default avatarXie Xiaobo <X.Xie@freescale.com>
Signed-off-by: default avatarLi Yang <leoli@freescale.com>
Acked-by: default avatarArnd Bergmann <arnd@arndb.de>
Cc: David Brownell <david-b@pacbell.net>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent bedf0883
...@@ -341,6 +341,25 @@ config USB_AMD5536UDC ...@@ -341,6 +341,25 @@ config USB_AMD5536UDC
default USB_GADGET default USB_GADGET
select USB_GADGET_SELECTED select USB_GADGET_SELECTED
config USB_GADGET_FSL_QE
boolean "Freescale QE/CPM USB Device Controller"
depends on FSL_SOC && (QUICC_ENGINE || CPM)
help
Some of Freescale PowerPC processors have a Full Speed
QE/CPM2 USB controller, which support device mode with 4
programmable endpoints. This driver supports the
controller in the MPC8360 and MPC8272, and should work with
controllers having QE or CPM2, given minor tweaks.
Set CONFIG_USB_GADGET to "m" to build this driver as a
dynmically linked module called "fsl_qe_udc".
config USB_FSL_QE
tristate
depends on USB_GADGET_FSL_QE
default USB_GADGET
select USB_GADGET_SELECTED
config USB_GADGET_NET2280 config USB_GADGET_NET2280
boolean "NetChip 228x" boolean "NetChip 228x"
depends on PCI depends on PCI
......
...@@ -18,6 +18,7 @@ obj-$(CONFIG_USB_AT91) += at91_udc.o ...@@ -18,6 +18,7 @@ obj-$(CONFIG_USB_AT91) += at91_udc.o
obj-$(CONFIG_USB_ATMEL_USBA) += atmel_usba_udc.o obj-$(CONFIG_USB_ATMEL_USBA) += atmel_usba_udc.o
obj-$(CONFIG_USB_FSL_USB2) += fsl_usb2_udc.o obj-$(CONFIG_USB_FSL_USB2) += fsl_usb2_udc.o
obj-$(CONFIG_USB_M66592) += m66592-udc.o obj-$(CONFIG_USB_M66592) += m66592-udc.o
obj-$(CONFIG_USB_FSL_QE) += fsl_qe_udc.o
# #
# USB gadget drivers # USB gadget drivers
......
This diff is collapsed.
This diff is collapsed.
...@@ -151,6 +151,13 @@ ...@@ -151,6 +151,13 @@
#define gadget_is_m66592(g) 0 #define gadget_is_m66592(g) 0
#endif #endif
/* Freescale CPM/QE UDC SUPPORT */
#ifdef CONFIG_USB_GADGET_FSL_QE
#define gadget_is_fsl_qe(g) !strcmp("fsl_qe_udc", (g)->name)
#else
#define gadget_is_fsl_qe(g) 0
#endif
// CONFIG_USB_GADGET_SX2 // CONFIG_USB_GADGET_SX2
// CONFIG_USB_GADGET_AU1X00 // CONFIG_USB_GADGET_AU1X00
...@@ -216,6 +223,8 @@ static inline int usb_gadget_controller_number(struct usb_gadget *gadget) ...@@ -216,6 +223,8 @@ static inline int usb_gadget_controller_number(struct usb_gadget *gadget)
return 0x20; return 0x20;
else if (gadget_is_m66592(gadget)) else if (gadget_is_m66592(gadget))
return 0x21; return 0x21;
else if (gadget_is_fsl_qe(gadget))
return 0x22;
return -ENOENT; return -ENOENT;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment