config USB_DWC3
	bool "DesignWare USB3 DRD Core Support"
	depends on USB_HOST || USB_GADGET
	help
	  Say Y here if your system has a Dual Role SuperSpeed
	  USB controller based on the DesignWare USB3 IP Core.

if USB_DWC3

config USB_DWC3_GADGET
	bool "USB Gadget support for DWC3"
	default y
	depends on USB_GADGET
	select USB_GADGET_DUALSPEED

comment "Platform Glue Driver Support"

config USB_DWC3_OMAP
	bool "Texas Instruments OMAP5 and similar Platforms"
	help
	  Some platforms from Texas Instruments like OMAP5, DRA7xxx and
	  AM437x use this IP for USB2/3 functionality.

	  Say 'Y' here if you have one such device

config USB_DWC3_GENERIC
	bool "Generic implementation of a DWC3 wrapper (aka dwc3 glue)"
	depends on DM_USB && USB_DWC3 && MISC
	help
	  Select this for Xilinx ZynqMP and similar Platforms.
	  This wrapper supports Host and Peripheral operation modes.

config USB_DWC3_MESON_G12A
	bool "Amlogic Meson G12A USB wrapper"
	depends on DM_USB && USB_DWC3 && ARCH_MESON
	imply PHY
	help
	  Select this for Amlogic Meson G12A Platforms.
	  This wrapper supports Host and Peripheral operation modes.

config USB_DWC3_UNIPHIER
	bool "DesignWare USB3 Host Support on UniPhier Platforms"
	depends on ARCH_UNIPHIER && USB_XHCI_DWC3
	help
	  Support of USB2/3 functionality in Socionext UniPhier platforms.
	  Say 'Y' here if you have one such device.

menu "PHY Subsystem"

config USB_DWC3_PHY_OMAP
	bool "TI OMAP SoC series USB DRD PHY driver"
	help
	  Enable single driver for both USB2 PHY programming and USB3 PHY
	  programming for TI SoCs.

config USB_DWC3_PHY_SAMSUNG
	bool "Exynos5 SoC series USB DRD PHY driver"
	help
	  Enable USB DRD PHY support for Exynos 5 SoC series.
	  This driver provides PHY interface for USB 3.0 DRD controller
	  present on Exynos5 SoC series.

endmenu

endif
