# SPDX-License-Identifier: GPL-2.0-only
menu "MediaTek pinctrl drivers"
	depends on ARCH_MEDIATEK || COMPILE_TEST

config PINCTRL_MTK_NO_UPSTREAM
	bool "Mediatek pin control"
	depends on OF
	select PINCTRL_MTK
	help
	  Say yes here to enable support for MediaTek pinctrl debug command.
	  It can provide gpio status debug shell command.
	  We also can use these shell command to change gpio status.
	  It is common for all ICs.
	  We can use the command to debug gpio status issues.
	  we also can use it in user space.

config EINT_MTK
	tristate "MediaTek External Interrupt Support"
	depends on PINCTRL_MTK || PINCTRL_MTK_MOORE || PINCTRL_MTK_PARIS || COMPILE_TEST
	select GPIOLIB
	select IRQ_DOMAIN
	default y if PINCTRL_MTK || PINCTRL_MTK_MOORE
	default PINCTRL_MTK_PARIS

config PINCTRL_MTK
	bool
	depends on OF
	select PINMUX
	select GENERIC_PINCONF
	select GPIOLIB
	select EINT_MTK
	select OF_GPIO

config PINCTRL_MTK_V2
	tristate

config PINCTRL_MTK_MOORE
	bool
	depends on OF
	select GENERIC_PINCONF
	select GENERIC_PINCTRL_GROUPS
	select GENERIC_PINMUX_FUNCTIONS
	select GPIOLIB
	select OF_GPIO
	select PINCTRL_MTK_V2

config PINCTRL_MTK_PARIS
	tristate
	depends on OF
	select PINMUX
	select GENERIC_PINCONF
	select GPIOLIB
	select EINT_MTK
	select OF_GPIO
	select PINCTRL_MTK_V2

# For ARMv7 SoCs
config PINCTRL_MT2701
	bool "Mediatek MT2701 pin control"
	depends on MACH_MT7623 || MACH_MT2701 || COMPILE_TEST
	depends on OF
	default MACH_MT2701
	select PINCTRL_MTK

config PINCTRL_MT7623
	bool "Mediatek MT7623 pin control with generic binding"
	depends on MACH_MT7623 || COMPILE_TEST
	depends on OF
	default MACH_MT7623
	select PINCTRL_MTK_MOORE

config PINCTRL_MT7629
	bool "Mediatek MT7629 pin control"
	depends on MACH_MT7629 || COMPILE_TEST
	depends on OF
	default MACH_MT7629
	select PINCTRL_MTK_MOORE

config PINCTRL_MT8135
	bool "Mediatek MT8135 pin control"
	depends on MACH_MT8135 || COMPILE_TEST
	depends on OF
	default MACH_MT8135
	select PINCTRL_MTK

config PINCTRL_MT8127
	bool "Mediatek MT8127 pin control"
	depends on MACH_MT8127 || COMPILE_TEST
	depends on OF
	default MACH_MT8127
	select PINCTRL_MTK

# For ARMv8 SoCs
config PINCTRL_MT2712
	bool "MediaTek MT2712 pin control"
	depends on OF
	depends on ARM64 || COMPILE_TEST
	default ARM64 && ARCH_MEDIATEK
	select PINCTRL_MTK

config PINCTRL_MT6765
	tristate "Mediatek MT6765 pin control"
	depends on OF || COMPILE_TEST
	select PINCTRL_MTK_PARIS

config PINCTRL_MT6797
	bool "Mediatek MT6797 pin control"
	depends on OF
	depends on ARM64 || COMPILE_TEST
	default ARM64 && ARCH_MEDIATEK
	select PINCTRL_MTK_PARIS

config PINCTRL_MT6853
	tristate "Mediatek MT6853 pin control"
	depends on OF || COMPILE_TEST
	select PINCTRL_MTK_PARIS

config PINCTRL_MT6873
	tristate "Mediatek MT6873 pin control"
	depends on OF || COMPILE_TEST
	select PINCTRL_MTK_PARIS

config PINCTRL_MT7622
	bool "MediaTek MT7622 pin control"
	depends on OF
	depends on ARM64 || COMPILE_TEST
	default ARM64 && ARCH_MEDIATEK
	select PINCTRL_MTK_MOORE

config PINCTRL_MT8173
	bool "Mediatek MT8173 pin control"
	depends on OF
	depends on ARM64 || COMPILE_TEST
	default ARM64 && ARCH_MEDIATEK
	select PINCTRL_MTK

config PINCTRL_MT8183
	bool "Mediatek MT8183 pin control"
	depends on OF
	depends on ARM64 || COMPILE_TEST
	default ARM64 && ARCH_MEDIATEK
	select PINCTRL_MTK_PARIS

config PINCTRL_MT8516
	bool "Mediatek MT8516 pin control"
	depends on OF
	depends on ARM64 || COMPILE_TEST
	default ARM64 && ARCH_MEDIATEK
	select PINCTRL_MTK

config PINCTRL_MT8518
        bool "Mediatek MT8518 pin control"
        default n
        depends on MACH_MT8518
        select PINCTRL_MTK
        select PINCTRL_MTK_NO_UPSTREAM


# For PMIC
config PINCTRL_MT6397
	bool "Mediatek MT6397 pin control"
	depends on MFD_MT6397 || COMPILE_TEST
	depends on OF
	default MFD_MT6397
	select PINCTRL_MTK

endmenu
