xref: /linux/drivers/usb/dwc3/Kconfig (revision a51bab592fbbef10f0e42a8aed86adfbf6a68fa7)
1cae8dc3bSGreg Kroah-Hartman# SPDX-License-Identifier: GPL-2.0
2cae8dc3bSGreg Kroah-Hartman
372246da4SFelipe Balbiconfig USB_DWC3
472246da4SFelipe Balbi	tristate "DesignWare USB3 DRD Core Support"
50244ad00SMartin Schwidefsky	depends on (USB || USB_GADGET) && HAS_DMA
6a26a1422SMasahiro Yamada	select USB_XHCI_PLATFORM if USB_XHCI_HCD
772246da4SFelipe Balbi	help
872246da4SFelipe Balbi	  Say Y or M here if your system has a Dual Role SuperSpeed
972246da4SFelipe Balbi	  USB controller based on the DesignWare USB3 IP Core.
1072246da4SFelipe Balbi
1172246da4SFelipe Balbi	  If you choose to build this driver is a dynamically linked
1272246da4SFelipe Balbi	  module, the module will be called dwc3.ko.
1372246da4SFelipe Balbi
1472246da4SFelipe Balbiif USB_DWC3
1572246da4SFelipe Balbi
1688bc9d19SHeikki Krogerusconfig USB_DWC3_ULPI
1788bc9d19SHeikki Krogerus	bool "Register ULPI PHY Interface"
1850641056SThierry Reding	depends on USB_ULPI_BUS=y || USB_ULPI_BUS=USB_DWC3
1988bc9d19SHeikki Krogerus	help
2088bc9d19SHeikki Krogerus	  Select this if you have ULPI type PHY attached to your DWC3
2188bc9d19SHeikki Krogerus	  controller.
2288bc9d19SHeikki Krogerus
23388e5c51SVivek Gautamchoice
24388e5c51SVivek Gautam	bool "DWC3 Mode Selection"
25388e5c51SVivek Gautam	default USB_DWC3_DUAL_ROLE if (USB && USB_GADGET)
26388e5c51SVivek Gautam	default USB_DWC3_HOST if (USB && !USB_GADGET)
27388e5c51SVivek Gautam	default USB_DWC3_GADGET if (!USB && USB_GADGET)
28388e5c51SVivek Gautam
29388e5c51SVivek Gautamconfig USB_DWC3_HOST
30388e5c51SVivek Gautam	bool "Host only mode"
311bc0d926SVivek Gautam	depends on USB=y || USB=USB_DWC3
32388e5c51SVivek Gautam	help
33388e5c51SVivek Gautam	  Select this when you want to use DWC3 in host mode only,
34388e5c51SVivek Gautam	  thereby the gadget feature will be regressed.
35388e5c51SVivek Gautam
36388e5c51SVivek Gautamconfig USB_DWC3_GADGET
37388e5c51SVivek Gautam	bool "Gadget only mode"
381bc0d926SVivek Gautam	depends on USB_GADGET=y || USB_GADGET=USB_DWC3
39388e5c51SVivek Gautam	help
40388e5c51SVivek Gautam	  Select this when you want to use DWC3 in gadget mode only,
41388e5c51SVivek Gautam	  thereby the host feature will be regressed.
42388e5c51SVivek Gautam
43388e5c51SVivek Gautamconfig USB_DWC3_DUAL_ROLE
44388e5c51SVivek Gautam	bool "Dual Role mode"
451bc0d926SVivek Gautam	depends on ((USB=y || USB=USB_DWC3) && (USB_GADGET=y || USB_GADGET=USB_DWC3))
469840354fSRoger Quadros	depends on (EXTCON=y || EXTCON=USB_DWC3)
47388e5c51SVivek Gautam	help
48388e5c51SVivek Gautam	  This is the default mode of working of DWC3 controller where
49388e5c51SVivek Gautam	  both host and gadget features are enabled.
50388e5c51SVivek Gautam
51388e5c51SVivek Gautamendchoice
52388e5c51SVivek Gautam
531a356dbcSFelipe Balbicomment "Platform Glue Driver Support"
541a356dbcSFelipe Balbi
551a356dbcSFelipe Balbiconfig USB_DWC3_OMAP
561a356dbcSFelipe Balbi	tristate "Texas Instruments OMAP5 and similar Platforms"
5767130830SMarc Gonzalez	depends on ARCH_OMAP2PLUS || COMPILE_TEST
5867130830SMarc Gonzalez	depends on EXTCON || !EXTCON
59c5a1fbcaSGeorge Cherian	depends on OF
601a356dbcSFelipe Balbi	default USB_DWC3
611a356dbcSFelipe Balbi	help
621a356dbcSFelipe Balbi	  Some platforms from Texas Instruments like OMAP5, DRA7xxx and
631a356dbcSFelipe Balbi	  AM437x use this IP for USB2/3 functionality.
641a356dbcSFelipe Balbi
651a356dbcSFelipe Balbi	  Say 'Y' or 'M' here if you have one such device
661a356dbcSFelipe Balbi
671a356dbcSFelipe Balbiconfig USB_DWC3_EXYNOS
681a356dbcSFelipe Balbi	tristate "Samsung Exynos Platform"
69ba1773fbSFelipe Balbi	depends on (ARCH_EXYNOS || COMPILE_TEST) && OF
701a356dbcSFelipe Balbi	default USB_DWC3
711a356dbcSFelipe Balbi	help
721a356dbcSFelipe Balbi	  Recent Exynos5 SoCs ship with one DesignWare Core USB3 IP inside,
731a356dbcSFelipe Balbi	  say 'Y' or 'M' if you have one such device.
741a356dbcSFelipe Balbi
751a356dbcSFelipe Balbiconfig USB_DWC3_PCI
761a356dbcSFelipe Balbi	tristate "PCIe-based Platforms"
772c93e790Syuan linyu	depends on USB_PCI && ACPI
781a356dbcSFelipe Balbi	default USB_DWC3
791a356dbcSFelipe Balbi	help
803fe314caSThinh Nguyen	  If you're using the DesignWare Core IP with a PCIe (but not HAPS
813fe314caSThinh Nguyen	  platform), please say 'Y' or 'M' here.
821a356dbcSFelipe Balbi
833fe314caSThinh Nguyenconfig USB_DWC3_HAPS
843fe314caSThinh Nguyen	tristate "Synopsys PCIe-based HAPS Platforms"
853fe314caSThinh Nguyen	depends on USB_PCI
863fe314caSThinh Nguyen	default USB_DWC3
873fe314caSThinh Nguyen	help
883fe314caSThinh Nguyen	  If you're using the DesignWare Core IP with a Synopsys PCIe HAPS
893fe314caSThinh Nguyen	  platform, please say 'Y' or 'M' here.
901a356dbcSFelipe Balbi
91943befc3SWingMan Kwokconfig USB_DWC3_KEYSTONE
92eca6b494SRoger Quadros	tristate "Texas Instruments Keystone2/AM654 Platforms"
93eca6b494SRoger Quadros	depends on ARCH_KEYSTONE || ARCH_K3 || COMPILE_TEST
94943befc3SWingMan Kwok	default USB_DWC3
95943befc3SWingMan Kwok	help
96eca6b494SRoger Quadros	  Support of USB2/3 functionality in TI Keystone2 and AM654 platforms.
97943befc3SWingMan Kwok	  Say 'Y' or 'M' here if you have one such device
98943befc3SWingMan Kwok
99c9999337SNeil Armstrongconfig USB_DWC3_MESON_G12A
100c9999337SNeil Armstrong       tristate "Amlogic Meson G12A Platforms"
101c9999337SNeil Armstrong       depends on OF && COMMON_CLK
102c9999337SNeil Armstrong       depends on ARCH_MESON || COMPILE_TEST
103c9999337SNeil Armstrong       default USB_DWC3
104c9999337SNeil Armstrong       select USB_ROLE_SWITCH
105*a51bab59SArnd Bergmann	select REGMAP_MMIO
106c9999337SNeil Armstrong       help
107c9999337SNeil Armstrong         Support USB2/3 functionality in Amlogic G12A platforms.
108c9999337SNeil Armstrong	 Say 'Y' or 'M' if you have one such device.
109c9999337SNeil Armstrong
11016adc674SFelipe Balbiconfig USB_DWC3_OF_SIMPLE
11116adc674SFelipe Balbi       tristate "Generic OF Simple Glue Layer"
11216adc674SFelipe Balbi       depends on OF && COMMON_CLK
11316adc674SFelipe Balbi       default USB_DWC3
11416adc674SFelipe Balbi       help
11516adc674SFelipe Balbi         Support USB2/3 functionality in simple SoC integrations.
11616adc674SFelipe Balbi	 Currently supports Xilinx and Qualcomm DWC USB3 IP.
11716adc674SFelipe Balbi	 Say 'Y' or 'M' if you have one such device.
11816adc674SFelipe Balbi
119f83fca07SPeter Griffinconfig USB_DWC3_ST
120f83fca07SPeter Griffin	tristate "STMicroelectronics Platforms"
121ba1773fbSFelipe Balbi	depends on (ARCH_STI || COMPILE_TEST) && OF
122f83fca07SPeter Griffin	default USB_DWC3
123f83fca07SPeter Griffin	help
124f83fca07SPeter Griffin	  STMicroelectronics SoCs with one DesignWare Core USB3 IP
125f83fca07SPeter Griffin	  inside (i.e. STiH407).
126f83fca07SPeter Griffin	  Say 'Y' or 'M' if you have one such device.
127f83fca07SPeter Griffin
128a4333c3aSManu Gautamconfig USB_DWC3_QCOM
129a4333c3aSManu Gautam	tristate "Qualcomm Platform"
13067130830SMarc Gonzalez	depends on ARCH_QCOM || COMPILE_TEST
13167130830SMarc Gonzalez	depends on EXTCON || !EXTCON
1322bc02355SLee Jones	depends on (OF || ACPI)
133a4333c3aSManu Gautam	default USB_DWC3
134a4333c3aSManu Gautam	help
135a4333c3aSManu Gautam	  Some Qualcomm SoCs use DesignWare Core IP for USB2/3
136a4333c3aSManu Gautam	  functionality.
137a4333c3aSManu Gautam	  This driver also handles Qscratch wrapper which is needed
138a4333c3aSManu Gautam	  for peripheral mode support.
139a4333c3aSManu Gautam	  Say 'Y' or 'M' if you have one such device.
140a4333c3aSManu Gautam
14172246da4SFelipe Balbiendif
142