# SPDX-License-Identifier: GPL-2.0

config USB_CHIPIDEA
	tristate "ChipIdea Highspeed Dual Role Controller"
	depends on ((USB_EHCI_HCD && USB_GADGET) || (USB_EHCI_HCD && !USB_GADGET) || (!USB_EHCI_HCD && USB_GADGET)) && HAS_DMA
	select EXTCON
	select RESET_CONTROLLER
	select USB_ULPI_BUS
	select USB_ROLE_SWITCH
	select USB_TEGRA_PHY if ARCH_TEGRA
	help
	  Say Y here if your system has a dual role high speed USB
	  controller based on ChipIdea silicon IP. It supports:
	  Dual-role switch (ID, OTG FSM, sysfs), Host-only, and
	  Peripheral-only.

	  When compiled dynamically, the module will be called ci_hdrc.ko.

if USB_CHIPIDEA

config USB_CHIPIDEA_UDC
	bool "ChipIdea device controller"
	depends on USB_GADGET
	help
	  Say Y here to enable device controller functionality of the
	  ChipIdea driver.

config USB_CHIPIDEA_HOST
	bool "ChipIdea host controller"
	depends on USB_EHCI_HCD
	select USB_EHCI_ROOT_HUB_TT
	help
	  Say Y here to enable host controller functionality of the
	  ChipIdea driver.

config USB_CHIPIDEA_PCI
	tristate "Enable PCI glue driver" if EMBEDDED
	depends on USB_PCI
	depends on NOP_USB_XCEIV
	default USB_CHIPIDEA

config USB_CHIPIDEA_MSM
	tristate "Enable MSM hsusb glue driver" if EMBEDDED
	default USB_CHIPIDEA

config USB_CHIPIDEA_IMX
	tristate "Enable i.MX USB glue driver" if EMBEDDED
	depends on OF
	default USB_CHIPIDEA

config USB_CHIPIDEA_GENERIC
	tristate "Enable generic USB2 glue driver" if EMBEDDED
	default USB_CHIPIDEA

config USB_CHIPIDEA_TEGRA
	tristate "Enable Tegra UDC glue driver" if EMBEDDED
	depends on OF
	depends on USB_CHIPIDEA_UDC
	default USB_CHIPIDEA

endif
