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_SUPPORT
	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
