blob: 39ad23d1ada8982ca87479795b93f26befe3845f [file]
config USB_CDNS_SUPPORT
tristate "Cadence USB Support"
depends on USB_SUPPORT && HAS_DMA
depends on USB || USB_GADGET
depends on USB if !USB_GADGET
depends on USB_GADGET if !USB
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.
if USB_CDNS_SUPPORT
config USB_CDNS3
tristate "Cadence USB dual-role controller (USBSS and USBSSP)"
depends on USB_CDNS_SUPPORT
help
Say Y or M here if your system has an on-chip Cadence USB
dual-role controller. This covers both USBSS (USB 3.0) and
USBSSP (SuperSpeed Plus) IP; the driver detects the variant at
runtime.
The core driver (core, DRD, generic platform binding for the
"cdns,usb3" device tree compatible, optional host and gadget)
builds as one module named cdns.ko when built as a loadable
module.
It supports: dual-role switch, Host-only, and Peripheral-only.
if USB_CDNS3
config USB_CDNS3_HOST
bool "Cadence USB host controller (xHCI)"
depends on USB=y || USB=USB_CDNS3
help
Say Y here to enable host controller functionality for Cadence
USBSS and USBSSP dual-role controllers.
The host controller is xHCI compliant and uses the standard
xHCI driver.
config USB_CDNS3_GADGET
bool "Cadence USB device controller (USBSS and USBSSP)"
depends on USB_GADGET=y || USB_GADGET=USB_CDNS3
help
Say Y here to include Cadence USB device (gadget) support for
both USBSS (USB 3.0) and USBSSP (SuperSpeed Plus) IP in the
cdns.ko module. The implementation is selected at runtime from
the detected controller version.
USBSS gadget supports FF, HS and SS mode (not LS or SSP).
USBSSP gadget supports FF, HS, SS and SSP mode (not LS).
comment "Platform glue driver support"
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_CDNSP_PCI
tristate "Cadence USBSSP support on PCIe-based platforms"
depends on USB_PCI && ACPI
default USB_CDNS3
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_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
default USB_CDNS3
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 # USB_CDNS3
endif # USB_CDNS_SUPPORT