config USB_CDNS_SUPPORT
	tristate "Cadence USB Support"
	depends on USB_SUPPORT && (USB || USB_GADGET) && HAS_DMA
	select USB_XHCI_PLATFORM if USB_XHCI_HCD
	select USB_ROLE_SWITCH
	help
	  Say Y here if your system has a Cadence USBSS or USBSSP
	  dual-role controller.
	  It supports: dual-role switch, Host-only, and Peripheral-only.

config USB_CDNS_HOST
	bool

if USB_CDNS_SUPPORT

config USB_CDNS3
	tristate "Cadence USB3 Dual-Role Controller"
	depends on USB_CDNS_SUPPORT
	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.

config USB_CDNSP
	tristate "Cadence USBSSP Dual-Role Controller"
	depends on USB_CDNS_SUPPORT
	help
	  Say Y here if your system has a Cadence USBSSP 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 cdnsp.ko.

endif

if USB_CDNS3

config USB_CDNS3_GADGET
	bool "Cadence USB3 device controller"
	depends on USB_GADGET=y || USB_GADGET=USB_CDNS3
	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=y || USB=USB_CDNS3
	select USB_CDNS_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_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

config USB_CDNS3_TI
	tristate "Cadence USB3 support on TI platforms"
	depends on ARCH_K3 || COMPILE_TEST
	default USB_CDNS3
	help
	  Say 'Y' or 'M' here if you are building for Texas Instruments
	  platforms that contain Cadence USB3 controller core.

	  e.g. J721e.

config USB_CDNS3_IMX
	tristate "Cadence USB3 support on NXP i.MX platforms"
	depends on ARCH_MXC || COMPILE_TEST
	default USB_CDNS3
	help
	  Say 'Y' or 'M' here if you are building for NXP i.MX
	  platforms that contain Cadence USB3 controller core.

	  For example, imx8qm and imx8qxp.

endif

if USB_CDNSP

config USB_CDNSP_GADGET
	bool "Cadence USBSSP device controller"
	depends on USB_GADGET=y || USB_GADGET=USB_CDNSP
	help
	  Say Y here to enable device controller functionality of the
	  Cadence USBSSP-DEV driver.

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

config USB_CDNSP_HOST
	bool "Cadence USB3 host controller"
	depends on USB=y || USB=USB_CDNSP
	select USB_CDNS_HOST
	help
	  Say Y here to enable host controller functionality of the
	  Cadence driver.

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

config USB_CDNSP_PCI_WRAP
	tristate "PCI base on Cadence CDNSP Dual-Role Controller"
	depends on USB_PCI && ACPI
	default USB_CDNSP
	help
	  If you're using the USBSSP 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 cdnsp-pci.ko

config USB_CDNSP_SKY1
	tristate "sky1 base on Cadence CDNSP Dual-Role Controller"
	depends on OF || COMPILE_TEST
	help
	  Say Y here if sky1 has a Cadence CDNSP dual-role controller.

	  If you choose to build this driver is a dynamically linked
	  module, the module will be called cdnsp-sky1.ko.

endif
