Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

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
Loading
Loading
Loading
Loading
+17 −0
Original line number Diff line number Diff line
@@ -356,6 +356,23 @@ config USB_S3C2410_DEBUG
	boolean "S3C2410 udc debug messages"
	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
	boolean "PXA9xx Processor USB2.0 controller"
	select USB_GADGET_DUALSPEED
+1 −0
Original line number Diff line number Diff line
@@ -22,6 +22,7 @@ obj-$(CONFIG_USB_R8A66597) += r8a66597-udc.o
obj-$(CONFIG_USB_FSL_QE)	+= fsl_qe_udc.o
obj-$(CONFIG_USB_CI13XXX_PCI)	+= ci13xxx_pci.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_EG20T)		+= pch_udc.o
obj-$(CONFIG_USB_PXA_U2O)	+= mv_udc.o
+8 −0
Original line number Diff line number Diff line
@@ -136,6 +136,12 @@
#define gadget_is_s3c_hsotg(g)    0
#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
#define	gadget_is_pch(g)	(!strcmp("pch_udc", (g)->name))
#else
@@ -215,6 +221,8 @@ static inline int usb_gadget_controller_number(struct usb_gadget *gadget)
		return 0x28;
	else if (gadget_is_renesas_usbhs(gadget))
		return 0x29;
	else if (gadget_is_s3c_hsudc(gadget))
		return 0x30;

	return -ENOENT;
}
+1349 −0

File added.

Preview size limit exceeded, changes collapsed.