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.

config USB_CDNS3_STARFIVE
	tristate "Cadence USB3 support on StarFive SoC platforms"
	depends on ARCH_STARFIVE || COMPILE_TEST
	help
	  Say 'Y' or 'M' here if you are building for StarFive SoCs
	  platforms that contain Cadence USB3 controller core.

	  e.g. JH7110.

	  If you choose to build this driver as module it will
	  be dynamically linked and module will be called cdns3-starfive.ko
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
