Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

# SPDX-License-Identifier: GPL-2.0

config CONFIG_USB_DWC3
	tristate "DesignWare USB3 DRD Core Support"
	depends on (CONFIG_USB || CONFIG_USB_GADGET) && CONFIG_HAS_DMA
	select CONFIG_USB_XHCI_PLATFORM if CONFIG_USB_XHCI_HCD
	help
	  Say Y or CONFIG_M here if your system has a Dual Role SuperSpeed
	  CONFIG_USB 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 CONFIG_USB_DWC3

config CONFIG_USB_DWC3_ULPI
	bool "Register ULPI PHY Interface"
	depends on CONFIG_USB_ULPI_BUS=y || CONFIG_USB_ULPI_BUS=CONFIG_USB_DWC3
	help
	  Select this if you have ULPI type PHY attached to your DWC3
	  controller.

choice
	bool "DWC3 Mode Selection"
	default CONFIG_USB_DWC3_DUAL_ROLE if (CONFIG_USB && CONFIG_USB_GADGET)
	default CONFIG_USB_DWC3_HOST if (CONFIG_USB && !CONFIG_USB_GADGET)
	default CONFIG_USB_DWC3_GADGET if (!CONFIG_USB && CONFIG_USB_GADGET)

config CONFIG_USB_DWC3_HOST
	bool "Host only mode"
	depends on CONFIG_USB=y || CONFIG_USB=CONFIG_USB_DWC3
	help
	  Select this when you want to use DWC3 in host mode only,
	  thereby the gadget feature will be regressed.

config CONFIG_USB_DWC3_GADGET
	bool "Gadget only mode"
	depends on CONFIG_USB_GADGET=y || CONFIG_USB_GADGET=CONFIG_USB_DWC3
	help
	  Select this when you want to use DWC3 in gadget mode only,
	  thereby the host feature will be regressed.

config CONFIG_USB_DWC3_DUAL_ROLE
	bool "Dual Role mode"
	depends on ((CONFIG_USB=y || CONFIG_USB=CONFIG_USB_DWC3) && (CONFIG_USB_GADGET=y || CONFIG_USB_GADGET=CONFIG_USB_DWC3))
	depends on (CONFIG_EXTCON=y || CONFIG_EXTCON=CONFIG_USB_DWC3)
	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 CONFIG_USB_DWC3_OMAP
	tristate "Texas Instruments OMAP5 and similar Platforms"
	depends on CONFIG_ARCH_OMAP2PLUS || CONFIG_COMPILE_TEST
	depends on CONFIG_EXTCON || !CONFIG_EXTCON
	depends on CONFIG_OF
	default CONFIG_USB_DWC3
	help
	  Some platforms from Texas Instruments like OMAP5, DRA7xxx and
	  AM437x use this IP for USB2/3 functionality.

	  Say 'Y' or 'CONFIG_M' here if you have one such device

config CONFIG_USB_DWC3_EXYNOS
	tristate "Samsung Exynos Platform"
	depends on (CONFIG_ARCH_EXYNOS || CONFIG_COMPILE_TEST) && CONFIG_OF
	default CONFIG_USB_DWC3
	help
	  Recent Exynos5 SoCs ship with one DesignWare Core USB3 IP inside,
	  say 'Y' or 'CONFIG_M' if you have one such device.

config CONFIG_USB_DWC3_PCI
	tristate "PCIe-based Platforms"
	depends on CONFIG_USB_PCI && CONFIG_ACPI
	default CONFIG_USB_DWC3
	help
	  If you're using the DesignWare Core IP with a PCIe (but not HAPS
	  platform), please say 'Y' or 'CONFIG_M' here.

config CONFIG_USB_DWC3_HAPS
	tristate "Synopsys PCIe-based HAPS Platforms"
	depends on CONFIG_USB_PCI
	default CONFIG_USB_DWC3
	help
	  If you're using the DesignWare Core IP with a Synopsys PCIe HAPS
	  platform, please say 'Y' or 'CONFIG_M' here.

config CONFIG_USB_DWC3_KEYSTONE
	tristate "Texas Instruments Keystone2/AM654 Platforms"
	depends on CONFIG_ARCH_KEYSTONE || CONFIG_ARCH_K3 || CONFIG_COMPILE_TEST
	default CONFIG_USB_DWC3
	help
	  Support of USB2/3 functionality in TI Keystone2 and AM654 platforms.
	  Say 'Y' or 'CONFIG_M' here if you have one such device

config CONFIG_USB_DWC3_MESON_G12A
       tristate "Amlogic Meson G12A Platforms"
       depends on CONFIG_OF && CONFIG_COMMON_CLK
       depends on CONFIG_ARCH_MESON || CONFIG_COMPILE_TEST
       default CONFIG_USB_DWC3
       select CONFIG_USB_ROLE_SWITCH
       help
         Support USB2/3 functionality in Amlogic G12A platforms.
	 Say 'Y' or 'CONFIG_M' if you have one such device.

config CONFIG_USB_DWC3_OF_SIMPLE
       tristate "Generic OF Simple Glue Layer"
       depends on CONFIG_OF && CONFIG_COMMON_CLK
       default CONFIG_USB_DWC3
       help
         Support USB2/3 functionality in simple SoC integrations.
	 Currently supports Xilinx and Qualcomm DWC USB3 IP.
	 Say 'Y' or 'CONFIG_M' if you have one such device.

config CONFIG_USB_DWC3_ST
	tristate "STMicroelectronics Platforms"
	depends on (CONFIG_ARCH_STI || CONFIG_COMPILE_TEST) && CONFIG_OF
	default CONFIG_USB_DWC3
	help
	  STMicroelectronics SoCs with one DesignWare Core USB3 IP
	  inside (i.e. STiH407).
	  Say 'Y' or 'CONFIG_M' if you have one such device.

config CONFIG_USB_DWC3_QCOM
	tristate "Qualcomm Platform"
	depends on CONFIG_ARCH_QCOM || CONFIG_COMPILE_TEST
	depends on CONFIG_EXTCON || !CONFIG_EXTCON
	depends on (CONFIG_OF || CONFIG_ACPI)
	default CONFIG_USB_DWC3
	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 'CONFIG_M' if you have one such device.

endif