# SPDX-License-Identifier: GPL-2.0-only
config PINCTRL_IMX
	tristate
	depends on OF
	select GENERIC_PINCTRL_GROUPS
	select GENERIC_PINMUX_FUNCTIONS
	select PINCONF
	select REGMAP

config PINCTRL_IMX_SCMI
	tristate "i.MX95 pinctrl driver using SCMI protocol interface"
	depends on (ARM_SCMI_PROTOCOL && OF && ARCH_MXC) || COMPILE_TEST
	select PINMUX
	select GENERIC_PINCONF
	select GENERIC_PINCTRL_GROUPS
	select GENERIC_PINMUX_FUNCTIONS
	help
	  i.MX95 SCMI firmware provides pinctrl protocol. This driver
	  utilizes the SCMI interface to do pinctrl configuration.

config PINCTRL_IMX_SCU
	tristate
	depends on OF
	depends on IMX_SCU || COMPILE_TEST
	default IMX_SCU
	select PINCTRL_IMX

config PINCTRL_IMX1_CORE
	bool
	select PINMUX
	select PINCONF

config PINCTRL_IMX1
	bool "IMX1 pinctrl driver"
	depends on OF
	depends on SOC_IMX1 || COMPILE_TEST
	default SOC_IMX1
	select PINCTRL_IMX1_CORE
	help
	  Say Y here to enable the imx1 pinctrl driver

config PINCTRL_IMX27
	bool "IMX27 pinctrl driver"
	depends on OF
	depends on SOC_IMX27 || COMPILE_TEST
	default SOC_IMX27
	select PINCTRL_IMX1_CORE
	help
	  Say Y here to enable the imx27 pinctrl driver


config PINCTRL_IMX25
	bool "IMX25 pinctrl driver"
	depends on OF
	depends on SOC_IMX25 || COMPILE_TEST
	default SOC_IMX25
	select PINCTRL_IMX
	help
	  Say Y here to enable the imx25 pinctrl driver

config PINCTRL_IMX35
	bool "IMX35 pinctrl driver"
	depends on OF
	depends on SOC_IMX35 || COMPILE_TEST
	default SOC_IMX35
	select PINCTRL_IMX
	help
	  Say Y here to enable the imx35 pinctrl driver

config PINCTRL_IMX50
	bool "IMX50 pinctrl driver"
	depends on OF
	depends on SOC_IMX50 || COMPILE_TEST
	default SOC_IMX50
	select PINCTRL_IMX
	help
	  Say Y here to enable the imx50 pinctrl driver

config PINCTRL_IMX51
	bool "IMX51 pinctrl driver"
	depends on OF
	depends on SOC_IMX51 || COMPILE_TEST
	default SOC_IMX51
	select PINCTRL_IMX
	help
	  Say Y here to enable the imx51 pinctrl driver

config PINCTRL_IMX53
	bool "IMX53 pinctrl driver"
	depends on OF
	depends on SOC_IMX53 || COMPILE_TEST
	default SOC_IMX53
	select PINCTRL_IMX
	help
	  Say Y here to enable the imx53 pinctrl driver

config PINCTRL_IMX6Q
	bool "IMX6Q/DL pinctrl driver"
	depends on OF
	depends on SOC_IMX6Q || COMPILE_TEST
	default SOC_IMX6Q
	select PINCTRL_IMX
	help
	  Say Y here to enable the imx6q/dl pinctrl driver

config PINCTRL_IMX6SL
	bool "IMX6SL pinctrl driver"
	depends on OF
	depends on SOC_IMX6SL || COMPILE_TEST
	default SOC_IMX6SL
	select PINCTRL_IMX
	help
	  Say Y here to enable the imx6sl pinctrl driver

config PINCTRL_IMX6SLL
	bool "IMX6SLL pinctrl driver"
	depends on OF
	depends on SOC_IMX6SLL || COMPILE_TEST
	default SOC_IMX6SLL
	select PINCTRL_IMX
	help
	  Say Y here to enable the imx6sll pinctrl driver

config PINCTRL_IMX6SX
	bool "IMX6SX pinctrl driver"
	depends on OF
	depends on SOC_IMX6SX || COMPILE_TEST
	default SOC_IMX6SX
	select PINCTRL_IMX
	help
	  Say Y here to enable the imx6sx pinctrl driver

config PINCTRL_IMX6UL
	bool "IMX6UL pinctrl driver"
	depends on OF
	depends on SOC_IMX6UL || COMPILE_TEST
	default SOC_IMX6UL
	select PINCTRL_IMX
	help
	  Say Y here to enable the imx6ul pinctrl driver

config PINCTRL_IMX7D
	bool "IMX7D pinctrl driver"
	depends on OF
	depends on SOC_IMX7D || COMPILE_TEST
	default SOC_IMX7D
	select PINCTRL_IMX
	help
	  Say Y here to enable the imx7d pinctrl driver

config PINCTRL_IMX7ULP
	bool "IMX7ULP pinctrl driver"
	depends on OF
	depends on SOC_IMX7ULP || COMPILE_TEST
	default SOC_IMX7ULP
	select PINCTRL_IMX
	help
	  Say Y here to enable the imx7ulp pinctrl driver

config PINCTRL_IMX8MM
	tristate "IMX8MM pinctrl driver"
	depends on OF
	depends on SOC_IMX8M || COMPILE_TEST
	default SOC_IMX8M
	select PINCTRL_IMX
	help
	  Say Y here to enable the imx8mm pinctrl driver

config PINCTRL_IMX8MN
	tristate "IMX8MN pinctrl driver"
	depends on OF
	depends on SOC_IMX8M || COMPILE_TEST
	default SOC_IMX8M
	select PINCTRL_IMX
	help
	  Say Y here to enable the imx8mn pinctrl driver

config PINCTRL_IMX8MP
	tristate "IMX8MP pinctrl driver"
	depends on OF
	depends on SOC_IMX8M || COMPILE_TEST
	default SOC_IMX8M
	select PINCTRL_IMX
	help
	  Say Y here to enable the imx8mp pinctrl driver

config PINCTRL_IMX8MQ
	tristate "IMX8MQ pinctrl driver"
	depends on OF
	depends on SOC_IMX8M || COMPILE_TEST
	default SOC_IMX8M
	select PINCTRL_IMX
	help
	  Say Y here to enable the imx8mq pinctrl driver

config PINCTRL_IMX8QM
	tristate "IMX8QM pinctrl driver"
	depends on OF
	depends on (IMX_SCU && ARCH_MXC && ARM64) || COMPILE_TEST
	default ARCH_MXC
	select PINCTRL_IMX_SCU
	help
	  Say Y here to enable the imx8qm pinctrl driver

config PINCTRL_IMX8QXP
	tristate "IMX8QXP pinctrl driver"
	depends on OF
	depends on (IMX_SCU && ARCH_MXC && ARM64) || COMPILE_TEST
	default ARCH_MXC
	select PINCTRL_IMX_SCU
	help
	  Say Y here to enable the imx8qxp pinctrl driver

config PINCTRL_IMX8DXL
	tristate "IMX8DXL pinctrl driver"
	depends on OF
	depends on (IMX_SCU && ARCH_MXC && ARM64) || COMPILE_TEST
	default ARCH_MXC
	select PINCTRL_IMX_SCU
	help
	  Say Y here to enable the imx8dxl pinctrl driver

config PINCTRL_IMX8ULP
	tristate "IMX8ULP pinctrl driver"
	depends on OF
	depends on ARCH_MXC || COMPILE_TEST
	default ARCH_MXC
	select PINCTRL_IMX
	help
	  Say Y here to enable the imx8ulp pinctrl driver

config PINCTRL_IMXRT1050
	bool "IMXRT1050 pinctrl driver"
	depends on OF
	depends on SOC_IMXRT || COMPILE_TEST
	default SOC_IMXRT
	select PINCTRL_IMX
	help
	  Say Y here to enable the imxrt1050 pinctrl driver

config PINCTRL_IMX91
	tristate "IMX91 pinctrl driver"
	depends on ARCH_MXC
	select PINCTRL_IMX
	help
	  Say Y here to enable the imx91 pinctrl driver

config PINCTRL_IMX93
	tristate "IMX93 pinctrl driver"
	depends on OF
	depends on ARCH_MXC || COMPILE_TEST
	default SOC_IMX9
	select PINCTRL_IMX
	help
	  Say Y here to enable the imx93 pinctrl driver

config PINCTRL_VF610
	bool "Freescale Vybrid VF610 pinctrl driver"
	depends on OF
	depends on SOC_VF610 || COMPILE_TEST
	default SOC_VF610
	select PINCTRL_IMX
	help
	  Say Y here to enable the Freescale Vybrid VF610 pinctrl driver

config PINCTRL_MXS
	bool
	select PINMUX
	select PINCONF

config PINCTRL_IMX23
	bool
	select PINCTRL_MXS

config PINCTRL_IMX28
	bool
	select PINCTRL_MXS

config PINCTRL_IMXRT1170
	bool "IMXRT1170 pinctrl driver"
	depends on OF
	depends on SOC_IMXRT || COMPILE_TEST
	select PINCTRL_IMX
	help
	  Say Y here to enable the imxrt1170 pinctrl driver
