# SPDX-License-Identifier: GPL-2.0-only
config PINCTRL_ASPEED
	bool
	depends on (ARCH_ASPEED || COMPILE_TEST) && OF
	depends on MFD_SYSCON
	select PINMUX
	select PINCONF
	select GENERIC_PINCONF
	select REGMAP_MMIO

config PINCTRL_ASPEED_G4
	bool "Aspeed G4 SoC pin control"
	depends on (MACH_ASPEED_G4 || COMPILE_TEST) && OF
	select PINCTRL_ASPEED
	help
	  Say Y here to enable pin controller support for Aspeed's 4th
	  generation SoCs. GPIO is provided by a separate GPIO driver.

config PINCTRL_ASPEED_G5
	bool "Aspeed G5 SoC pin control"
	depends on (MACH_ASPEED_G5 || COMPILE_TEST) && OF
	select PINCTRL_ASPEED
	help
	  Say Y here to enable pin controller support for Aspeed's 5th
	  generation SoCs. GPIO is provided by a separate GPIO driver.
