# SPDX-License-Identifier: GPL-2.0
#
# Renesas SH and SH Mobile PINCTRL drivers
#

config PINCTRL_SH_PFC
	bool "Renesas SoC pin control support" if COMPILE_TEST && !(ARCH_RENESAS || SUPERH)
	default y if ARCH_RENESAS || SUPERH
	select PINMUX
	select PINCONF
	select GENERIC_PINCONF
	select PINCTRL_PFC_EMEV2 if ARCH_EMEV2
	select PINCTRL_PFC_R8A73A4 if ARCH_R8A73A4
	select PINCTRL_PFC_R8A7740 if ARCH_R8A7740
	select PINCTRL_PFC_R8A7743 if ARCH_R8A7743
	select PINCTRL_PFC_R8A7744 if ARCH_R8A7744
	select PINCTRL_PFC_R8A7745 if ARCH_R8A7745
	select PINCTRL_PFC_R8A77470 if ARCH_R8A77470
	select PINCTRL_PFC_R8A774A1 if ARCH_R8A774A1
	select PINCTRL_PFC_R8A774B1 if ARCH_R8A774B1
	select PINCTRL_PFC_R8A774C0 if ARCH_R8A774C0
	select PINCTRL_PFC_R8A7778 if ARCH_R8A7778
	select PINCTRL_PFC_R8A7779 if ARCH_R8A7779
	select PINCTRL_PFC_R8A7790 if ARCH_R8A7790
	select PINCTRL_PFC_R8A7791 if ARCH_R8A7791
	select PINCTRL_PFC_R8A7792 if ARCH_R8A7792
	select PINCTRL_PFC_R8A7793 if ARCH_R8A7793
	select PINCTRL_PFC_R8A7794 if ARCH_R8A7794
	select PINCTRL_PFC_R8A77950 if ARCH_R8A77950 || ARCH_R8A7795
	select PINCTRL_PFC_R8A77951 if ARCH_R8A77951 || ARCH_R8A7795
	select PINCTRL_PFC_R8A77960 if ARCH_R8A77960
	select PINCTRL_PFC_R8A77961 if ARCH_R8A77961
	select PINCTRL_PFC_R8A77965 if ARCH_R8A77965
	select PINCTRL_PFC_R8A77970 if ARCH_R8A77970
	select PINCTRL_PFC_R8A77980 if ARCH_R8A77980
	select PINCTRL_PFC_R8A77990 if ARCH_R8A77990
	select PINCTRL_PFC_R8A77995 if ARCH_R8A77995
	select PINCTRL_PFC_SH7203 if CPU_SUBTYPE_SH7203
	select PINCTRL_PFC_SH7264 if CPU_SUBTYPE_SH7264
	select PINCTRL_PFC_SH7269 if CPU_SUBTYPE_SH7269
	select PINCTRL_PFC_SH73A0 if ARCH_SH73A0
	select PINCTRL_PFC_SH7720 if CPU_SUBTYPE_SH7720
	select PINCTRL_PFC_SH7722 if CPU_SUBTYPE_SH7722
	select PINCTRL_PFC_SH7723 if CPU_SUBTYPE_SH7723
	select PINCTRL_PFC_SH7724 if CPU_SUBTYPE_SH7724
	select PINCTRL_PFC_SH7734 if CPU_SUBTYPE_SH7734
	select PINCTRL_PFC_SH7757 if CPU_SUBTYPE_SH7757
	select PINCTRL_PFC_SH7785 if CPU_SUBTYPE_SH7785
	select PINCTRL_PFC_SH7786 if CPU_SUBTYPE_SH7786
	select PINCTRL_PFC_SHX3 if CPU_SUBTYPE_SHX3
	help
	  This enables pin control drivers for Renesas SuperH and ARM platforms

config PINCTRL_SH_PFC_GPIO
	select GPIOLIB
	bool
	help
	  This enables pin control and GPIO drivers for SH/SH Mobile platforms

config PINCTRL_SH_FUNC_GPIO
	select PINCTRL_SH_PFC_GPIO
	bool
	help
	  This enables legacy function GPIOs for SH platforms

config PINCTRL_PFC_EMEV2
	bool "Emma Mobile AV2 pin control support" if COMPILE_TEST

config PINCTRL_PFC_R8A73A4
	bool "R-Mobile APE6 pin control support" if COMPILE_TEST
	select PINCTRL_SH_PFC_GPIO

config PINCTRL_PFC_R8A7740
	bool "R-Mobile A1 pin control support" if COMPILE_TEST
	select PINCTRL_SH_PFC_GPIO

config PINCTRL_PFC_R8A7743
	bool "RZ/G1M pin control support" if COMPILE_TEST

config PINCTRL_PFC_R8A7744
	bool "RZ/G1N pin control support" if COMPILE_TEST

config PINCTRL_PFC_R8A7745
	bool "RZ/G1E pin control support" if COMPILE_TEST

config PINCTRL_PFC_R8A77470
	bool "RZ/G1C pin control support" if COMPILE_TEST

config PINCTRL_PFC_R8A774A1
	bool "RZ/G2M pin control support" if COMPILE_TEST

config PINCTRL_PFC_R8A774B1
	bool "RZ/G2N pin control support" if COMPILE_TEST

config PINCTRL_PFC_R8A774C0
	bool "RZ/G2E pin control support" if COMPILE_TEST

config PINCTRL_PFC_R8A7778
	bool "R-Car M1A pin control support" if COMPILE_TEST

config PINCTRL_PFC_R8A7779
	bool "R-Car H1 pin control support" if COMPILE_TEST

config PINCTRL_PFC_R8A7790
	bool "R-Car H2 pin control support" if COMPILE_TEST

config PINCTRL_PFC_R8A7791
	bool "R-Car M2-W pin control support" if COMPILE_TEST

config PINCTRL_PFC_R8A7792
	bool "R-Car V2H pin control support" if COMPILE_TEST

config PINCTRL_PFC_R8A7793
	bool "R-Car M2-N pin control support" if COMPILE_TEST

config PINCTRL_PFC_R8A7794
	bool "R-Car E2 pin control support" if COMPILE_TEST

config PINCTRL_PFC_R8A77950
	bool "R-Car H3 ES1.x pin control support" if COMPILE_TEST

config PINCTRL_PFC_R8A77951
	bool "R-Car H3 ES2.0+ pin control support" if COMPILE_TEST

config PINCTRL_PFC_R8A77960
	bool "R-Car M3-W pin control support" if COMPILE_TEST

config PINCTRL_PFC_R8A77961
	bool "R-Car M3-W+ pin control support" if COMPILE_TEST

config PINCTRL_PFC_R8A77965
	bool "R-Car M3-N pin control support" if COMPILE_TEST

config PINCTRL_PFC_R8A77970
	bool "R-Car V3M pin control support" if COMPILE_TEST

config PINCTRL_PFC_R8A77980
	bool "R-Car V3H pin control support" if COMPILE_TEST

config PINCTRL_PFC_R8A77990
	bool "R-Car E3 pin control support" if COMPILE_TEST

config PINCTRL_PFC_R8A77995
	bool "R-Car D3 pin control support" if COMPILE_TEST

config PINCTRL_PFC_SH7203
	bool "SH7203 pin control support" if COMPILE_TEST
	select PINCTRL_SH_FUNC_GPIO

config PINCTRL_PFC_SH7264
	bool "SH7264 pin control support" if COMPILE_TEST
	select PINCTRL_SH_FUNC_GPIO

config PINCTRL_PFC_SH7269
	bool "SH7269 pin control support" if COMPILE_TEST
	select PINCTRL_SH_FUNC_GPIO

config PINCTRL_PFC_SH73A0
	bool "SH-Mobile AG5 pin control support" if COMPILE_TEST
	select PINCTRL_SH_PFC_GPIO
	select REGULATOR

config PINCTRL_PFC_SH7720
	bool "SH7720 pin control support" if COMPILE_TEST
	select PINCTRL_SH_FUNC_GPIO

config PINCTRL_PFC_SH7722
	bool "SH7722 pin control support" if COMPILE_TEST
	select PINCTRL_SH_FUNC_GPIO

config PINCTRL_PFC_SH7723
	bool "SH-Mobile R2 pin control support" if COMPILE_TEST
	select PINCTRL_SH_FUNC_GPIO

config PINCTRL_PFC_SH7724
	bool "SH-Mobile R2R pin control support" if COMPILE_TEST
	select PINCTRL_SH_FUNC_GPIO

config PINCTRL_PFC_SH7734
	bool "SH7734 pin control support" if COMPILE_TEST
	select PINCTRL_SH_FUNC_GPIO

config PINCTRL_PFC_SH7757
	bool "SH7757 pin control support" if COMPILE_TEST
	select PINCTRL_SH_FUNC_GPIO

config PINCTRL_PFC_SH7785
	bool "SH7785 pin control support" if COMPILE_TEST
	select PINCTRL_SH_FUNC_GPIO

config PINCTRL_PFC_SH7786
	bool "SH7786 pin control support" if COMPILE_TEST
	select PINCTRL_SH_FUNC_GPIO

config PINCTRL_PFC_SHX3
	bool "SH-X3 pin control support" if COMPILE_TEST
	select PINCTRL_SH_FUNC_GPIO
