0001 # SPDX-License-Identifier: GPL-2.0
0002
0003 config USB_DWC3
0004 tristate "DesignWare USB3 DRD Core Support"
0005 depends on (USB || USB_GADGET) && HAS_DMA
0006 select USB_XHCI_PLATFORM if USB_XHCI_HCD
0007 select USB_ROLE_SWITCH if USB_DWC3_DUAL_ROLE
0008 help
0009 Say Y or M here if your system has a Dual Role SuperSpeed
0010 USB controller based on the DesignWare USB3 IP Core.
0011
0012 If you choose to build this driver as a dynamically linked
0013 module, the module will be called dwc3.ko.
0014
0015 if USB_DWC3
0016
0017 config USB_DWC3_ULPI
0018 bool "Register ULPI PHY Interface"
0019 depends on USB_ULPI_BUS=y || USB_ULPI_BUS=USB_DWC3
0020 help
0021 Select this if you have ULPI type PHY attached to your DWC3
0022 controller.
0023
0024 choice
0025 bool "DWC3 Mode Selection"
0026 default USB_DWC3_DUAL_ROLE if (USB && USB_GADGET)
0027 default USB_DWC3_HOST if (USB && !USB_GADGET)
0028 default USB_DWC3_GADGET if (!USB && USB_GADGET)
0029
0030 config USB_DWC3_HOST
0031 bool "Host only mode"
0032 depends on USB=y || USB=USB_DWC3
0033 help
0034 Select this when you want to use DWC3 in host mode only,
0035 thereby the gadget feature will be regressed.
0036
0037 config USB_DWC3_GADGET
0038 bool "Gadget only mode"
0039 depends on USB_GADGET=y || USB_GADGET=USB_DWC3
0040 help
0041 Select this when you want to use DWC3 in gadget mode only,
0042 thereby the host feature will be regressed.
0043
0044 config USB_DWC3_DUAL_ROLE
0045 bool "Dual Role mode"
0046 depends on ((USB=y || USB=USB_DWC3) && (USB_GADGET=y || USB_GADGET=USB_DWC3))
0047 depends on (EXTCON=y || EXTCON=USB_DWC3)
0048 help
0049 This is the default mode of working of DWC3 controller where
0050 both host and gadget features are enabled.
0051
0052 endchoice
0053
0054 comment "Platform Glue Driver Support"
0055
0056 config USB_DWC3_OMAP
0057 tristate "Texas Instruments OMAP5 and similar Platforms"
0058 depends on ARCH_OMAP2PLUS || COMPILE_TEST
0059 depends on EXTCON || !EXTCON
0060 depends on OF
0061 default USB_DWC3
0062 help
0063 Some platforms from Texas Instruments like OMAP5, DRA7xxx and
0064 AM437x use this IP for USB2/3 functionality.
0065
0066 Say 'Y' or 'M' here if you have one such device
0067
0068 config USB_DWC3_EXYNOS
0069 tristate "Samsung Exynos SoC Platform"
0070 depends on (ARCH_EXYNOS || COMPILE_TEST) && OF
0071 default USB_DWC3
0072 help
0073 Recent Samsung Exynos SoCs (Exynos5250, Exynos5410, Exynos542x,
0074 Exynos5800, Exynos5433, Exynos7) ship with one DesignWare Core USB3
0075 IP inside, say 'Y' or 'M' if you have one such device.
0076
0077 config USB_DWC3_PCI
0078 tristate "PCIe-based Platforms"
0079 depends on USB_PCI && ACPI
0080 default USB_DWC3
0081 help
0082 If you're using the DesignWare Core IP with a PCIe (but not HAPS
0083 platform), please say 'Y' or 'M' here.
0084
0085 config USB_DWC3_HAPS
0086 tristate "Synopsys PCIe-based HAPS Platforms"
0087 depends on USB_PCI
0088 default USB_DWC3
0089 help
0090 If you're using the DesignWare Core IP with a Synopsys PCIe HAPS
0091 platform, please say 'Y' or 'M' here.
0092
0093 config USB_DWC3_KEYSTONE
0094 tristate "Texas Instruments Keystone2/AM654 Platforms"
0095 depends on ARCH_KEYSTONE || ARCH_K3 || COMPILE_TEST
0096 default USB_DWC3
0097 help
0098 Support of USB2/3 functionality in TI Keystone2 and AM654 platforms.
0099 Say 'Y' or 'M' here if you have one such device
0100
0101 config USB_DWC3_MESON_G12A
0102 tristate "Amlogic Meson G12A Platforms"
0103 depends on OF && COMMON_CLK
0104 depends on ARCH_MESON || COMPILE_TEST
0105 default USB_DWC3
0106 select USB_ROLE_SWITCH
0107 select REGMAP_MMIO
0108 help
0109 Support USB2/3 functionality in Amlogic G12A platforms.
0110 Say 'Y' or 'M' if you have one such device.
0111
0112 config USB_DWC3_OF_SIMPLE
0113 tristate "Generic OF Simple Glue Layer"
0114 depends on OF && COMMON_CLK
0115 default USB_DWC3
0116 help
0117 Support USB2/3 functionality in simple SoC integrations.
0118 Currently supports Xilinx and Qualcomm DWC USB3 IP.
0119 Say 'Y' or 'M' if you have one such device.
0120
0121 config USB_DWC3_ST
0122 tristate "STMicroelectronics Platforms"
0123 depends on (ARCH_STI || COMPILE_TEST) && OF
0124 default USB_DWC3
0125 help
0126 STMicroelectronics SoCs with one DesignWare Core USB3 IP
0127 inside (i.e. STiH407).
0128 Say 'Y' or 'M' if you have one such device.
0129
0130 config USB_DWC3_QCOM
0131 tristate "Qualcomm Platform"
0132 depends on ARCH_QCOM || COMPILE_TEST
0133 depends on EXTCON || !EXTCON
0134 depends on (OF || ACPI)
0135 default USB_DWC3
0136 help
0137 Some Qualcomm SoCs use DesignWare Core IP for USB2/3
0138 functionality.
0139 This driver also handles Qscratch wrapper which is needed
0140 for peripheral mode support.
0141 Say 'Y' or 'M' if you have one such device.
0142
0143 config USB_DWC3_IMX8MP
0144 tristate "NXP iMX8MP Platform"
0145 depends on OF && COMMON_CLK
0146 depends on (ARCH_MXC && ARM64) || COMPILE_TEST
0147 default USB_DWC3
0148 help
0149 NXP iMX8M Plus SoC use DesignWare Core IP for USB2/3
0150 functionality.
0151 Say 'Y' or 'M' if you have one such device.
0152
0153 config USB_DWC3_XILINX
0154 tristate "Xilinx Platforms"
0155 depends on (ARCH_ZYNQMP || ARCH_VERSAL) && OF
0156 default USB_DWC3
0157 help
0158 Support Xilinx SoCs with DesignWare Core USB3 IP.
0159 This driver handles both ZynqMP and Versal SoC operations.
0160 Say 'Y' or 'M' if you have one such device.
0161
0162 config USB_DWC3_AM62
0163 tristate "Texas Instruments AM62 Platforms"
0164 depends on ARCH_K3 || COMPILE_TEST
0165 default USB_DWC3
0166 help
0167 Support TI's AM62 platforms with DesignWare Core USB3 IP.
0168 The Designware Core USB3 IP is programmed to operate in
0169 in USB 2.0 mode only.
0170 Say 'Y' or 'M' here if you have one such device
0171 endif