if ARCH_RENESAS

config PINCTRL_PFC
	bool "Renesas pin control drivers"
	depends on DM && ARCH_RENESAS
	default n if CPU_RZA1
	help
	  Support pin multiplexing control on Renesas SoCs.

	  These drivers are controlled by a device tree node which contains
	  both the GPIO definitions and pin control functions for each
	  available multiplex function.

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

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

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

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

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

config PINCTRL_PFC_R8A774A1
        bool "Renesas RZ/G2 R8A774A1 pin control driver"
        depends on PINCTRL_PFC
        help
          Support pin multiplexing control on Renesas RZ/G2M R8A774A1 SoCs.

config PINCTRL_PFC_R8A774B1
        bool "Renesas RZ/G2 R8A774B1 pin control driver"
        depends on PINCTRL_PFC
        help
          Support pin multiplexing control on Renesas RZ/G2N R8A774B1 SoCs.

config PINCTRL_PFC_R8A774C0
        bool "Renesas RZ/G2 R8A774C0 pin control driver"
        depends on PINCTRL_PFC
        help
          Support pin multiplexing control on Renesas RZ/G2E R8A774C0 SoCs.

config PINCTRL_PFC_R8A774E1
        bool "Renesas RZ/G2 R8A774E1 pin control driver"
        depends on PINCTRL_PFC
        help
          Support pin multiplexing control on Renesas RZ/G2H R8A774E1 SoCs.

config PINCTRL_PFC_R8A77951
	bool "Renesas RCar Gen3 R8A7795 pin control driver"
	depends on PINCTRL_PFC
	help
	  Support pin multiplexing control on Renesas RCar Gen3 R8A7795 SoCs.

config PINCTRL_PFC_R8A77960
	bool "Renesas RCar Gen3 R8A77960 pin control driver"
	depends on PINCTRL_PFC
	help
	  Support pin multiplexing control on Renesas RCar Gen3 R8A77960 SoCs.

config PINCTRL_PFC_R8A77961
	bool "Renesas RCar Gen3 R8A77961 pin control driver"
	depends on PINCTRL_PFC
	help
	  Support pin multiplexing control on Renesas RCar Gen3 R8A77961 SoCs.

config PINCTRL_PFC_R8A77965
	bool "Renesas RCar Gen3 R8A77965 pin control driver"
	depends on PINCTRL_PFC
	help
	  Support pin multiplexing control on Renesas RCar Gen3 R8A77965 SoCs.

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

config PINCTRL_PFC_R8A77980
	bool "Renesas RCar Gen3 R8A77980 pin control driver"
	depends on PINCTRL_PFC
	help
	  Support pin multiplexing control on Renesas RCar Gen3 R8A77980 SoCs.

config PINCTRL_PFC_R8A77990
	bool "Renesas RCar Gen3 R8A77990 pin control driver"
	depends on PINCTRL_PFC
	help
	  Support pin multiplexing control on Renesas RCar Gen3 R8A77990 SoCs.

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

config PINCTRL_PFC_R8A779A0
	bool "Renesas RCar Gen3 R8A779A0 pin control driver"
	depends on PINCTRL_PFC
	help
	  Support pin multiplexing control on Renesas RCar Gen3 R8A779A0 SoCs.

config PINCTRL_PFC_R8A779F0
	bool "Renesas RCar Gen4 R8A779F0 pin control driver"
	depends on PINCTRL_PFC
	help
	  Support pin multiplexing control on Renesas RCar Gen4 R8A779F0 SoCs.

config PINCTRL_PFC_R8A779G0
	bool "Renesas RCar Gen4 R8A779G0 pin control driver"
	depends on PINCTRL_PFC
	help
	  Support pin multiplexing control on Renesas RCar Gen4 R8A779G0 SoCs.

config PINCTRL_PFC_R8A779H0
	bool "Renesas RCar Gen4 R8A779H0 pin control driver"
	depends on PINCTRL_PFC
	help
	  Support pin multiplexing control on Renesas RCar Gen4 R8A779H0 SoCs.

config PINCTRL_RZA1
	bool "Renesas RZ/A1 R7S72100 pin control driver"
	depends on CPU_RZA1
	default y if CPU_RZA1
	help
	  Support pin multiplexing control on Renesas RZ/A1 R7S72100 SoCs.

config PINCTRL_RZG2L
	bool "Renesas RZ/G2L family pin control driver"
	depends on PINCTRL
	depends on PINCTRL_GENERIC
	depends on PINCONF
	help
	  Support the pinctrl functionality of the pin function controller (PFC)
	  on the Renesas RZ/G2L SoC family.

endif

config PINCTRL_RZN1
	bool "Renesas RZ/N1 R906G032 pin control driver"
	depends on RZN1
	default y if RZN1
	help
	  Support pin multiplexing control on Renesas RZ/N1 R906G032 SoCs.
