# SPDX-License-Identifier: GPL-2.0

config USB_ISP1760
	tristate "NXP ISP 1760/1761/1763 support"
	depends on USB || USB_GADGET
	select REGMAP_MMIO
	help
	  Say Y or M here if your system as an ISP1760/1763 USB host controller
	  or an ISP1761 USB dual-role controller.

	  This driver does not support isochronous transfers or OTG.
	  This USB controller is usually attached to a non-DMA-Master
	  capable bus. NXP's eval kit brings this chip on PCI card
	  where the chip itself is behind a PLB to simulate such
	  a bus.

	  To compile this driver as a module, choose M here: the
	  module will be called isp1760.

config USB_ISP1760_HCD
	bool

config USB_ISP1761_UDC
	bool

if USB_ISP1760

choice
	bool "ISP1760 Mode Selection"
	default USB_ISP1760_DUAL_ROLE if (USB && USB_GADGET)
	default USB_ISP1760_HOST_ROLE if (USB && !USB_GADGET)
	default USB_ISP1760_GADGET_ROLE if (!USB && USB_GADGET)

config USB_ISP1760_HOST_ROLE
	bool "Host only mode"
	depends on USB=y || USB=USB_ISP1760
	select USB_ISP1760_HCD
	help
	  Select this if you want to use the ISP1760 in host mode only. The
	  gadget function will be disabled.

config USB_ISP1760_GADGET_ROLE
	bool "Gadget only mode"
	depends on USB_GADGET=y || USB_GADGET=USB_ISP1760
	select USB_ISP1761_UDC
	help
	  Select this if you want to use the ISP1760 in peripheral mode only.
	  The host function will be disabled.

config USB_ISP1760_DUAL_ROLE
	bool "Dual Role mode"
	depends on USB=y || USB=USB_ISP1760
	depends on USB_GADGET=y || USB_GADGET=USB_ISP1760
	select USB_ISP1760_HCD
	select USB_ISP1761_UDC
	help
	  Select this if you want to use the ISP1760 in both host and
	  peripheral modes.

endchoice

endif