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

if ARCH_RENESAS || SUPERH

config PINCTRL_SH_PFC
	select PINMUX
	select PINCONF
	select GENERIC_PINCONF
	def_bool y
	help
	  This enables pin control drivers for SH and SH Mobile platforms

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

config PINCTRL_PFC_EMEV2
	def_bool y
	depends on ARCH_EMEV2
	select PINCTRL_SH_PFC

config PINCTRL_PFC_R8A73A4
	def_bool y
	depends on ARCH_R8A73A4
	select PINCTRL_SH_PFC_GPIO

config PINCTRL_PFC_R8A7740
	def_bool y
	depends on ARCH_R8A7740
	select PINCTRL_SH_PFC_GPIO

config PINCTRL_PFC_R8A7743
	def_bool y
	depends on ARCH_R8A7743
	select PINCTRL_SH_PFC

config PINCTRL_PFC_R8A7744
	def_bool y
	depends on ARCH_R8A7744
	select PINCTRL_SH_PFC

config PINCTRL_PFC_R8A7745
        def_bool y
        depends on ARCH_R8A7745
        select PINCTRL_SH_PFC

config PINCTRL_PFC_R8A77470
        def_bool y
        depends on ARCH_R8A77470
        select PINCTRL_SH_PFC

config PINCTRL_PFC_R8A774A1
        def_bool y
        depends on ARCH_R8A774A1
        select PINCTRL_SH_PFC

config PINCTRL_PFC_R8A774C0
        def_bool y
        depends on ARCH_R8A774C0
        select PINCTRL_SH_PFC

config PINCTRL_PFC_R8A7778
	def_bool y
	depends on ARCH_R8A7778
	select PINCTRL_SH_PFC

config PINCTRL_PFC_R8A7779
	def_bool y
	depends on ARCH_R8A7779
	select PINCTRL_SH_PFC

config PINCTRL_PFC_R8A7790
	def_bool y
	depends on ARCH_R8A7790
	select PINCTRL_SH_PFC

config PINCTRL_PFC_R8A7791
	def_bool y
	depends on ARCH_R8A7791
	select PINCTRL_SH_PFC

config PINCTRL_PFC_R8A7792
	def_bool y
	depends on ARCH_R8A7792
	select PINCTRL_SH_PFC

config PINCTRL_PFC_R8A7793
	def_bool y
	depends on ARCH_R8A7793
	select PINCTRL_SH_PFC

config PINCTRL_PFC_R8A7794
	def_bool y
	depends on ARCH_R8A7794
	select PINCTRL_SH_PFC

config PINCTRL_PFC_R8A7795
	def_bool y
	depends on ARCH_R8A7795
	select PINCTRL_SH_PFC

config PINCTRL_PFC_R8A7796
        def_bool y
        depends on ARCH_R8A7796
        select PINCTRL_SH_PFC

config PINCTRL_PFC_R8A77965
        def_bool y
        depends on ARCH_R8A77965
        select PINCTRL_SH_PFC

config PINCTRL_PFC_R8A77970
	def_bool y
	depends on ARCH_R8A77970
	select PINCTRL_SH_PFC

config PINCTRL_PFC_R8A77980
	def_bool y
	depends on ARCH_R8A77980
	select PINCTRL_SH_PFC

config PINCTRL_PFC_R8A77990
        def_bool y
        depends on ARCH_R8A77990
        select PINCTRL_SH_PFC

config PINCTRL_PFC_R8A77995
        def_bool y
        depends on ARCH_R8A77995
        select PINCTRL_SH_PFC

config PINCTRL_PFC_SH7203
	def_bool y
	depends on CPU_SUBTYPE_SH7203
	select PINCTRL_SH_PFC_GPIO

config PINCTRL_PFC_SH7264
	def_bool y
	depends on CPU_SUBTYPE_SH7264
	select PINCTRL_SH_PFC_GPIO

config PINCTRL_PFC_SH7269
	def_bool y
	depends on CPU_SUBTYPE_SH7269
	select PINCTRL_SH_PFC_GPIO

config PINCTRL_PFC_SH73A0
	def_bool y
	depends on ARCH_SH73A0
	select PINCTRL_SH_PFC_GPIO
	select REGULATOR

config PINCTRL_PFC_SH7720
	def_bool y
	depends on CPU_SUBTYPE_SH7720
	select PINCTRL_SH_PFC_GPIO

config PINCTRL_PFC_SH7722
	def_bool y
	depends on CPU_SUBTYPE_SH7722
	select PINCTRL_SH_PFC_GPIO

config PINCTRL_PFC_SH7723
	def_bool y
	depends on CPU_SUBTYPE_SH7723
	select PINCTRL_SH_PFC_GPIO

config PINCTRL_PFC_SH7724
	def_bool y
	depends on CPU_SUBTYPE_SH7724
	select PINCTRL_SH_PFC_GPIO

config PINCTRL_PFC_SH7734
	def_bool y
	depends on CPU_SUBTYPE_SH7734
	select PINCTRL_SH_PFC_GPIO

config PINCTRL_PFC_SH7757
	def_bool y
	depends on CPU_SUBTYPE_SH7757
	select PINCTRL_SH_PFC_GPIO

config PINCTRL_PFC_SH7785
	def_bool y
	depends on CPU_SUBTYPE_SH7785
	select PINCTRL_SH_PFC_GPIO

config PINCTRL_PFC_SH7786
	def_bool y
	depends on CPU_SUBTYPE_SH7786
	select PINCTRL_SH_PFC_GPIO

config PINCTRL_PFC_SHX3
	def_bool y
	depends on CPU_SUBTYPE_SHX3
	select PINCTRL_SH_PFC_GPIO
endif
