Commit 51785bdd authored by Greg Kroah-Hartman's avatar Greg Kroah-Hartman
Browse files

Merge tag 'usb-for-v5.3-part2' of...

Merge tag 'usb-for-v5.3-part2' of git://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb

 into usb-next

Felipe writes:

USB: more changes for v5.3 merge window

Turns out a few more important changes came about. We have the new
Cadence DRD Driver being added here and that's the biggest, most
important part.

Together with that we have suport for new imx7ulp phy. Support for
TigerLake Devices on dwc3. Also a couple important fixes which weren't
completed in time for the -rc cycle.

Signed-off-by: default avatarFelipe Balbi <felipe.balbi@linux.intel.com>

* tag 'usb-for-v5.3-part2' of git://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb:
  usb: renesas_usbhs: add a workaround for a race condition of workqueue
  usb: gadget: udc: renesas_usb3: remove redundant assignment to ret
  usb: dwc2: use a longer AHB idle timeout in dwc2_core_reset()
  USB: gadget: function: fix issue Unneeded variable: "value"
  usb: phy: phy-mxs-usb: add imx7ulp support
  doc: dt-binding: mxs-usb-phy: add compatible for 7ulp
  usb:cdns3 Fix for stuck packets in on-chip OUT buffer.
  usb:cdns3 Add Cadence USB3 DRD Driver
  usb:gadget Simplify usb_decode_get_set_descriptor function.
  usb:gadget Patch simplify usb_decode_set_clear_feature function.
  usb:gadget Separated decoding functions from dwc3 driver.
  dt-bindings: add binding for USBSS-DRD controller.
  usb: dwc3: pci: add support for TigerLake Devices
parents 7f61abcd b2357839
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -7,6 +7,7 @@ Required properties:
	* "fsl,imx6sl-usbphy" for imx6sl
	* "fsl,vf610-usbphy" for Vybrid vf610
	* "fsl,imx6sx-usbphy" for imx6sx
	* "fsl,imx7ulp-usbphy" for imx7ulp
  "fsl,imx23-usbphy" is still a fallback for other strings
- reg: Should contain registers location and length
- interrupts: Should contain phy interrupt
@@ -23,7 +24,7 @@ Optional properties:
  the 17.78mA TX reference current. Default: 100

Example:
usbphy1: usbphy@20c9000 {
usbphy1: usb-phy@20c9000 {
	compatible = "fsl,imx6q-usbphy", "fsl,imx23-usbphy";
	reg = <0x020c9000 0x1000>;
	interrupts = <0 44 0x04>;
+45 −0
Original line number Diff line number Diff line
Binding for the Cadence USBSS-DRD controller

Required properties:
 - reg: Physical base address and size of the controller's register areas.
	 Controller has 3 different regions:
	 - HOST registers area
	 - DEVICE registers area
	 - OTG/DRD registers area
 - reg-names - register memory area names:
	"xhci" - for HOST registers space
	"dev" - for DEVICE registers space
	"otg" - for OTG/DRD registers space
 - compatible: Should contain: "cdns,usb3"
 - interrupts: Interrupts used by cdns3 controller:
	"host" - interrupt used by XHCI driver.
	"peripheral" - interrupt used by device driver
	"otg" - interrupt used by DRD/OTG  part of driver

Optional properties:
 - maximum-speed : valid arguments are "super-speed", "high-speed" and
                   "full-speed"; refer to usb/generic.txt
 - dr_mode: Should be one of "host", "peripheral" or "otg".
 - phys: reference to the USB PHY
 - phy-names: from the *Generic PHY* bindings;
	Supported names are:
	- cdns3,usb2-phy
	- cdns3,usb3-phy

 - cdns,on-chip-buff-size : size of memory intended as internal memory for endpoints
	buffers expressed in KB

Example:
	usb@f3000000 {
		compatible = "cdns,usb3";
		interrupts = <GIC_USB_IRQ 7 IRQ_TYPE_LEVEL_HIGH>,
				<GIC_USB_IRQ  7 IRQ_TYPE_LEVEL_HIGH>,
				<GIC_USB_IRQ  8 IRQ_TYPE_LEVEL_HIGH>;
		interrupt-names = "host", "peripheral", "otg";
		reg = <0xf3000000 0x10000>,	/* memory area for HOST registers */
			<0xf3010000 0x10000>,	/* memory area for DEVICE registers */
			<0xf3020000 0x10000>;	/* memory area for OTG/DRD registers */
		reg-names = "xhci", "dev", "otg";
		phys = <&usb2_phy>, <&usb3_phy>;
		phy-names = "cdns3,usb2-phy", "cnds3,usb3-phy";
	};
+2 −0
Original line number Diff line number Diff line
@@ -113,6 +113,8 @@ source "drivers/usb/usbip/Kconfig"

endif

source "drivers/usb/cdns3/Kconfig"

source "drivers/usb/mtu3/Kconfig"

source "drivers/usb/musb/Kconfig"
+2 −0
Original line number Diff line number Diff line
@@ -13,6 +13,8 @@ obj-$(CONFIG_USB_DWC3) += dwc3/
obj-$(CONFIG_USB_DWC2)		+= dwc2/
obj-$(CONFIG_USB_ISP1760)	+= isp1760/

obj-$(CONFIG_USB_CDNS3)		+= cdns3/

obj-$(CONFIG_USB_MON)		+= mon/
obj-$(CONFIG_USB_MTU3)		+= mtu3/

+44 −0
Original line number Diff line number Diff line
config USB_CDNS3
	tristate "Cadence USB3 Dual-Role Controller"
	depends on USB_SUPPORT && (USB || USB_GADGET) && HAS_DMA
	help
	  Say Y here if your system has a Cadence USB3 dual-role controller.
	  It supports: dual-role switch, Host-only, and Peripheral-only.

	  If you choose to build this driver is a dynamically linked
	  as module, the module will be called cdns3.ko.

if USB_CDNS3

config USB_CDNS3_GADGET
	bool "Cadence USB3 device controller"
	depends on USB_GADGET
	help
	  Say Y here to enable device controller functionality of the
	  Cadence USBSS-DEV driver.

	  This controller supports FF, HS and SS mode. It doesn't support
	  LS and SSP mode.

config USB_CDNS3_HOST
	bool "Cadence USB3 host controller"
	depends on USB_XHCI_HCD
	help
	  Say Y here to enable host controller functionality of the
	  Cadence driver.

	  Host controller is compliant with XHCI so it will use
	  standard XHCI driver.

config USB_CDNS3_PCI_WRAP
	tristate "Cadence USB3 support on PCIe-based platforms"
	depends on USB_PCI && ACPI
	default USB_CDNS3
	help
	  If you're using the USBSS Core IP with a PCIe, please say
	  'Y' or 'M' here.

	  If you choose to build this driver as module it will
	  be dynamically linked and module will be called cdns3-pci.ko

endif
Loading