if ARCH_SNAPDRAGON || ARCH_IPQ40XX

config PINCTRL_QCOM
	depends on PINCTRL_GENERIC
	def_bool n

menu "Qualcomm pinctrl drivers"

config PINCTRL_QCOM_GENERIC
	bool "Enable all Qualcomm pinctrl drivers by default"
	select PINCTRL_QCOM
	help
	  Say Y here to enable all Qualcomm pinctrl drivers by default.
	  This is useful for generic Qualcomm defconfigs that support
	  multiple SoCs. Individual drivers can still be disabled if needed.

config PINCTRL_QCOM_APQ8016
	bool "Qualcomm APQ8016 Pinctrl"
	default y if PINCTRL_QCOM_GENERIC
	select PINCTRL_QCOM
	help
	  Say Y here to enable support for pinctrl on the MSM8916 / APQ8016
	  Snapdragon 410 SoC, as well as the associated GPIO driver.

config PINCTRL_QCOM_APQ8096
	bool "Qualcomm APQ8096 Pinctrl"
	default y if PINCTRL_QCOM_GENERIC
	select PINCTRL_QCOM
	help
	  Say Y here to enable support for pinctrl on the MSM8996 / APQ8096
	  Snapdragon 820 SoC, as well as the associated GPIO driver.

config PINCTRL_QCOM_IPQ4019
	bool "Qualcomm IPQ4019 Pinctrl"
	default y if PINCTRL_QCOM_GENERIC
	select PINCTRL_QCOM
	help
	  Say Y here to enable support for pinctrl on the IPQ4019 SoC,
	  as well as the associated GPIO driver.

config PINCTRL_QCOM_IPQ5424
	bool "Qualcomm IPQ5424 Pinctrl"
	default y if PINCTRL_QCOM_GENERIC
	select PINCTRL_QCOM
	help
	  Say Y here to enable support for pinctrl on the IPQ5424 SoC,
	  as well as the associated GPIO driver.

config PINCTRL_QCOM_IPQ9574
	bool "Qualcomm IPQ9574 Pinctrl"
	default y if PINCTRL_QCOM_GENERIC
	select PINCTRL_QCOM
	help
	  Say Y here to enable support for pinctrl on the IPQ9574 SoC,
	  as well as the associated GPIO driver.

config PINCTRL_QCOM_QCM2290
	bool "Qualcomm QCM2290 Pinctrl"
	default y if PINCTRL_QCOM_GENERIC
	select PINCTRL_QCOM
	help
	  Say Y here to enable support for pinctrl on the Snapdragon QCM2290 SoC,
	  as well as the associated GPIO driver.

config PINCTRL_QCOM_QCS404
	bool "Qualcomm QCS404 Pinctrl"
	default y if PINCTRL_QCOM_GENERIC
	select PINCTRL_QCOM
	help
	  Say Y here to enable support for pinctrl on the Snapdragon QCS404 SoC,
	  as well as the associated GPIO driver.

config PINCTRL_QCOM_QCS615
        bool "Qualcomm QCS615 Pinctrl"
	default y if PINCTRL_QCOM_GENERIC
        select PINCTRL_QCOM
        help
          Say Y here to enable support for pinctrl on the Snapdragon QCS615 SoC,
          as well as the associated GPIO driver.

config PINCTRL_QCOM_SA8775P
	bool "Qualcomm SA8775P Pinctrl"
	default y if PINCTRL_QCOM_GENERIC
	select PINCTRL_QCOM
	help
	  Say Y here to enable support for pinctrl on the Snapdragon SA8775P SoC,
	  as well as the associated GPIO driver.

config PINCTRL_QCOM_SC7280
	bool "Qualcomm SC7280/QCM6490 Pinctrl"
	default y if PINCTRL_QCOM_GENERIC
	select PINCTRL_QCOM
	help
	  Say Y here to enable support for pinctrl on the Snapdragon SC7280 SoC,

config PINCTRL_QCOM_SDM670
	bool "Qualcomm SDM670 Pinctrl"
	default y if PINCTRL_QCOM_GENERIC
	select PINCTRL_QCOM
	help
	  Say Y here to enable support for pinctrl on the Snapdragon SDM670 SoC,
	  as well as the associated GPIO driver.

config PINCTRL_QCOM_SDM660
	bool "Qualcomm SDM630/660 Pinctrl"
	default y if PINCTRL_QCOM_GENERIC
	select PINCTRL_QCOM
	help
	  Say Y here to enable support for pinctrl on the Snapdragon 630/636/660
	  SoCs, as well as the associated GPIO driver.

config PINCTRL_QCOM_SDM845
	bool "Qualcomm SDM845 Pinctrl"
	default y if PINCTRL_QCOM_GENERIC
	select PINCTRL_QCOM
	help
	  Say Y here to enable support for pinctrl on the Snapdragon 845 SoC,
	  as well as the associated GPIO driver.

config PINCTRL_QCOM_SM6115
	bool "Qualcomm SM6115 Pinctrl"
	default y if PINCTRL_QCOM_GENERIC
	select PINCTRL_QCOM
	help
	  Say Y here to enable support for pinctrl on the Snapdragon SM6115 SoC,
	  as well as the associated GPIO driver.

config PINCTRL_QCOM_SM6350
	bool "Qualcomm SM6350 Pinctrl"
	default y if PINCTRL_QCOM_GENERIC
	select PINCTRL_QCOM
	help
	  Say Y here to enable support for pinctrl on the Snapdragon SM6350 SoC,

config PINCTRL_QCOM_SM7150
	bool "Qualcomm SM7150 GCC"
	default y if PINCTRL_QCOM_GENERIC
	select PINCTRL_QCOM
	help
	  Say Y here to enable support for pinctrl on the Snapdragon SM7150 SoC,
	  as well as the associated GPIO driver.

config PINCTRL_QCOM_SM8150
	bool "Qualcomm SM8150 Pinctrl"
	default y if PINCTRL_QCOM_GENERIC
	select PINCTRL_QCOM
	help
	  Say Y here to enable support for pinctrl on the Snapdragon SM8150 SoC,
	  as well as the associated GPIO driver.

config PINCTRL_QCOM_SM8250
	bool "Qualcomm SM8250 Pinctrl"
	default y if PINCTRL_QCOM_GENERIC
	select PINCTRL_QCOM
	help
	  Say Y here to enable support for pinctrl on the Snapdragon SM8250 SoC,
	  as well as the associated GPIO driver.

config PINCTRL_QCOM_SM8550
	bool "Qualcomm SM8550 Pinctrl"
	default y if PINCTRL_QCOM_GENERIC
	select PINCTRL_QCOM
	help
	  Say Y here to enable support for pinctrl on the Snapdragon SM8550 SoC,
	  as well as the associated GPIO driver.

config PINCTRL_QCOM_SM8650
	bool "Qualcomm SM8650 Pinctrl"
	default y if PINCTRL_QCOM_GENERIC
	select PINCTRL_QCOM
	help
	  Say Y here to enable support for pinctrl on the Snapdragon SM8650 SoC,
	  as well as the associated GPIO driver.

config PINCTRL_QCOM_X1E80100
	bool "Qualcomm X1E80100 Pinctrl"
	default y if PINCTRL_QCOM_GENERIC
	select PINCTRL_QCOM
	help
	  Say Y here to enable support for pinctrl on the Snapdragon X1E80100 SoC,
	  as well as the associated GPIO driver.

endmenu

endif
