This driver is a slimed down version of Linux's dwc2 gadget driver. It only support direct dma (not descriptor based dma) and does not support direct buffer (aka slave mode) although this could be nice to have. This patchset also backport two commits from Linux that change the behavior of usb_endpint_maxp() to only return the packet size, the other information is now available in usb_endpoint_maxp_mult(). At the time I write this lines, I notice that the mult information is only needed for isochronous transfers, which are not supported by this driver... Once again this driver as only be tested on our custom SoC, this is still a work in progress. Any feedback are welcome, cheers. Jules --- Jules Maselbas (9): BACKPORT: usb: Add helper to extract bits 12:11 of wMaxPacketize BACKPORT: usb: ch9: make usb_endpoint_maxp() return only packet size usb: Update uses of usb_endpoint_maxp usb: dwc2: Add otg state usb: dwc2: Add function to flush a tx fifo usb: dwc2: Add structure for gadget driver usb: dwc2: Add getter for gadget fifo hwparams usb: dwc2: gadget: Configure fifo size usb: dwc2: Add gadget driver drivers/usb/dwc2/Makefile | 2 +- drivers/usb/dwc2/core.c | 148 ++ drivers/usb/dwc2/core.h | 64 + drivers/usb/dwc2/dwc2.c | 2 + drivers/usb/dwc2/dwc2.h | 3 + drivers/usb/dwc2/gadget.c | 2668 +++++++++++++++++++++++++++++++ drivers/usb/dwc2/regs.h | 1 + drivers/usb/gadget/epautoconf.c | 2 +- drivers/usb/musb/musb_gadget.c | 12 +- drivers/usb/musb/musb_host.c | 3 +- include/usb/ch9.h | 25 +- 11 files changed, 2916 insertions(+), 14 deletions(-) create mode 100644 drivers/usb/dwc2/gadget.c -- 2.21.0.196.g041f5ea _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox