xref: /linux/drivers/usb/cdns3/Kconfig (revision e4d7362dc9cd50b0fc74c8649aa241376c48936c)
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