# 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_R8A7795 if ARCH_R8A7795
	select PINCTRL_PFC_R8A77960 if ARCH_R8A77960 || ARCH_R8A7796
	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_R8A7795
	bool "R-Car H3 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
