# SPDX-License-Identifier: GPL-2.0-only
if ARCH_SUNXI

config PINCTRL_SUNXI
	bool
	select PINMUX
	select GENERIC_PINCONF
	select GPIOLIB

config PINCTRL_SUNIV_F1C100S
	def_bool MACH_SUNIV
	select PINCTRL_SUNXI

config PINCTRL_SUN4I_A10
	bool "Support for the Allwinner A10, A20 and R40 PIO"
	default MACH_SUN4I || MACH_SUN7I || MACH_SUN8I
	select PINCTRL_SUNXI

config PINCTRL_SUN5I
	bool "Support for the Allwinner A10s, A13, R8 and NextThing GR8 PIO"
	default MACH_SUN5I
	select PINCTRL_SUNXI

config PINCTRL_SUN6I_A31
	bool "Support for the Allwinner A31 PIO"
	default MACH_SUN6I
	select PINCTRL_SUNXI

config PINCTRL_SUN6I_A31_R
	bool "Support for the Allwinner A31 R-PIO"
	default MACH_SUN6I
	depends on RESET_CONTROLLER
	select PINCTRL_SUNXI

config PINCTRL_SUN8I_A23
	bool "Support for the Allwinner A23 PIO"
	default MACH_SUN8I
	select PINCTRL_SUNXI

config PINCTRL_SUN8I_A33
	bool "Support for the Allwinner A33 PIO"
	default MACH_SUN8I
	select PINCTRL_SUNXI

config PINCTRL_SUN8I_A83T
	bool "Support for the Allwinner A83T PIO"
	default MACH_SUN8I
	select PINCTRL_SUNXI

config PINCTRL_SUN8I_A83T_R
	bool "Support for the Allwinner A83T R-PIO"
	default MACH_SUN8I
	select PINCTRL_SUNXI

config PINCTRL_SUN8I_A23_R
	bool "Support for the Allwinner A23 and A33 R-PIO"
	default MACH_SUN8I
	depends on RESET_CONTROLLER
	select PINCTRL_SUNXI

config PINCTRL_SUN8I_H3
	bool "Support for the Allwinner H3 PIO"
	default MACH_SUN8I
	select PINCTRL_SUNXI

config PINCTRL_SUN8I_H3_R
	bool "Support for the Allwinner H3 and H5 R-PIO"
	default MACH_SUN8I || (ARM64 && ARCH_SUNXI)
	select PINCTRL_SUNXI

config PINCTRL_SUN8I_V3S
	bool "Support for the Allwinner V3s PIO"
	default MACH_SUN8I
	select PINCTRL_SUNXI

config PINCTRL_SUN9I_A80
	bool "Support for the Allwinner A80 PIO"
	default MACH_SUN9I
	select PINCTRL_SUNXI

config PINCTRL_SUN9I_A80_R
	bool "Support for the Allwinner A80 R-PIO"
	default MACH_SUN9I
	depends on RESET_CONTROLLER
	select PINCTRL_SUNXI

config PINCTRL_SUN50I_A64
	bool "Support for the Allwinner A64 PIO"
	default ARM64 && ARCH_SUNXI
	select PINCTRL_SUNXI

config PINCTRL_SUN50I_A64_R
	bool "Support for the Allwinner A64 R-PIO"
	default ARM64 && ARCH_SUNXI
	select PINCTRL_SUNXI

config PINCTRL_SUN50I_H5
	bool "Support for the Allwinner H5 PIO"
	default ARM64 && ARCH_SUNXI
	select PINCTRL_SUNXI

config PINCTRL_SUN50I_H6
	bool "Support for the Allwinner H6 PIO"
	default ARM64 && ARCH_SUNXI
	select PINCTRL_SUNXI

config PINCTRL_SUN50I_H6_R
	bool "Support for the Allwinner H6 R-PIO"
	default ARM64 && ARCH_SUNXI
	select PINCTRL_SUNXI

endif
