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

config PINCTRL_STARFIVE_JH7100
	tristate "Pinctrl and GPIO driver for the StarFive JH7100 SoC"
	depends on SOC_STARFIVE || COMPILE_TEST
	depends on OF
	select GENERIC_PINCTRL_GROUPS
	select GENERIC_PINMUX_FUNCTIONS
	select GENERIC_PINCONF
	select GPIOLIB
	select GPIOLIB_IRQCHIP
	select OF_GPIO
	default SOC_STARFIVE
	help
	  Say yes here to support pin control on the StarFive JH7100 SoC.
	  This also provides an interface to the GPIO pins not used by other
	  peripherals supporting inputs, outputs, configuring pull-up/pull-down
	  and interrupts on input changes.

config PINCTRL_STARFIVE_JH7110
	bool
	select GENERIC_PINCTRL_GROUPS
	select GENERIC_PINMUX_FUNCTIONS
	select GENERIC_PINCONF
	select GPIOLIB
	select GPIOLIB_IRQCHIP
	select OF_GPIO

config PINCTRL_STARFIVE_JH7110_SYS
	tristate "System pinctrl and GPIO driver for the StarFive JH7110 SoC"
	depends on SOC_STARFIVE  || COMPILE_TEST
	depends on OF
	select PINCTRL_STARFIVE_JH7110
	default SOC_STARFIVE
	help
	  Say yes here to support system pin control on the StarFive JH7110 SoC.
	  This also provides an interface to the GPIO pins not used by other
	  peripherals supporting inputs, outputs, configuring pull-up/pull-down
	  and interrupts on input changes.

config PINCTRL_STARFIVE_JH7110_AON
	tristate "Always-on pinctrl and GPIO driver for the StarFive JH7110 SoC"
	depends on SOC_STARFIVE  || COMPILE_TEST
	depends on OF
	select PINCTRL_STARFIVE_JH7110
	default SOC_STARFIVE
	help
	  Say yes here to support always-on pin control on the StarFive JH7110 SoC.
	  This also provides an interface to the GPIO pins not used by other
	  peripherals supporting inputs, outputs, configuring pull-up/pull-down
	  and interrupts on input changes.
