#
# 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_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_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
