android_kernel_motorola_sm6225/drivers/usb/gadget
David Brownell 40982be52d usb gadget: composite gadget core
Add <linux/usb/composite.h> interfaces for composite gadget drivers, and
basic implementation support behind it:

  - struct usb_function ... groups one or more interfaces into a function
    managed as one unit within a configuration, to which it's added by
    usb_add_function().

  - struct usb_configuration ... groups one or more such functions into
    a configuration managed as one unit by a driver, to which it's added
    by usb_add_config().  These operate at either high or full/low speeds
    and at a given bMaxPower.

  - struct usb_composite_driver ... groups one or more such configurations
    into a gadget driver, which may be registered or unregistered.

  - struct usb_composite_dev ... a usb_composite_driver manages this; it
    wraps the usb_gadget exposed by the controller driver.

This also includes some basic kerneldoc.

How to use it (the short version):  provide a usb_composite_driver with a
bind() that calls usb_add_config() for each of the needed configurations.
The configurations in turn have bind() calls, which will usb_add_function()
for each function required.  Each function's bind() allocates resources
needed to perform its tasks, like endpoints; sometimes configurations will
allocate resources too.

Separate patches will convert most gadget drivers to this infrastructure.

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2008-07-21 15:16:01 -07:00
..
amd5536udc.c USB: usb dev_set_name() instead of dev->bus_id 2008-07-21 15:15:47 -07:00
amd5536udc.h USB: amd5536 UDC driver (in GEODE southbridge) 2007-07-19 17:46:05 -07:00
at91_udc.c USB: at91_udc: updated fifo sizes 2008-07-21 15:15:58 -07:00
at91_udc.h USB: at91_udc uses generic GPIO calls; minor cleanup 2008-02-01 14:35:01 -08:00
atmel_usba_udc.c USB: atmel_usba_udc fixes, mostly disconnect() 2008-05-14 10:00:30 -07:00
atmel_usba_udc.h atmel_usba_udc: Add support for AT91CAP9 UDPHS 2008-04-06 17:25:06 -04:00
composite.c usb gadget: composite gadget core 2008-07-21 15:16:01 -07:00
config.c usb gadget: descriptor copying support 2008-07-21 15:16:00 -07:00
dummy_hcd.c USB: usb dev_set_name() instead of dev->bus_id 2008-07-21 15:15:47 -07:00
epautoconf.c usb gadget: descriptor copying support 2008-07-21 15:16:00 -07:00
ether.c USB: usb dev_name() instead of dev->bus_id 2008-07-21 15:15:46 -07:00
file_storage.c USB: usb dev_set_name() instead of dev->bus_id 2008-07-21 15:15:47 -07:00
fsl_usb2_udc.c USB: usb dev_set_name() instead of dev->bus_id 2008-07-21 15:15:47 -07:00
fsl_usb2_udc.h USB: replace remaining __FUNCTION__ occurrences 2008-04-24 21:16:55 -07:00
gadget_chips.h [ARM] 5120/1: pxa: correct platform driver names for PXA25x and PXA27x UDC drivers 2008-07-09 21:30:13 +01:00
gmidi.c drivers/usb annotations and fixes 2008-04-28 10:03:31 -07:00
goku_udc.c USB: usb dev_set_name() instead of dev->bus_id 2008-07-21 15:15:47 -07:00
goku_udc.h USB: goku_udc trivial cleanups 2007-07-12 16:34:43 -07:00
inode.c [ARM] 5120/1: pxa: correct platform driver names for PXA25x and PXA27x UDC drivers 2008-07-09 21:30:13 +01:00
Kconfig [ARM] Merge most of the PXA work for initial merge 2008-07-14 23:34:46 +01:00
lh7a40x_udc.c USB: usb dev_name() instead of dev->bus_id 2008-07-21 15:15:46 -07:00
lh7a40x_udc.h USB: move <linux/usb_gadget.h> to <linux/usb/gadget.h> 2007-10-12 14:55:31 -07:00
m66592-udc.c USB: usb dev_set_name() instead of dev->bus_id 2008-07-21 15:15:47 -07:00
m66592-udc.h drivers/usb annotations and fixes 2008-04-28 10:03:31 -07:00
Makefile usb gadget: use new serial core 2008-07-21 15:15:59 -07:00
ndis.h [PATCH] USB: rndis updates (mostly cleanup) 2005-06-27 14:43:50 -07:00
net2280.c USB: usb dev_set_name() instead of dev->bus_id 2008-07-21 15:15:47 -07:00
net2280.h USB: replace remaining __FUNCTION__ occurrences 2008-04-24 21:16:55 -07:00
omap_udc.c USB: usb dev_set_name() instead of dev->bus_id 2008-07-21 15:15:47 -07:00
omap_udc.h ARM: OMAP: USB: Change omap USB code to use omap_read/write instead of __REG 2008-07-03 12:24:43 +03:00
printer.c printer gadget: BKL pushdown 2008-06-20 14:05:52 -06:00
pxa25x_udc.c USB: usb dev_name() instead of dev->bus_id 2008-07-21 15:15:46 -07:00
pxa25x_udc.h [ARM] 5120/1: pxa: correct platform driver names for PXA25x and PXA27x UDC drivers 2008-07-09 21:30:13 +01:00
pxa27x_udc.c [ARM] Merge most of the PXA work for initial merge 2008-07-14 23:34:46 +01:00
pxa27x_udc.h [ARM] 5080/1: touch PSSR_OTGPH only on pxa27x in ohci-pxa27x and pxa27x_udc 2008-06-15 19:54:23 +01:00
rndis.c USB: rndis: switch to seq_files 2008-07-21 15:15:57 -07:00
rndis.h USB: remove CVS keywords 2008-07-21 15:15:55 -07:00
s3c2410_udc.c usb gadget: fix platform driver hotplug/coldplug 2008-04-11 08:06:43 -07:00
s3c2410_udc.h USB Gadget driver for Samsung s3c2410 ARM SoC 2007-07-12 16:34:30 -07:00
serial.c usb gadget: use new serial core 2008-07-21 15:15:59 -07:00
u_serial.c usb gadget: split out serial core 2008-07-21 15:15:59 -07:00
u_serial.h usb gadget: split out serial core 2008-07-21 15:15:59 -07:00
usbstring.c usb: use get/put_unaligned_* helpers 2008-04-29 08:06:28 -07:00
zero.c usb: gadget zero timer init fix 2008-05-02 10:25:54 -07:00