# SPDX-License-Identifier: GPL-2.0
config [31mCONFIG_USB_DWC3[0m
tristate "DesignWare USB3 DRD Core Support"
depends on ([31mCONFIG_USB[0m || [31mCONFIG_USB_GADGET[0m) && [31mCONFIG_HAS_DMA[0m
select [31mCONFIG_USB_XHCI_PLATFORM[0m if [31mCONFIG_USB_XHCI_HCD[0m
help
Say Y or [31mCONFIG_M[0m here if your system has a Dual Role SuperSpeed
[31mCONFIG_USB[0m controller based on the DesignWare USB3 IP Core.
If you choose to build this driver is a dynamically linked
module, the module will be called dwc3.ko.
if [31mCONFIG_USB_DWC3[0m
config [31mCONFIG_USB_DWC3_ULPI[0m
bool "Register ULPI PHY Interface"
depends on [31mCONFIG_USB_ULPI_BUS[0m=y || [31mCONFIG_USB_ULPI_BUS[0m=[31mCONFIG_USB_DWC3[0m
help
Select this if you have ULPI type PHY attached to your DWC3
controller.
choice
bool "DWC3 Mode Selection"
default [31mCONFIG_USB_DWC3_DUAL_ROLE[0m if ([31mCONFIG_USB[0m && [31mCONFIG_USB_GADGET[0m)
default [31mCONFIG_USB_DWC3_HOST[0m if ([31mCONFIG_USB[0m && ![31mCONFIG_USB_GADGET[0m)
default [31mCONFIG_USB_DWC3_GADGET[0m if (![31mCONFIG_USB[0m && [31mCONFIG_USB_GADGET[0m)
config [31mCONFIG_USB_DWC3_HOST[0m
bool "Host only mode"
depends on [31mCONFIG_USB[0m=y || [31mCONFIG_USB[0m=[31mCONFIG_USB_DWC3[0m
help
Select this when you want to use DWC3 in host mode only,
thereby the gadget feature will be regressed.
config [31mCONFIG_USB_DWC3_GADGET[0m
bool "Gadget only mode"
depends on [31mCONFIG_USB_GADGET[0m=y || [31mCONFIG_USB_GADGET[0m=[31mCONFIG_USB_DWC3[0m
help
Select this when you want to use DWC3 in gadget mode only,
thereby the host feature will be regressed.
config [31mCONFIG_USB_DWC3_DUAL_ROLE[0m
bool "Dual Role mode"
depends on (([31mCONFIG_USB[0m=y || [31mCONFIG_USB[0m=[31mCONFIG_USB_DWC3[0m) && ([31mCONFIG_USB_GADGET[0m=y || [31mCONFIG_USB_GADGET[0m=[31mCONFIG_USB_DWC3[0m))
depends on ([31mCONFIG_EXTCON[0m=y || [31mCONFIG_EXTCON[0m=[31mCONFIG_USB_DWC3[0m)
help
This is the default mode of working of DWC3 controller where
both host and gadget features are enabled.
endchoice
comment "Platform Glue Driver Support"
config [31mCONFIG_USB_DWC3_OMAP[0m
tristate "Texas Instruments OMAP5 and similar Platforms"
depends on [31mCONFIG_ARCH_OMAP2PLUS[0m || [31mCONFIG_COMPILE_TEST[0m
depends on [31mCONFIG_EXTCON[0m || ![31mCONFIG_EXTCON[0m
depends on [31mCONFIG_OF[0m
default [31mCONFIG_USB_DWC3[0m
help
Some platforms from Texas Instruments like OMAP5, DRA7xxx and
AM437x use this IP for USB2/3 functionality.
Say 'Y' or '[31mCONFIG_M[0m' here if you have one such device
config [31mCONFIG_USB_DWC3_EXYNOS[0m
tristate "Samsung Exynos Platform"
depends on ([31mCONFIG_ARCH_EXYNOS[0m || [31mCONFIG_COMPILE_TEST[0m) && [31mCONFIG_OF[0m
default [31mCONFIG_USB_DWC3[0m
help
Recent Exynos5 SoCs ship with one DesignWare Core USB3 IP inside,
say 'Y' or '[31mCONFIG_M[0m' if you have one such device.
config [31mCONFIG_USB_DWC3_PCI[0m
tristate "PCIe-based Platforms"
depends on [31mCONFIG_USB_PCI[0m && [31mCONFIG_ACPI[0m
default [31mCONFIG_USB_DWC3[0m
help
If you're using the DesignWare Core IP with a PCIe (but not HAPS
platform), please say 'Y' or '[31mCONFIG_M[0m' here.
config [31mCONFIG_USB_DWC3_HAPS[0m
tristate "Synopsys PCIe-based HAPS Platforms"
depends on [31mCONFIG_USB_PCI[0m
default [31mCONFIG_USB_DWC3[0m
help
If you're using the DesignWare Core IP with a Synopsys PCIe HAPS
platform, please say 'Y' or '[31mCONFIG_M[0m' here.
config [31mCONFIG_USB_DWC3_KEYSTONE[0m
tristate "Texas Instruments Keystone2/AM654 Platforms"
depends on [31mCONFIG_ARCH_KEYSTONE[0m || [31mCONFIG_ARCH_K3[0m || [31mCONFIG_COMPILE_TEST[0m
default [31mCONFIG_USB_DWC3[0m
help
Support of USB2/3 functionality in TI Keystone2 and AM654 platforms.
Say 'Y' or '[31mCONFIG_M[0m' here if you have one such device
config [31mCONFIG_USB_DWC3_MESON_G12A[0m
tristate "Amlogic Meson G12A Platforms"
depends on [31mCONFIG_OF[0m && [31mCONFIG_COMMON_CLK[0m
depends on [31mCONFIG_ARCH_MESON[0m || [31mCONFIG_COMPILE_TEST[0m
default [31mCONFIG_USB_DWC3[0m
select [31mCONFIG_USB_ROLE_SWITCH[0m
select [31mCONFIG_REGMAP_MMIO[0m
help
Support USB2/3 functionality in Amlogic G12A platforms.
Say 'Y' or '[31mCONFIG_M[0m' if you have one such device.
config [31mCONFIG_USB_DWC3_OF_SIMPLE[0m
tristate "Generic OF Simple Glue Layer"
depends on [31mCONFIG_OF[0m && [31mCONFIG_COMMON_CLK[0m
default [31mCONFIG_USB_DWC3[0m
help
Support USB2/3 functionality in simple SoC integrations.
Currently supports Xilinx and Qualcomm DWC USB3 IP.
Say 'Y' or '[31mCONFIG_M[0m' if you have one such device.
config [31mCONFIG_USB_DWC3_ST[0m
tristate "STMicroelectronics Platforms"
depends on ([31mCONFIG_ARCH_STI[0m || [31mCONFIG_COMPILE_TEST[0m) && [31mCONFIG_OF[0m
default [31mCONFIG_USB_DWC3[0m
help
STMicroelectronics SoCs with one DesignWare Core USB3 IP
inside (i.e. STiH407).
Say 'Y' or '[31mCONFIG_M[0m' if you have one such device.
config [31mCONFIG_USB_DWC3_QCOM[0m
tristate "Qualcomm Platform"
depends on [31mCONFIG_ARCH_QCOM[0m || [31mCONFIG_COMPILE_TEST[0m
depends on [31mCONFIG_EXTCON[0m || ![31mCONFIG_EXTCON[0m
depends on ([31mCONFIG_OF[0m || [31mCONFIG_ACPI[0m)
default [31mCONFIG_USB_DWC3[0m
help
Some Qualcomm SoCs use DesignWare Core IP for USB2/3
functionality.
This driver also handles Qscratch wrapper which is needed
for peripheral mode support.
Say 'Y' or '[31mCONFIG_M[0m' if you have one such device.
endif