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