if ARCH_RMOBILE

config PINCTRL_PFC
	bool "Renesas pin control drivers"
	depends on DM && ARCH_RMOBILE
	help
	  Enable support for clock present on Renesas RCar SoCs.

config PINCTRL_PFC_R8A7790
	bool "Renesas RCar Gen2 R8A7790 pin control driver"
	def_bool y if R8A7790
	depends on PINCTRL_PFC
	help
	  Support pin multiplexing control on Renesas RCar Gen3 R8A7790 SoCs.

	  The driver is controlled by a device tree node which contains both
	  the GPIO definitions and pin control functions for each available
	  multiplex function.

config PINCTRL_PFC_R8A7791
	bool "Renesas RCar Gen2 R8A7791 pin control driver"
	def_bool y if R8A7791
	depends on PINCTRL_PFC
	help
	  Support pin multiplexing control on Renesas RCar Gen3 R8A7791 SoCs.

	  The driver is controlled by a device tree node which contains both
	  the GPIO definitions and pin control functions for each available
	  multiplex function.

config PINCTRL_PFC_R8A7792
	bool "Renesas RCar Gen2 R8A7792 pin control driver"
	def_bool y if R8A7792
	depends on PINCTRL_PFC
	help
	  Support pin multiplexing control on Renesas RCar Gen3 R8A7792 SoCs.

	  The driver is controlled by a device tree node which contains both
	  the GPIO definitions and pin control functions for each available
	  multiplex function.

config PINCTRL_PFC_R8A7793
	bool "Renesas RCar Gen2 R8A7793 pin control driver"
	def_bool y if R8A7793
	depends on PINCTRL_PFC
	help
	  Support pin multiplexing control on Renesas RCar Gen3 R8A7793 SoCs.

	  The driver is controlled by a device tree node which contains both
	  the GPIO definitions and pin control functions for each available
	  multiplex function.

config PINCTRL_PFC_R8A7794
	bool "Renesas RCar Gen2 R8A7794 pin control driver"
	def_bool y if R8A7794
	depends on PINCTRL_PFC
	help
	  Support pin multiplexing control on Renesas RCar Gen3 R8A7794 SoCs.

	  The driver is controlled by a device tree node which contains both
	  the GPIO definitions and pin control functions for each available
	  multiplex function.

config PINCTRL_PFC_R8A7795
	bool "Renesas RCar Gen3 R8A7795 pin control driver"
	def_bool y if R8A7795
	depends on PINCTRL_PFC
	help
	  Support pin multiplexing control on Renesas RCar Gen3 R8A7795 SoCs.

	  The driver is controlled by a device tree node which contains both
	  the GPIO definitions and pin control functions for each available
	  multiplex function.

config PINCTRL_PFC_R8A7796
	bool "Renesas RCar Gen3 R8A7796 pin control driver"
	def_bool y if R8A7796
	depends on PINCTRL_PFC
	help
	  Support pin multiplexing control on Renesas RCar Gen3 R8A7796 SoCs.

	  The driver is controlled by a device tree node which contains both
	  the GPIO definitions and pin control functions for each available
	  multiplex function.

config PINCTRL_PFC_R8A77970
	bool "Renesas RCar Gen3 R8A77970 pin control driver"
	def_bool y if R8A77970
	depends on PINCTRL_PFC
	help
	  Support pin multiplexing control on Renesas RCar Gen3 R8A77970 SoCs.

	  The driver is controlled by a device tree node which contains both
	  the GPIO definitions and pin control functions for each available
	  multiplex function.

config PINCTRL_PFC_R8A77995
	bool "Renesas RCar Gen3 R8A77995 pin control driver"
	def_bool y if R8A77995
	depends on PINCTRL_PFC
	help
	  Support pin multiplexing control on Renesas RCar Gen3 R8A77995 SoCs.

	  The driver is controlled by a device tree node which contains both
	  the GPIO definitions and pin control functions for each available
	  multiplex function.

endif
