xref: /linux/drivers/usb/dwc3/Kconfig (revision be709d48329a500621d2a05835283150ae137b45)
1# SPDX-License-Identifier: GPL-2.0
2
3config USB_DWC3
4	tristate "DesignWare USB3 DRD Core Support"
5	depends on (USB || USB_GADGET) && HAS_DMA
6	select USB_XHCI_PLATFORM if USB_XHCI_HCD
7	help
8	  Say Y or M here if your system has a Dual Role SuperSpeed
9	  USB controller based on the DesignWare USB3 IP Core.
10
11	  If you choose to build this driver is a dynamically linked
12	  module, the module will be called dwc3.ko.
13
14if USB_DWC3
15
16config USB_DWC3_ULPI
17	bool "Register ULPI PHY Interface"
18	depends on USB_ULPI_BUS=y || USB_ULPI_BUS=USB_DWC3
19	help
20	  Select this if you have ULPI type PHY attached to your DWC3
21	  controller.
22
23choice
24	bool "DWC3 Mode Selection"
25	default USB_DWC3_DUAL_ROLE if (USB && USB_GADGET)
26	default USB_DWC3_HOST if (USB && !USB_GADGET)
27	default USB_DWC3_GADGET if (!USB && USB_GADGET)
28
29config USB_DWC3_HOST
30	bool "Host only mode"
31	depends on USB=y || USB=USB_DWC3
32	help
33	  Select this when you want to use DWC3 in host mode only,
34	  thereby the gadget feature will be regressed.
35
36config USB_DWC3_GADGET
37	bool "Gadget only mode"
38	depends on USB_GADGET=y || USB_GADGET=USB_DWC3
39	help
40	  Select this when you want to use DWC3 in gadget mode only,
41	  thereby the host feature will be regressed.
42
43config USB_DWC3_DUAL_ROLE
44	bool "Dual Role mode"
45	depends on ((USB=y || USB=USB_DWC3) && (USB_GADGET=y || USB_GADGET=USB_DWC3))
46	depends on (EXTCON=y || EXTCON=USB_DWC3)
47	help
48	  This is the default mode of working of DWC3 controller where
49	  both host and gadget features are enabled.
50
51endchoice
52
53comment "Platform Glue Driver Support"
54
55config USB_DWC3_OMAP
56	tristate "Texas Instruments OMAP5 and similar Platforms"
57	depends on EXTCON && (ARCH_OMAP2PLUS || COMPILE_TEST)
58	depends on OF
59	default USB_DWC3
60	help
61	  Some platforms from Texas Instruments like OMAP5, DRA7xxx and
62	  AM437x use this IP for USB2/3 functionality.
63
64	  Say 'Y' or 'M' here if you have one such device
65
66config USB_DWC3_EXYNOS
67	tristate "Samsung Exynos Platform"
68	depends on (ARCH_EXYNOS || COMPILE_TEST) && OF
69	default USB_DWC3
70	help
71	  Recent Exynos5 SoCs ship with one DesignWare Core USB3 IP inside,
72	  say 'Y' or 'M' if you have one such device.
73
74config USB_DWC3_PCI
75	tristate "PCIe-based Platforms"
76	depends on USB_PCI && ACPI
77	default USB_DWC3
78	help
79	  If you're using the DesignWare Core IP with a PCIe (but not HAPS
80	  platform), please say 'Y' or 'M' here.
81
82config USB_DWC3_HAPS
83	tristate "Synopsys PCIe-based HAPS Platforms"
84	depends on USB_PCI
85	default USB_DWC3
86	help
87	  If you're using the DesignWare Core IP with a Synopsys PCIe HAPS
88	  platform, please say 'Y' or 'M' here.
89
90config USB_DWC3_KEYSTONE
91	tristate "Texas Instruments Keystone2/AM654 Platforms"
92	depends on ARCH_KEYSTONE || ARCH_K3 || COMPILE_TEST
93	default USB_DWC3
94	help
95	  Support of USB2/3 functionality in TI Keystone2 and AM654 platforms.
96	  Say 'Y' or 'M' here if you have one such device
97
98config USB_DWC3_OF_SIMPLE
99       tristate "Generic OF Simple Glue Layer"
100       depends on OF && COMMON_CLK
101       default USB_DWC3
102       help
103         Support USB2/3 functionality in simple SoC integrations.
104	 Currently supports Xilinx and Qualcomm DWC USB3 IP.
105	 Say 'Y' or 'M' if you have one such device.
106
107config USB_DWC3_ST
108	tristate "STMicroelectronics Platforms"
109	depends on (ARCH_STI || COMPILE_TEST) && OF
110	default USB_DWC3
111	help
112	  STMicroelectronics SoCs with one DesignWare Core USB3 IP
113	  inside (i.e. STiH407).
114	  Say 'Y' or 'M' if you have one such device.
115
116config USB_DWC3_QCOM
117	tristate "Qualcomm Platform"
118	depends on EXTCON && (ARCH_QCOM || COMPILE_TEST)
119	depends on OF
120	default USB_DWC3
121	help
122	  Some Qualcomm SoCs use DesignWare Core IP for USB2/3
123	  functionality.
124	  This driver also handles Qscratch wrapper which is needed
125	  for peripheral mode support.
126	  Say 'Y' or 'M' if you have one such device.
127
128endif
129