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

config PINCTRL_SOPHGO_COMMON
	tristate
	select GENERIC_PINCTRL_GROUPS
	select GENERIC_PINMUX_FUNCTIONS
	select GENERIC_PINCONF

config PINCTRL_SOPHGO_CV18XX_OPS
	bool

config PINCTRL_SOPHGO_CV1800B
	tristate "Sophgo CV1800B SoC Pinctrl driver"
	depends on ARCH_SOPHGO || COMPILE_TEST
	depends on OF
	select PINCTRL_SOPHGO_COMMON
	select PINCTRL_SOPHGO_CV18XX_OPS
	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_COMMON
	select PINCTRL_SOPHGO_CV18XX_OPS
	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_COMMON
	select PINCTRL_SOPHGO_CV18XX_OPS
	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_COMMON
	select PINCTRL_SOPHGO_CV18XX_OPS
	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.

config PINCTRL_SOPHGO_SG2042_OPS
	bool

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

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