linux/drivers/usb/gadget/udc
Benjamin Herrenschmidt 7ecca2a408 usb/gadget: Add driver for Aspeed SoC virtual hub
The Aspeed BMC SoCs support a "virtual hub" function. It provides some
HW support for a top-level USB2 hub behind which sit 5 gadget "ports".

This driver adds support for the full functionality, emulating the
hub standard requests and exposing 5 UDC gadget drivers corresponding
to the ports.

The hub itself has HW provided dedicated EP0 and EP1 (the latter for
hub interrupts). It also has dedicated EP0s for each function. For
other endpoints, there's a pool of 15 "generic" endpoints that are
shared among the ports.

The driver relies on my previous patch adding a "dispose" EP op to
handle EP allocation between ports. EPs are allocated from the shared
pool in the UDC "match_ep" callback and assigned to the UDC instance
(added to the gadget ep_list).

When the composite driver gets unbound, the new hook will allow the UDC
to clean things up and return those EPs to the shared pool.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
2018-05-15 10:06:53 +03:00
..
aspeed-vhub usb/gadget: Add driver for Aspeed SoC virtual hub 2018-05-15 10:06:53 +03:00
bdc usb: gadget: udc: bdc: Use dma_pool_zalloc 2018-03-08 15:12:00 +02:00
amd5536udc_pci.c USB: gadget: udc: Remove redundant license text 2017-11-07 15:45:02 +01:00
amd5536udc.h USB: gadget: udc: Remove redundant license text 2017-11-07 15:45:02 +01:00
at91_udc.c treewide: setup_timer() -> timer_setup() 2017-11-21 15:57:07 -08:00
at91_udc.h USB: gadget: udc: Remove redundant license text 2017-11-07 15:45:02 +01:00
atmel_usba_udc.c usb: gadget: udc: atmel: convert to use GPIO descriptors 2018-03-13 10:47:46 +02:00
atmel_usba_udc.h usb: gadget: udc: atmel: convert to use GPIO descriptors 2018-03-13 10:47:46 +02:00
bcm63xx_udc.c USB: gadget: bcm63xx: Re-use DEFINE_SHOW_ATTRIBUTE() macro 2018-03-08 15:12:00 +02:00
core.c usb: gadget: udc: core: Document the relation between usb_ep_queue() and completion callback 2018-04-23 14:07:36 +03:00
dummy_hcd.c usb: gadget: udc: Use scnprintf() instead of snprintf() 2018-03-13 10:47:51 +02:00
fotg210-udc.c USB: gadget: udc: Remove redundant license text 2017-11-07 15:45:02 +01:00
fotg210.h USB: gadget: udc: Remove redundant license text 2017-11-07 15:45:02 +01:00
fsl_mxc_udc.c USB: gadget: udc: Remove redundant license text 2017-11-07 15:45:02 +01:00
fsl_qe_udc.c USB: gadget: udc: Remove redundant license text 2017-11-07 15:45:02 +01:00
fsl_qe_udc.h USB: gadget: udc: Remove redundant license text 2017-11-07 15:45:02 +01:00
fsl_udc_core.c usb: gadget: fsl_udc_core: fix ep valid checks 2018-02-12 10:57:50 +02:00
fsl_usb2_udc.h USB: gadget: udc: Remove redundant license text 2017-11-07 15:45:02 +01:00
fusb300_udc.c USB: gadget: udc: Remove redundant license text 2017-11-07 15:45:02 +01:00
fusb300_udc.h USB: gadget: udc: Remove redundant license text 2017-11-07 15:45:02 +01:00
goku_udc.c USB: gadget: udc: Remove redundant license text 2017-11-07 15:45:02 +01:00
goku_udc.h usb: gadget: udc: change comparison to bitshift when dealing with a mask 2018-03-08 15:12:00 +02:00
gr_udc.c USB: gadget: gr: Re-use DEFINE_SHOW_ATTRIBUTE() macro 2018-03-08 15:12:00 +02:00
gr_udc.h USB: gadget: udc: Remove redundant license text 2017-11-07 15:45:02 +01:00
Kconfig usb/gadget: Add driver for Aspeed SoC virtual hub 2018-05-15 10:06:53 +03:00
lpc32xx_udc.c USB: gadget: udc: Remove redundant license text 2017-11-07 15:45:02 +01:00
m66592-udc.c treewide: setup_timer() -> timer_setup() 2017-11-21 15:57:07 -08:00
m66592-udc.h USB: gadget: udc: Remove redundant license text 2017-11-07 15:45:02 +01:00
Makefile usb/gadget: Add driver for Aspeed SoC virtual hub 2018-05-15 10:06:53 +03:00
mv_u3d_core.c USB: gadget: udc: Remove redundant license text 2017-11-07 15:45:02 +01:00
mv_u3d.h USB: gadget: udc: Remove redundant license text 2017-11-07 15:45:02 +01:00
mv_udc_core.c USB: gadget: udc: Remove redundant license text 2017-11-07 15:45:02 +01:00
mv_udc.h USB: gadget: udc: Remove redundant license text 2017-11-07 15:45:02 +01:00
net2272.c USB: gadget: udc: Remove redundant license text 2017-11-07 15:45:02 +01:00
net2272.h USB: gadget: udc: Remove redundant license text 2017-11-07 15:45:02 +01:00
net2280.c USB: gadget: udc: Remove redundant license text 2017-11-07 15:45:02 +01:00
net2280.h USB: gadget: udc: Remove redundant license text 2017-11-07 15:45:02 +01:00
omap_udc.c treewide: setup_timer() -> timer_setup() 2017-11-21 15:57:07 -08:00
omap_udc.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
pch_udc.c USB: gadget: udc: Remove redundant license text 2017-11-07 15:45:02 +01:00
pxa25x_udc.c USB: gadget: pxa25x: Re-use DEFINE_SHOW_ATTRIBUTE() macro 2018-03-08 15:12:00 +02:00
pxa25x_udc.h USB: gadget: udc: Remove redundant license text 2017-11-07 15:45:02 +01:00
pxa27x_udc.c USB: gadget: pxa27x: Re-use DEFINE_SHOW_ATTRIBUTE() macro 2018-03-08 15:12:00 +02:00
pxa27x_udc.h USB: gadget: udc: Remove redundant license text 2017-11-07 15:45:02 +01:00
r8a66597-udc.c treewide: setup_timer() -> timer_setup() 2017-11-21 15:57:07 -08:00
r8a66597-udc.h USB: gadget: udc: Remove redundant license text 2017-11-07 15:45:02 +01:00
renesas_usb3.c usb: gadget: udc: renesas_usb3: fix oops in renesas_usb3_remove() 2018-02-12 10:45:49 +02:00
s3c2410_udc.c USB: gadget: udc: Remove redundant license text 2017-11-07 15:45:02 +01:00
s3c2410_udc.h USB: gadget: udc: Remove redundant license text 2017-11-07 15:45:02 +01:00
s3c-hsudc.c USB: gadget: udc: Remove redundant license text 2017-11-07 15:45:02 +01:00
snps_udc_core.c USB: gadget: udc: Remove redundant license text 2017-11-07 15:45:02 +01:00
snps_udc_plat.c USB: gadget: udc: Remove redundant license text 2017-11-07 15:45:02 +01:00
trace.c USB: gadget: udc: Remove redundant license text 2017-11-07 15:45:02 +01:00
trace.h gadget event trace : add request pointer 2017-12-11 12:36:49 +02:00
udc-xilinx.c usb: gadget: udc-xilinx: remove redundant pointer udc 2017-12-11 12:36:51 +02:00