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