| 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 |