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
81endif
82
83if USB_CDNS_SUPPORT
84
85config USB_CDNSP_PCI
86	tristate "Cadence CDNSP Dual-Role Controller"
87	depends on USB_CDNS_SUPPORT && USB_PCI && ACPI
88	help
89	  Say Y here if your system has a Cadence CDNSP dual-role controller.
90	  It supports: dual-role switch Host-only, and Peripheral-only.
91
92	  If you choose to build this driver is a dynamically linked
93	  module, the module will be called cdnsp.ko.
94endif
95
96if USB_CDNSP_PCI
97
98config USB_CDNSP_GADGET
99	bool "Cadence CDNSP device controller"
100	depends on USB_GADGET=y || USB_GADGET=USB_CDNSP_PCI
101	help
102	  Say Y here to enable device controller functionality of the
103	  Cadence CDNSP-DEV driver.
104
105	  Cadence CDNSP Device Controller in device mode is
106	  very similar to XHCI controller. Therefore some algorithms
107	  used has been taken from host driver.
108	  This controller supports FF, HS, SS and SSP mode.
109	  It doesn't support LS.
110
111config USB_CDNSP_HOST
112	bool "Cadence CDNSP host controller"
113	depends on USB=y || USB=USB_CDNSP_PCI
114	select USB_CDNS_HOST
115	help
116	  Say Y here to enable host controller functionality of the
117	  Cadence driver.
118
119	  Host controller is compliant with XHCI so it uses
120	  standard XHCI driver.
121
122endif
123