162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0
262306a36Sopenharmony_ci#
362306a36Sopenharmony_ci# For MTK USB3.0 IP
462306a36Sopenharmony_ci
562306a36Sopenharmony_ciconfig USB_MTU3
662306a36Sopenharmony_ci	tristate "MediaTek USB3 Dual Role controller"
762306a36Sopenharmony_ci	depends on USB || USB_GADGET
862306a36Sopenharmony_ci	depends on ARCH_MEDIATEK || COMPILE_TEST
962306a36Sopenharmony_ci	depends on EXTCON || !EXTCON
1062306a36Sopenharmony_ci	select USB_XHCI_MTK if USB_SUPPORT && USB_XHCI_HCD
1162306a36Sopenharmony_ci	help
1262306a36Sopenharmony_ci	  Say Y or M here if your system runs on MediaTek SoCs with
1362306a36Sopenharmony_ci	  Dual Role SuperSpeed USB controller. You can select usb
1462306a36Sopenharmony_ci	  mode as peripheral role or host role, or both.
1562306a36Sopenharmony_ci
1662306a36Sopenharmony_ci	  If you don't know what this is, please say N.
1762306a36Sopenharmony_ci
1862306a36Sopenharmony_ci	  Choose M here to compile this driver as a module, and it
1962306a36Sopenharmony_ci	  will be called mtu3.ko.
2062306a36Sopenharmony_ci
2162306a36Sopenharmony_ci
2262306a36Sopenharmony_ciif USB_MTU3
2362306a36Sopenharmony_cichoice
2462306a36Sopenharmony_ci	bool "MTU3 Mode Selection"
2562306a36Sopenharmony_ci	default USB_MTU3_DUAL_ROLE if (USB && USB_GADGET)
2662306a36Sopenharmony_ci	default USB_MTU3_HOST if (USB && !USB_GADGET)
2762306a36Sopenharmony_ci	default USB_MTU3_GADGET if (!USB && USB_GADGET)
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_ciconfig USB_MTU3_HOST
3062306a36Sopenharmony_ci	bool "Host only mode"
3162306a36Sopenharmony_ci	depends on USB=y || USB=USB_MTU3
3262306a36Sopenharmony_ci	help
3362306a36Sopenharmony_ci	  Select this when you want to use MTU3 in host mode only,
3462306a36Sopenharmony_ci	  thereby the gadget feature will be regressed.
3562306a36Sopenharmony_ci
3662306a36Sopenharmony_ciconfig USB_MTU3_GADGET
3762306a36Sopenharmony_ci	bool "Gadget only mode"
3862306a36Sopenharmony_ci	depends on USB_GADGET=y || USB_GADGET=USB_MTU3
3962306a36Sopenharmony_ci	help
4062306a36Sopenharmony_ci	  Select this when you want to use MTU3 in gadget mode only,
4162306a36Sopenharmony_ci	  thereby the host feature will be regressed.
4262306a36Sopenharmony_ci
4362306a36Sopenharmony_ciconfig USB_MTU3_DUAL_ROLE
4462306a36Sopenharmony_ci	bool "Dual Role mode"
4562306a36Sopenharmony_ci	depends on ((USB=y || USB=USB_MTU3) && (USB_GADGET=y || USB_GADGET=USB_MTU3))
4662306a36Sopenharmony_ci	depends on (EXTCON=y || EXTCON=USB_MTU3)
4762306a36Sopenharmony_ci	select USB_ROLE_SWITCH
4862306a36Sopenharmony_ci	help
4962306a36Sopenharmony_ci	  This is the default mode of working of MTU3 controller where
5062306a36Sopenharmony_ci	  both host and gadget features are enabled.
5162306a36Sopenharmony_ci
5262306a36Sopenharmony_ciendchoice
5362306a36Sopenharmony_ci
5462306a36Sopenharmony_ciconfig USB_MTU3_DEBUG
5562306a36Sopenharmony_ci	bool "Enable Debugging Messages"
5662306a36Sopenharmony_ci	help
5762306a36Sopenharmony_ci	  Say Y here to enable debugging messages in the MTU3 Driver.
5862306a36Sopenharmony_ci
5962306a36Sopenharmony_ciendif
60