config USB_CDNS3
	tristate "Cadence USB3 Dual-Role Controller"
	depends on USB_XHCI_HCD || USB_GADGET
	help
	  Say Y here if your system has a Cadence USB3 dual-role controller.
	  It supports: Host-only, and Peripheral-only.

if USB_CDNS3

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

	  This controller supports FF and HS 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 SPL_USB_CDNS3_GADGET
	bool "SPL support for Cadence USB3 device controller"
	depends on SPL_USB_GADGET
	select USB_GADGET_DUALSPEED
	help
	  Say Y here to enable device controller functionality of the
	  Cadence USBSS-DEV driver in SPL.

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

config SPL_USB_CDNS3_HOST
	bool "Cadence USB3 host controller"
	depends on USB_XHCI_HCD && SPL_USB_HOST
	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_TI
	tristate "Cadence USB3 support on TI platforms"
	default USB_CDNS3
	help
	  Say 'Y' here if you are building for Texas Instruments
	  platforms that contain Cadence USB3 controller core. E.g.: J721e.
endif
