This patch series adds support to Synopsys DWC_usb32 controller which is capable of dual-lane and USB speed up to 40 Gbps. In order to support this new controller, we need to make a few updates the USB stack and dwc3 driver: 1) dwc3 driver needs to update its IP and revision check. The current scheme does not support more than 2 controllers. 2) Introduce Lane Speed Mantissa and lane count on the gadget side. Devices operating in SuperSpeed Plus can refer to gen2x1, gen1x2, or gen2x2. 3) Add a new gadget opts to set the sublink speed for drivers that are constrained to certain lane count or lane speed mantissa. 4) Add miscellaneous initialization checks for DWC_usb32. Any review comment is highly appreciated. Thank you, Thinh This patch series depends on the following patches usb: dwc3: Fix GTXFIFOSIZ.TXFDEP macro name usb: dwc3: gadget: Properly set maxpacket limit https://patchwork.kernel.org/cover/11283761/ Thinh Nguyen (14): usb: gadget: Add lane count and lsm usb: gadget: Add callback to set lane and transfer rate usb: composite: Properly report lsm usb: dwc3: Implement new id check for DWC_usb32 usb: dwc3: Update IP checks to support DWC_usb32 usb: devicetree: dwc3: Add max lane and lsm usb: dwc3: gadget: Set lane count and lsm usb: dwc3: gadget: Track connected lane count and speed usb: dwc3: gadget: Limit the setting of speed usb: dwc3: Update HWPARAMS0.MDWIDTH for DWC_usb32 usb: devicetree: dwc3: Add TRB prefetch count usb: dwc3: gadget: Set number of TRB prefetch usb: devicetree: dwc3: Add property to disable mult TRB fetch usb: dwc3: gadget: Implement disabling of mult TRB fetch Documentation/devicetree/bindings/usb/dwc3.txt | 9 ++ drivers/usb/dwc3/core.c | 88 ++++++++---- drivers/usb/dwc3/core.h | 65 ++++++--- drivers/usb/dwc3/debugfs.c | 14 +- drivers/usb/dwc3/gadget.c | 181 +++++++++++++++++++------ drivers/usb/dwc3/host.c | 2 +- drivers/usb/gadget/composite.c | 16 ++- drivers/usb/gadget/legacy/mass_storage.c | 2 + drivers/usb/gadget/udc/core.c | 38 +++++- include/linux/usb/composite.h | 4 + include/linux/usb/gadget.h | 15 ++ 11 files changed, 344 insertions(+), 90 deletions(-) -- 2.11.0