config PINCTRL_IMX
	bool

config PINCTRL_IMX_SCU
	bool

config PINCTRL_IMX5
	bool "IMX5 pinctrl driver"
	depends on ARCH_MX5 && PINCTRL_FULL
	select DEVRES
	select PINCTRL_IMX
	help
	  Say Y here to enable the imx5 pinctrl driver

	  This provides a simple pinctrl driver for i.MX 53SoC familiy,
	  i.MX53. This feature depends on device tree
	  configuration. This driver is different from the linux one,
	  this is a simple implementation, only parses the 'fsl,pins'
	  property and configure related registers.

config PINCTRL_IMX6
	bool "IMX6 pinctrl driver"
	depends on ARCH_MX6 && PINCTRL_FULL
	select DEVRES
	select PINCTRL_IMX
	help
	  Say Y here to enable the imx6 pinctrl driver

	  This provides a simple pinctrl driver for i.MX6 SoC familiy,
	  i.MX6DQ/SL/SX/UL/DQP. This feature depends on device tree
	  configuration. This driver is different from the linux one,
	  this is a simple implementation, only parses the 'fsl,pins'
	  property and configure related registers.

config PINCTRL_IMX7
	bool "IMX7 pinctrl driver"
	depends on ARCH_MX7 && PINCTRL_FULL
	select DEVRES
	select PINCTRL_IMX
	help
	  Say Y here to enable the imx7 pinctrl driver

	  This provides a simple pinctrl driver for i.MX7 SoC familiy,
	  i.MX7D. This feature depends on device tree
	  configuration. This driver is different from the linux one,
	  this is a simple implementation, only parses the 'fsl,pins'
	  property and configure related registers.

config PINCTRL_IMX7ULP
	bool "IMX7ULP pinctrl driver"
	depends on ARCH_MX7ULP && PINCTRL_FULL
	select DEVRES
	select PINCTRL_IMX
	help
	  Say Y here to enable the imx7ulp pinctrl driver

	  This provides a simple pinctrl driver for i.MX7ULP SoC familiy.
	  This feature depends on device tree configuration. This driver
	  is different from the linux one, this is a simple implementation,
	  only parses the 'fsl,pins' property and configure related
	  registers.

config PINCTRL_IMX8ULP
	bool "IMX8ULP pinctrl driver"
	depends on ARCH_IMX8ULP && PINCTRL_FULL
	select DEVRES
	select PINCTRL_IMX
	help
	  Say Y here to enable the imx8ulp pinctrl driver

	  This provides a simple pinctrl driver for i.MX8ULP SoC familiy.
	  This feature depends on device tree configuration. This driver
	  is different from the linux one, this is a simple implementation,
	  only parses the 'fsl,pins' property and configure related
	  registers.

config PINCTRL_IMX8
	bool "IMX8 pinctrl driver"
	depends on ARCH_IMX8 && PINCTRL_FULL
	select DEVRES
	select PINCTRL_IMX
	select PINCTRL_IMX_SCU
	help
	  Say Y here to enable the imx8 pinctrl driver

	  This provides a simple pinctrl driver for i.MX8 SoC familiy.
	  This feature depends on device tree configuration. This driver
	  is different from the linux one, this is a simple implementation,
	  only parses the 'fsl,pins' property and configures related
	  registers.

config PINCTRL_IMX8M
	bool "IMX8M pinctrl driver"
	depends on ARCH_IMX8M && PINCTRL_FULL
	select PINCTRL_IMX
	help
	  Say Y here to enable the imx8m pinctrl driver

	  This provides a simple pinctrl driver for i.MX8M SoC familiy.
	  This feature depends on device tree configuration. This driver
	  is different from the linux one, this is a simple implementation,
	  only parses the 'fsl,pins' property and configure related
	  registers.

config PINCTRL_IMX93
	bool "IMX8M pinctrl driver"
	depends on ARCH_IMX9 && PINCTRL_FULL
	select PINCTRL_IMX
	help
	  Say Y here to enable the imx8m pinctrl driver

	  This provides a simple pinctrl driver for i.MX8M SoC familiy.
	  This feature depends on device tree configuration. This driver
	  is different from the linux one, this is a simple implementation,
	  only parses the 'fsl,pins' property and configure related
	  registers.

config PINCTRL_MXS
	bool "NXP MXS pinctrl driver"
	depends on ARCH_MX28 && PINCTRL_FULL
	help
	  Say Y here to enable the i.MX mxs pinctrl driver

	  This option provides a simple pinctrl driver for i.MX mxs SoC
	  familiy, e.g. i.MX28. This feature depends on device tree
	  configuration.

config PINCTRL_IMXRT
	bool "IMXRT pinctrl driver"
	depends on ARCH_IMXRT && PINCTRL_FULL
	select DEVRES
	select PINCTRL_IMX
	help
	  Say Y here to enable the imxrt pinctrl driver

	  This provides a simple pinctrl driver for i.MXRT SoC familiy.
	  This feature depends on device tree configuration. This driver
	  is different from the linux one, this is a simple implementation,
	  only parses the 'fsl,pins' property and configure related
	  registers.

config PINCTRL_VYBRID
	bool "Vybrid (vf610) pinctrl driver"
	depends on ARCH_VF610 && PINCTRL_FULL
	select DEVRES
	select PINCTRL_IMX
	help
	  Say Y here to enable the Vybrid (vf610) pinctrl driver

	  This provides a simple pinctrl driver for Vybrid SoC familiy,
	  vf610. This feature depends on device tree
	  configuration. This driver is different from the linux one,
	  this is a simple implementation, only parses the 'fsl,pins'
	  property and configure related registers.
