1config USB_CDNS_SUPPORT
2	tristate "Cadence USB Support"
3	depends on USB_SUPPORT && (USB || USB_GADGET) && HAS_DMA
4	select USB_XHCI_PLATFORM if USB_XHCI_HCD
5	select USB_ROLE_SWITCH
6	help
7	  Say Y here if your system has a Cadence USBSS or USBSSP
8	  dual-role controller.
9	  It supports: dual-role switch, Host-only, and Peripheral-only.
10
11config USB_CDNS_HOST
12	bool
13
14if USB_CDNS_SUPPORT
15
16config USB_CDNS3
17	tristate "Cadence USB3 Dual-Role Controller"
18	depends on USB_CDNS_SUPPORT
19	help
20	  Say Y here if your system has a Cadence USB3 dual-role controller.
21	  It supports: dual-role switch, Host-only, and Peripheral-only.
22
23	  If you choose to build this driver is a dynamically linked
24	  as module, the module will be called cdns3.ko.
25endif
26
27if USB_CDNS3
28
29config USB_CDNS3_GADGET
30	bool "Cadence USB3 device controller"
31	depends on USB_GADGET=y || USB_GADGET=USB_CDNS3
32	help
33	  Say Y here to enable device controller functionality of the
34	  Cadence USBSS-DEV driver.
35
36	  This controller supports FF, HS and SS mode. It doesn't support
37	  LS and SSP mode.
38
39config USB_CDNS3_HOST
40	bool "Cadence USB3 host controller"
41	depends on USB=y || USB=USB_CDNS3
42	select USB_CDNS_HOST
43	help
44	  Say Y here to enable host controller functionality of the
45	  Cadence driver.
46
47	  Host controller is compliant with XHCI so it will use
48	  standard XHCI driver.
49
50config USB_CDNS3_PCI_WRAP
51	tristate "Cadence USB3 support on PCIe-based platforms"
52	depends on USB_PCI && ACPI
53	default USB_CDNS3
54	help
55	  If you're using the USBSS Core IP with a PCIe, please say
56	  'Y' or 'M' here.
57
58	  If you choose to build this driver as module it will
59	  be dynamically linked and module will be called cdns3-pci.ko
60
61config USB_CDNS3_TI
62	tristate "Cadence USB3 support on TI platforms"
63	depends on ARCH_K3 || COMPILE_TEST
64	default USB_CDNS3
65	help
66	  Say 'Y' or 'M' here if you are building for Texas Instruments
67	  platforms that contain Cadence USB3 controller core.
68
69	  e.g. J721e.
70
71config USB_CDNS3_IMX
72	tristate "Cadence USB3 support on NXP i.MX platforms"
73	depends on ARCH_MXC || COMPILE_TEST
74	default USB_CDNS3
75	help
76	  Say 'Y' or 'M' here if you are building for NXP i.MX
77	  platforms that contain Cadence USB3 controller core.
78
79	  For example, imx8qm and imx8qxp.
80
81config USB_CDNS3_STARFIVE
82	tristate "Cadence USB3 support on StarFive SoC platforms"
83	depends on ARCH_STARFIVE || COMPILE_TEST
84	help
85	  Say 'Y' or 'M' here if you are building for StarFive SoCs
86	  platforms that contain Cadence USB3 controller core.
87
88	  e.g. JH7110.
89
90	  If you choose to build this driver as module it will
91	  be dynamically linked and module will be called cdns3-starfive.ko
92endif
93
94if USB_CDNS_SUPPORT
95
96config USB_CDNSP_PCI
97	tristate "Cadence CDNSP Dual-Role Controller"
98	depends on USB_CDNS_SUPPORT && USB_PCI && ACPI
99	help
100	  Say Y here if your system has a Cadence CDNSP dual-role controller.
101	  It supports: dual-role switch Host-only, and Peripheral-only.
102
103	  If you choose to build this driver is a dynamically linked
104	  module, the module will be called cdnsp.ko.
105endif
106
107if USB_CDNSP_PCI
108
109config USB_CDNSP_GADGET
110	bool "Cadence CDNSP device controller"
111	depends on USB_GADGET=y || USB_GADGET=USB_CDNSP_PCI
112	help
113	  Say Y here to enable device controller functionality of the
114	  Cadence CDNSP-DEV driver.
115
116	  Cadence CDNSP Device Controller in device mode is
117	  very similar to XHCI controller. Therefore some algorithms
118	  used has been taken from host driver.
119	  This controller supports FF, HS, SS and SSP mode.
120	  It doesn't support LS.
121
122config USB_CDNSP_HOST
123	bool "Cadence CDNSP host controller"
124	depends on USB=y || USB=USB_CDNSP_PCI
125	select USB_CDNS_HOST
126	help
127	  Say Y here to enable host controller functionality of the
128	  Cadence driver.
129
130	  Host controller is compliant with XHCI so it uses
131	  standard XHCI driver.
132
133endif
134