# SPDX-License-Identifier: GPL-2.0-only
#
# Sophgo SoC PINCTRL drivers
#

config PINCTRL_SOPHGO_CV18XX
	bool
	select GENERIC_PINCTRL_GROUPS
	select GENERIC_PINMUX_FUNCTIONS
	select GENERIC_PINCONF

config PINCTRL_SOPHGO_CV1800B
	tristate "Sophgo CV1800B SoC Pinctrl driver"
	depends on ARCH_SOPHGO || COMPILE_TEST
	depends on OF
	select PINCTRL_SOPHGO_CV18XX
	help
	  Say Y to select the pinctrl driver for CV1800B SoC.
	  This pin controller allows selecting the mux function for
	  each pin. This driver can also be built as a module called
	  pinctrl-cv1800b.

config PINCTRL_SOPHGO_CV1812H
	tristate "Sophgo CV1812H SoC Pinctrl driver"
	depends on ARCH_SOPHGO || COMPILE_TEST
	depends on OF
	select PINCTRL_SOPHGO_CV18XX
	help
	  Say Y to select the pinctrl driver for CV1812H SoC.
	  This pin controller allows selecting the mux function for
	  each pin. This driver can also be built as a module called
	  pinctrl-cv1812h.

config PINCTRL_SOPHGO_SG2000
	tristate "Sophgo SG2000 SoC Pinctrl driver"
	depends on ARCH_SOPHGO || COMPILE_TEST
	depends on OF
	select PINCTRL_SOPHGO_CV18XX
	help
	  Say Y to select the pinctrl driver for SG2000 SoC.
	  This pin controller allows selecting the mux function for
	  each pin. This driver can also be built as a module called
	  pinctrl-sg2000.

config PINCTRL_SOPHGO_SG2002
	tristate "Sophgo SG2002 SoC Pinctrl driver"
	depends on ARCH_SOPHGO || COMPILE_TEST
	depends on OF
	select PINCTRL_SOPHGO_CV18XX
	help
	  Say Y to select the pinctrl driver for SG2002 SoC.
	  This pin controller allows selecting the mux function for
	  each pin. This driver can also be built as a module called
	  pinctrl-sg2002.
