
This series adds support for Cadence USB Host and Gadget controller drivers. This is borrowed directly from Linux kernel v5.4-rc1. Driver as such supports both 3.0 and 2.0 speeds. But USB 3.0 requires a PHY driver which will be added in a separate follow series
Patch 7 adds TI wrapper driver for Cadence USB controller.
Both host and device mode has been tested on TI's J721e SoC. DFU, UMS and fastboot gadgets have been tested.
Complete series (+ DT nodes required for J721e) can be found here: https://github.com/r-vignesh/u-boot.git branch: usb
Regards Vignesh
Sherry Sun (1): usb: udc: Introduce ->udc_set_speed() method
Vignesh Raghavendra (7): list: import list_first_entry_or_null() bitmaps: import for_each_set_bit() macro usb: gadget: Add match_ep() op to usb_gadget_ops usb: Add Cadence USB3 host and gadget driver usb: cdns3: gadget: Implement udc_set_speed() callback usb: cdns3: Add TI wrapper driver for CDNS USB3 controller usb: gadget: Add gadget_is_cdns3() macro
Makefile | 1 + drivers/usb/Kconfig | 2 + drivers/usb/cdns3/Kconfig | 58 + drivers/usb/cdns3/Makefile | 11 + drivers/usb/cdns3/cdns3-ti.c | 193 ++ drivers/usb/cdns3/core.c | 498 ++++++ drivers/usb/cdns3/core.h | 108 ++ drivers/usb/cdns3/debug.h | 162 ++ drivers/usb/cdns3/drd.c | 301 ++++ drivers/usb/cdns3/drd.h | 166 ++ drivers/usb/cdns3/ep0.c | 910 ++++++++++ drivers/usb/cdns3/gadget-export.h | 28 + drivers/usb/cdns3/gadget.c | 2760 +++++++++++++++++++++++++++++ drivers/usb/cdns3/gadget.h | 1338 ++++++++++++++ drivers/usb/cdns3/host-export.h | 28 + drivers/usb/cdns3/host.c | 55 + drivers/usb/cdns3/trace.c | 11 + drivers/usb/cdns3/trace.h | 26 + drivers/usb/gadget/epautoconf.c | 3 + drivers/usb/gadget/gadget_chips.h | 8 + drivers/usb/gadget/udc/udc-core.c | 23 + include/linux/bitmap.h | 61 + include/linux/list.h | 14 + include/linux/usb/gadget.h | 25 + scripts/Makefile.spl | 1 + 25 files changed, 6791 insertions(+) create mode 100644 drivers/usb/cdns3/Kconfig create mode 100644 drivers/usb/cdns3/Makefile create mode 100644 drivers/usb/cdns3/cdns3-ti.c create mode 100644 drivers/usb/cdns3/core.c create mode 100644 drivers/usb/cdns3/core.h create mode 100644 drivers/usb/cdns3/debug.h create mode 100644 drivers/usb/cdns3/drd.c create mode 100644 drivers/usb/cdns3/drd.h create mode 100644 drivers/usb/cdns3/ep0.c create mode 100644 drivers/usb/cdns3/gadget-export.h create mode 100644 drivers/usb/cdns3/gadget.c create mode 100644 drivers/usb/cdns3/gadget.h create mode 100644 drivers/usb/cdns3/host-export.h create mode 100644 drivers/usb/cdns3/host.c create mode 100644 drivers/usb/cdns3/trace.c create mode 100644 drivers/usb/cdns3/trace.h