162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0
262306a36Sopenharmony_ci
362306a36Sopenharmony_ciconfig USB_ISP1760
462306a36Sopenharmony_ci	tristate "NXP ISP 1760/1761/1763 support"
562306a36Sopenharmony_ci	depends on USB || USB_GADGET
662306a36Sopenharmony_ci	select REGMAP_MMIO
762306a36Sopenharmony_ci	help
862306a36Sopenharmony_ci	  Say Y or M here if your system as an ISP1760/1763 USB host controller
962306a36Sopenharmony_ci	  or an ISP1761 USB dual-role controller.
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_ci	  This driver does not support isochronous transfers or OTG.
1262306a36Sopenharmony_ci	  This USB controller is usually attached to a non-DMA-Master
1362306a36Sopenharmony_ci	  capable bus. NXP's eval kit brings this chip on PCI card
1462306a36Sopenharmony_ci	  where the chip itself is behind a PLB to simulate such
1562306a36Sopenharmony_ci	  a bus.
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the
1862306a36Sopenharmony_ci	  module will be called isp1760.
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_ciconfig USB_ISP1760_HCD
2162306a36Sopenharmony_ci	bool
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_ciconfig USB_ISP1761_UDC
2462306a36Sopenharmony_ci	bool
2562306a36Sopenharmony_ci
2662306a36Sopenharmony_ciif USB_ISP1760
2762306a36Sopenharmony_ci
2862306a36Sopenharmony_cichoice
2962306a36Sopenharmony_ci	bool "ISP1760 Mode Selection"
3062306a36Sopenharmony_ci	default USB_ISP1760_DUAL_ROLE if (USB && USB_GADGET)
3162306a36Sopenharmony_ci	default USB_ISP1760_HOST_ROLE if (USB && !USB_GADGET)
3262306a36Sopenharmony_ci	default USB_ISP1760_GADGET_ROLE if (!USB && USB_GADGET)
3362306a36Sopenharmony_ci
3462306a36Sopenharmony_ciconfig USB_ISP1760_HOST_ROLE
3562306a36Sopenharmony_ci	bool "Host only mode"
3662306a36Sopenharmony_ci	depends on USB=y || USB=USB_ISP1760
3762306a36Sopenharmony_ci	select USB_ISP1760_HCD
3862306a36Sopenharmony_ci	help
3962306a36Sopenharmony_ci	  Select this if you want to use the ISP1760 in host mode only. The
4062306a36Sopenharmony_ci	  gadget function will be disabled.
4162306a36Sopenharmony_ci
4262306a36Sopenharmony_ciconfig USB_ISP1760_GADGET_ROLE
4362306a36Sopenharmony_ci	bool "Gadget only mode"
4462306a36Sopenharmony_ci	depends on USB_GADGET=y || USB_GADGET=USB_ISP1760
4562306a36Sopenharmony_ci	select USB_ISP1761_UDC
4662306a36Sopenharmony_ci	help
4762306a36Sopenharmony_ci	  Select this if you want to use the ISP1760 in peripheral mode only.
4862306a36Sopenharmony_ci	  The host function will be disabled.
4962306a36Sopenharmony_ci
5062306a36Sopenharmony_ciconfig USB_ISP1760_DUAL_ROLE
5162306a36Sopenharmony_ci	bool "Dual Role mode"
5262306a36Sopenharmony_ci	depends on USB=y || USB=USB_ISP1760
5362306a36Sopenharmony_ci	depends on USB_GADGET=y || USB_GADGET=USB_ISP1760
5462306a36Sopenharmony_ci	select USB_ISP1760_HCD
5562306a36Sopenharmony_ci	select USB_ISP1761_UDC
5662306a36Sopenharmony_ci	help
5762306a36Sopenharmony_ci	  Select this if you want to use the ISP1760 in both host and
5862306a36Sopenharmony_ci	  peripheral modes.
5962306a36Sopenharmony_ci
6062306a36Sopenharmony_ciendchoice
6162306a36Sopenharmony_ci
6262306a36Sopenharmony_ciendif
63