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

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

config PINCTRL_MTK_V2
	tristate

config PINCTRL_MTK_MTMIPS
	bool
	depends on RALINK
	select PINMUX
	select GENERIC_PINCONF

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

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

# For MIPS SoCs
config PINCTRL_MT7620
	bool "MediaTek MT7620 pin control"
	depends on SOC_MT7620 || COMPILE_TEST
	depends on RALINK
	default SOC_MT7620
	select PINCTRL_MTK_MTMIPS

config PINCTRL_MT7621
	bool "MediaTek MT7621 pin control"
	depends on SOC_MT7621 || COMPILE_TEST
	depends on RALINK
	default SOC_MT7621
	select PINCTRL_MTK_MTMIPS

config PINCTRL_MT76X8
	bool "MediaTek MT76X8 pin control"
	depends on SOC_MT7620 || COMPILE_TEST
	depends on RALINK
	default SOC_MT7620
	select PINCTRL_MTK_MTMIPS

config PINCTRL_RT2880
	bool "Ralink RT2880 pin control"
	depends on SOC_RT288X || COMPILE_TEST
	depends on RALINK
	default SOC_RT288X
	select PINCTRL_MTK_MTMIPS

config PINCTRL_RT305X
	bool "Ralink RT305X pin control"
	depends on SOC_RT305X || COMPILE_TEST
	depends on RALINK
	default SOC_RT305X
	select PINCTRL_MTK_MTMIPS

config PINCTRL_RT3883
	bool "Ralink RT3883 pin control"
	depends on SOC_RT3883 || COMPILE_TEST
	depends on RALINK
	default SOC_RT3883
	select PINCTRL_MTK_MTMIPS

# 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
	depends on ARM64 || COMPILE_TEST
	default ARM64 && ARCH_MEDIATEK
	select PINCTRL_MTK_PARIS

config PINCTRL_MT6779
	tristate "MediaTek MT6779 pin control"
	depends on OF
	depends on ARM64 || COMPILE_TEST
	default ARM64 && ARCH_MEDIATEK
	select PINCTRL_MTK_PARIS
	help
	  Say yes here to support pin controller and gpio driver
	  on MediaTek MT6779 SoC.
	  In MTK platform, we support virtual gpio and use it to
	  map specific eint which doesn't have real gpio pin.

config PINCTRL_MT6795
	bool "MediaTek MT6795 pin control"
	depends on OF
	depends on ARM64 || COMPILE_TEST
	default ARM64 && ARCH_MEDIATEK
	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_MT7622
	bool "MediaTek MT7622 pin control"
	depends on OF
	depends on ARM64 || COMPILE_TEST
	default ARM64 && ARCH_MEDIATEK
	select PINCTRL_MTK_MOORE

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

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

config PINCTRL_MT8167
	bool "MediaTek MT8167 pin control"
	depends on OF
	depends on ARM64 || COMPILE_TEST
	default ARM64 && ARCH_MEDIATEK
	select PINCTRL_MTK

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_MT8186
	bool "MediaTek MT8186 pin control"
	depends on OF
	depends on ARM64 || COMPILE_TEST
	default ARM64 && ARCH_MEDIATEK
	select PINCTRL_MTK_PARIS

config PINCTRL_MT8188
	bool "MediaTek MT8188 pin control"
	depends on OF
	depends on ARM64 || COMPILE_TEST
	default ARM64 && ARCH_MEDIATEK
	select PINCTRL_MTK_PARIS
	help
	  Say yes here to support pin controller and gpio driver
	  on MediaTek MT8188 SoC.
	  In MTK platform, we support virtual gpio and use it to
	  map specific eint which doesn't have real gpio pin.

config PINCTRL_MT8192
	bool "MediaTek MT8192 pin control"
	depends on OF
	depends on ARM64 || COMPILE_TEST
	default ARM64 && ARCH_MEDIATEK
	select PINCTRL_MTK_PARIS

config PINCTRL_MT8195
	bool "MediaTek MT8195 pin control"
	depends on OF
	depends on ARM64 || COMPILE_TEST
	default ARM64 && ARCH_MEDIATEK
	select PINCTRL_MTK_PARIS

config PINCTRL_MT8365
	bool "MediaTek MT8365 pin control"
	depends on OF
	depends on ARM64 || COMPILE_TEST
	default ARM64 && ARCH_MEDIATEK
	select PINCTRL_MTK

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

# 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