# SPDX-License-Identifier: GPL-2.0
#
# For MTK USB3.0 IP

config DEVICE_MODULES_USB_MTU3
	tristate "MediaTek USB3 Dual Role controller"
	depends on USB || USB_GADGET
	depends on ARCH_MEDIATEK || COMPILE_TEST
	depends on EXTCON || !EXTCON
	help
	  Say Y or M here if your system runs on MediaTek SoCs with
	  Dual Role SuperSpeed USB controller. You can select usb
	  mode as peripheral role or host role, or both.

	  If you don't know what this is, please say N.

	  Choose M here to compile this driver as a module, and it
	  will be called mtu3.ko.


if DEVICE_MODULES_USB_MTU3
choice
	bool "MTU3 Mode Selection"
	default DEVICE_MODULES_USB_MTU3_DUAL_ROLE if (USB && USB_GADGET)
	default DEVICE_MODULES_USB_MTU3_HOST if (USB && !USB_GADGET)
	default DEVICE_MODULES_USB_MTU3_GADGET if (!USB && USB_GADGET)

config DEVICE_MODULES_USB_MTU3_HOST
	bool "Host only mode"
	depends on USB=y || USB=DEVICE_MODULES_USB_MTU3
	help
	  Select this when you want to use MTU3 in host mode only,
	  thereby the gadget feature will be regressed.

config DEVICE_MODULES_USB_MTU3_GADGET
	bool "Gadget only mode"
	depends on USB_GADGET=y || USB_GADGET=DEVICE_MODULES_USB_MTU3
	help
	  Select this when you want to use MTU3 in gadget mode only,
	  thereby the host feature will be regressed.

config DEVICE_MODULES_USB_MTU3_DUAL_ROLE
	bool "Dual Role mode"
	depends on ((USB=y || USB=DEVICE_MODULES_USB_MTU3) && (USB_GADGET=y || USB_GADGET=DEVICE_MODULES_USB_MTU3))
	depends on (EXTCON=y || EXTCON=DEVICE_MODULES_USB_MTU3)
	select USB_ROLE_SWITCH
	help
	  This is the default mode of working of MTU3 controller where
	  both host and gadget features are enabled.

endchoice

config DEVICE_MODULES_USB_MTU3_DEBUG
	bool "Enable Debugging Messages"
	help
	  Say Y here to enable debugging messages in the MTU3 Driver.

config DEVICE_MODULES_MTU3_SUPPORT_Y_CABLE
	bool "Enable Y-cable support"
	depends on DEVICE_MODULES_USB_MTU3_DUAL_ROLE
	help
	  Say Y here to enable the Y-cable support in the MTU3 Driver.
	  It does with kernel COMMMAD Parameters: y_cable=[0/1] & usb_extconn=[0~5],
	  and override the value of default_mode in your project dts file.
	  force manual mode to support Y-cable choice one between host and device mode.

	  If unsure, say N.

endif
