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