162306a36Sopenharmony_ciconfig USB_CDNS_SUPPORT
262306a36Sopenharmony_ci	tristate "Cadence USB Support"
362306a36Sopenharmony_ci	depends on USB_SUPPORT && (USB || USB_GADGET) && HAS_DMA
462306a36Sopenharmony_ci	select USB_XHCI_PLATFORM if USB_XHCI_HCD
562306a36Sopenharmony_ci	select USB_ROLE_SWITCH
662306a36Sopenharmony_ci	help
762306a36Sopenharmony_ci	  Say Y here if your system has a Cadence USBSS or USBSSP
862306a36Sopenharmony_ci	  dual-role controller.
962306a36Sopenharmony_ci	  It supports: dual-role switch, Host-only, and Peripheral-only.
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_ciconfig USB_CDNS_HOST
1262306a36Sopenharmony_ci	bool
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_ciif USB_CDNS_SUPPORT
1562306a36Sopenharmony_ci
1662306a36Sopenharmony_ciconfig USB_CDNS3
1762306a36Sopenharmony_ci	tristate "Cadence USB3 Dual-Role Controller"
1862306a36Sopenharmony_ci	depends on USB_CDNS_SUPPORT
1962306a36Sopenharmony_ci	help
2062306a36Sopenharmony_ci	  Say Y here if your system has a Cadence USB3 dual-role controller.
2162306a36Sopenharmony_ci	  It supports: dual-role switch, Host-only, and Peripheral-only.
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_ci	  If you choose to build this driver is a dynamically linked
2462306a36Sopenharmony_ci	  as module, the module will be called cdns3.ko.
2562306a36Sopenharmony_ciendif
2662306a36Sopenharmony_ci
2762306a36Sopenharmony_ciif USB_CDNS3
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_ciconfig USB_CDNS3_GADGET
3062306a36Sopenharmony_ci	bool "Cadence USB3 device controller"
3162306a36Sopenharmony_ci	depends on USB_GADGET=y || USB_GADGET=USB_CDNS3
3262306a36Sopenharmony_ci	help
3362306a36Sopenharmony_ci	  Say Y here to enable device controller functionality of the
3462306a36Sopenharmony_ci	  Cadence USBSS-DEV driver.
3562306a36Sopenharmony_ci
3662306a36Sopenharmony_ci	  This controller supports FF, HS and SS mode. It doesn't support
3762306a36Sopenharmony_ci	  LS and SSP mode.
3862306a36Sopenharmony_ci
3962306a36Sopenharmony_ciconfig USB_CDNS3_HOST
4062306a36Sopenharmony_ci	bool "Cadence USB3 host controller"
4162306a36Sopenharmony_ci	depends on USB=y || USB=USB_CDNS3
4262306a36Sopenharmony_ci	select USB_CDNS_HOST
4362306a36Sopenharmony_ci	help
4462306a36Sopenharmony_ci	  Say Y here to enable host controller functionality of the
4562306a36Sopenharmony_ci	  Cadence driver.
4662306a36Sopenharmony_ci
4762306a36Sopenharmony_ci	  Host controller is compliant with XHCI so it will use
4862306a36Sopenharmony_ci	  standard XHCI driver.
4962306a36Sopenharmony_ci
5062306a36Sopenharmony_ciconfig USB_CDNS3_PCI_WRAP
5162306a36Sopenharmony_ci	tristate "Cadence USB3 support on PCIe-based platforms"
5262306a36Sopenharmony_ci	depends on USB_PCI && ACPI
5362306a36Sopenharmony_ci	default USB_CDNS3
5462306a36Sopenharmony_ci	help
5562306a36Sopenharmony_ci	  If you're using the USBSS Core IP with a PCIe, please say
5662306a36Sopenharmony_ci	  'Y' or 'M' here.
5762306a36Sopenharmony_ci
5862306a36Sopenharmony_ci	  If you choose to build this driver as module it will
5962306a36Sopenharmony_ci	  be dynamically linked and module will be called cdns3-pci.ko
6062306a36Sopenharmony_ci
6162306a36Sopenharmony_ciconfig USB_CDNS3_TI
6262306a36Sopenharmony_ci	tristate "Cadence USB3 support on TI platforms"
6362306a36Sopenharmony_ci	depends on ARCH_K3 || COMPILE_TEST
6462306a36Sopenharmony_ci	default USB_CDNS3
6562306a36Sopenharmony_ci	help
6662306a36Sopenharmony_ci	  Say 'Y' or 'M' here if you are building for Texas Instruments
6762306a36Sopenharmony_ci	  platforms that contain Cadence USB3 controller core.
6862306a36Sopenharmony_ci
6962306a36Sopenharmony_ci	  e.g. J721e.
7062306a36Sopenharmony_ci
7162306a36Sopenharmony_ciconfig USB_CDNS3_IMX
7262306a36Sopenharmony_ci	tristate "Cadence USB3 support on NXP i.MX platforms"
7362306a36Sopenharmony_ci	depends on ARCH_MXC || COMPILE_TEST
7462306a36Sopenharmony_ci	default USB_CDNS3
7562306a36Sopenharmony_ci	help
7662306a36Sopenharmony_ci	  Say 'Y' or 'M' here if you are building for NXP i.MX
7762306a36Sopenharmony_ci	  platforms that contain Cadence USB3 controller core.
7862306a36Sopenharmony_ci
7962306a36Sopenharmony_ci	  For example, imx8qm and imx8qxp.
8062306a36Sopenharmony_ci
8162306a36Sopenharmony_ciconfig USB_CDNS3_STARFIVE
8262306a36Sopenharmony_ci	tristate "Cadence USB3 support on StarFive SoC platforms"
8362306a36Sopenharmony_ci	depends on ARCH_STARFIVE || COMPILE_TEST
8462306a36Sopenharmony_ci	help
8562306a36Sopenharmony_ci	  Say 'Y' or 'M' here if you are building for StarFive SoCs
8662306a36Sopenharmony_ci	  platforms that contain Cadence USB3 controller core.
8762306a36Sopenharmony_ci
8862306a36Sopenharmony_ci	  e.g. JH7110.
8962306a36Sopenharmony_ci
9062306a36Sopenharmony_ci	  If you choose to build this driver as module it will
9162306a36Sopenharmony_ci	  be dynamically linked and module will be called cdns3-starfive.ko
9262306a36Sopenharmony_ciendif
9362306a36Sopenharmony_ci
9462306a36Sopenharmony_ciif USB_CDNS_SUPPORT
9562306a36Sopenharmony_ci
9662306a36Sopenharmony_ciconfig USB_CDNSP_PCI
9762306a36Sopenharmony_ci	tristate "Cadence CDNSP Dual-Role Controller"
9862306a36Sopenharmony_ci	depends on USB_CDNS_SUPPORT && USB_PCI && ACPI
9962306a36Sopenharmony_ci	help
10062306a36Sopenharmony_ci	  Say Y here if your system has a Cadence CDNSP dual-role controller.
10162306a36Sopenharmony_ci	  It supports: dual-role switch Host-only, and Peripheral-only.
10262306a36Sopenharmony_ci
10362306a36Sopenharmony_ci	  If you choose to build this driver is a dynamically linked
10462306a36Sopenharmony_ci	  module, the module will be called cdnsp.ko.
10562306a36Sopenharmony_ciendif
10662306a36Sopenharmony_ci
10762306a36Sopenharmony_ciif USB_CDNSP_PCI
10862306a36Sopenharmony_ci
10962306a36Sopenharmony_ciconfig USB_CDNSP_GADGET
11062306a36Sopenharmony_ci	bool "Cadence CDNSP device controller"
11162306a36Sopenharmony_ci	depends on USB_GADGET=y || USB_GADGET=USB_CDNSP_PCI
11262306a36Sopenharmony_ci	help
11362306a36Sopenharmony_ci	  Say Y here to enable device controller functionality of the
11462306a36Sopenharmony_ci	  Cadence CDNSP-DEV driver.
11562306a36Sopenharmony_ci
11662306a36Sopenharmony_ci	  Cadence CDNSP Device Controller in device mode is
11762306a36Sopenharmony_ci	  very similar to XHCI controller. Therefore some algorithms
11862306a36Sopenharmony_ci	  used has been taken from host driver.
11962306a36Sopenharmony_ci	  This controller supports FF, HS, SS and SSP mode.
12062306a36Sopenharmony_ci	  It doesn't support LS.
12162306a36Sopenharmony_ci
12262306a36Sopenharmony_ciconfig USB_CDNSP_HOST
12362306a36Sopenharmony_ci	bool "Cadence CDNSP host controller"
12462306a36Sopenharmony_ci	depends on USB=y || USB=USB_CDNSP_PCI
12562306a36Sopenharmony_ci	select USB_CDNS_HOST
12662306a36Sopenharmony_ci	help
12762306a36Sopenharmony_ci	  Say Y here to enable host controller functionality of the
12862306a36Sopenharmony_ci	  Cadence driver.
12962306a36Sopenharmony_ci
13062306a36Sopenharmony_ci	  Host controller is compliant with XHCI so it uses
13162306a36Sopenharmony_ci	  standard XHCI driver.
13262306a36Sopenharmony_ci
13362306a36Sopenharmony_ciendif
134