1config USB_CDNS_SUPPORT 2 tristate "Cadence USB Support" 3 depends on USB_SUPPORT && HAS_DMA 4 depends on USB || USB_GADGET 5 depends on USB if !USB_GADGET 6 depends on USB_GADGET if !USB 7 select USB_XHCI_PLATFORM if USB_XHCI_HCD 8 select USB_ROLE_SWITCH 9 help 10 Say Y here if your system has a Cadence USBSS or USBSSP 11 dual-role controller. 12 It supports: dual-role switch, Host-only, and Peripheral-only. 13 14if USB_CDNS_SUPPORT 15 16config USB_CDNS3 17 tristate "Cadence USB dual-role controller (USBSS and USBSSP)" 18 depends on USB_CDNS_SUPPORT 19 help 20 Say Y or M here if your system has an on-chip Cadence USB 21 dual-role controller. This covers both USBSS (USB 3.0) and 22 USBSSP (SuperSpeed Plus) IP; the driver detects the variant at 23 runtime. 24 25 The core driver (core, DRD, generic platform binding for the 26 "cdns,usb3" device tree compatible, optional host and gadget) 27 builds as one module named cdns.ko when built as a loadable 28 module. 29 30 It supports: dual-role switch, Host-only, and Peripheral-only. 31 32if USB_CDNS3 33 34config USB_CDNS3_HOST 35 bool "Cadence USB host controller (xHCI)" 36 depends on USB=y || USB=USB_CDNS3 37 help 38 Say Y here to enable host controller functionality for Cadence 39 USBSS and USBSSP dual-role controllers. 40 41 The host controller is xHCI compliant and uses the standard 42 xHCI driver. 43 44config USB_CDNS3_GADGET 45 bool "Cadence USB device controller (USBSS and USBSSP)" 46 depends on USB_GADGET=y || USB_GADGET=USB_CDNS3 47 help 48 Say Y here to include Cadence USB device (gadget) support for 49 both USBSS (USB 3.0) and USBSSP (SuperSpeed Plus) IP in the 50 cdns.ko module. The implementation is selected at runtime from 51 the detected controller version. 52 53 USBSS gadget supports FF, HS and SS mode (not LS or SSP). 54 USBSSP gadget supports FF, HS, SS and SSP mode (not LS). 55 56comment "Platform glue driver support" 57 58config USB_CDNS3_PCI_WRAP 59 tristate "Cadence USB3 support on PCIe-based platforms" 60 depends on USB_PCI && ACPI 61 default USB_CDNS3 62 help 63 If you're using the USBSS Core IP with a PCIe, please say 64 'Y' or 'M' here. 65 66 If you choose to build this driver as module it will 67 be dynamically linked and module will be called cdns3-pci.ko 68 69config USB_CDNSP_PCI 70 tristate "Cadence USBSSP support on PCIe-based platforms" 71 depends on USB_PCI && ACPI 72 default USB_CDNS3 73 help 74 If you're using the USBSSP Core IP with a PCIe, please say 75 'Y' or 'M' here. 76 77 If you choose to build this driver as module it will 78 be dynamically linked and module will be called cdnsp-pci.ko 79 80config USB_CDNS3_TI 81 tristate "Cadence USB3 support on TI platforms" 82 depends on ARCH_K3 || COMPILE_TEST 83 default USB_CDNS3 84 help 85 Say 'Y' or 'M' here if you are building for Texas Instruments 86 platforms that contain Cadence USB3 controller core. 87 88 e.g. J721e. 89 90config USB_CDNS3_IMX 91 tristate "Cadence USB3 support on NXP i.MX platforms" 92 depends on ARCH_MXC || COMPILE_TEST 93 default USB_CDNS3 94 help 95 Say 'Y' or 'M' here if you are building for NXP i.MX 96 platforms that contain Cadence USB3 controller core. 97 98 For example, imx8qm and imx8qxp. 99 100config USB_CDNS3_STARFIVE 101 tristate "Cadence USB3 support on StarFive SoC platforms" 102 depends on ARCH_STARFIVE || COMPILE_TEST 103 default USB_CDNS3 104 help 105 Say 'Y' or 'M' here if you are building for StarFive SoCs 106 platforms that contain Cadence USB3 controller core. 107 108 e.g. JH7110. 109 110 If you choose to build this driver as module it will 111 be dynamically linked and module will be called cdns3-starfive.ko 112 113endif # USB_CDNS3 114 115endif # USB_CDNS_SUPPORT 116