Commit a9df304c authored by Thomas Abraham's avatar Thomas Abraham Committed by Greg Kroah-Hartman

USB: Gadget: Add Samsung S3C24XX USB High-Speed controller driver

The Samsung's S3C2416, S3C2443 and S3C2450 includes a USB High-Speed
device controller module. This driver enables support for USB high-speed
gadget functionality for the Samsung S3C24xx SoC's that include this
controller.
Signed-off-by: default avatarThomas Abraham <thomas.ab@samsung.com>
Signed-off-by: default avatarSangbeom Kim <sbkim73@samsung.com>
Signed-off-by: default avatarKukjin Kim <kgene.kim@samsung.com>
Signed-off-by: default avatarAlexander Neumann <alexander@bumpern.de>
Signed-off-by: default avatarHeiko Stuebner <heiko@sntech.de>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent f6568045
...@@ -356,6 +356,23 @@ config USB_S3C2410_DEBUG ...@@ -356,6 +356,23 @@ config USB_S3C2410_DEBUG
boolean "S3C2410 udc debug messages" boolean "S3C2410 udc debug messages"
depends on USB_GADGET_S3C2410 depends on USB_GADGET_S3C2410
config USB_GADGET_S3C_HSUDC
boolean "S3C2416, S3C2443 and S3C2450 USB Device Controller"
depends on ARCH_S3C2410
select USB_GADGET_DUALSPEED
help
Samsung's S3C2416, S3C2443 and S3C2450 is an ARM9 based SoC
integrated with dual speed USB 2.0 device controller. It has
8 endpoints, as well as endpoint zero.
This driver has been tested on S3C2416 and S3C2450 processors.
config USB_S3C_HSUDC
tristate
depends on USB_GADGET_S3C_HSUDC
default USB_GADGET
select USB_GADGET_SELECTED
config USB_GADGET_PXA_U2O config USB_GADGET_PXA_U2O
boolean "PXA9xx Processor USB2.0 controller" boolean "PXA9xx Processor USB2.0 controller"
select USB_GADGET_DUALSPEED select USB_GADGET_DUALSPEED
......
...@@ -22,6 +22,7 @@ obj-$(CONFIG_USB_R8A66597) += r8a66597-udc.o ...@@ -22,6 +22,7 @@ obj-$(CONFIG_USB_R8A66597) += r8a66597-udc.o
obj-$(CONFIG_USB_FSL_QE) += fsl_qe_udc.o obj-$(CONFIG_USB_FSL_QE) += fsl_qe_udc.o
obj-$(CONFIG_USB_CI13XXX_PCI) += ci13xxx_pci.o obj-$(CONFIG_USB_CI13XXX_PCI) += ci13xxx_pci.o
obj-$(CONFIG_USB_S3C_HSOTG) += s3c-hsotg.o obj-$(CONFIG_USB_S3C_HSOTG) += s3c-hsotg.o
obj-$(CONFIG_USB_S3C_HSUDC) += s3c-hsudc.o
obj-$(CONFIG_USB_LANGWELL) += langwell_udc.o obj-$(CONFIG_USB_LANGWELL) += langwell_udc.o
obj-$(CONFIG_USB_EG20T) += pch_udc.o obj-$(CONFIG_USB_EG20T) += pch_udc.o
obj-$(CONFIG_USB_PXA_U2O) += mv_udc.o obj-$(CONFIG_USB_PXA_U2O) += mv_udc.o
......
...@@ -136,6 +136,12 @@ ...@@ -136,6 +136,12 @@
#define gadget_is_s3c_hsotg(g) 0 #define gadget_is_s3c_hsotg(g) 0
#endif #endif
#ifdef CONFIG_USB_S3C_HSUDC
#define gadget_is_s3c_hsudc(g) (!strcmp("s3c-hsudc", (g)->name))
#else
#define gadget_is_s3c_hsudc(g) 0
#endif
#ifdef CONFIG_USB_GADGET_EG20T #ifdef CONFIG_USB_GADGET_EG20T
#define gadget_is_pch(g) (!strcmp("pch_udc", (g)->name)) #define gadget_is_pch(g) (!strcmp("pch_udc", (g)->name))
#else #else
...@@ -215,6 +221,8 @@ static inline int usb_gadget_controller_number(struct usb_gadget *gadget) ...@@ -215,6 +221,8 @@ static inline int usb_gadget_controller_number(struct usb_gadget *gadget)
return 0x28; return 0x28;
else if (gadget_is_renesas_usbhs(gadget)) else if (gadget_is_renesas_usbhs(gadget))
return 0x29; return 0x29;
else if (gadget_is_s3c_hsudc(gadget))
return 0x30;
return -ENOENT; return -ENOENT;
} }
......
This diff is collapsed.
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