# SPDX-License-Identifier: GPL-2.0-only
if (ARCH_QCOM || COMPILE_TEST)

config PINCTRL_MSM
	tristate "Qualcomm core pin controller driver"
	depends on GPIOLIB
	# OF for pinconf_generic_dt_node_to_map_group() from GENERIC_PINCONF
	depends on OF
	select QCOM_SCM
	select PINMUX
	select PINCONF
	select GENERIC_PINCONF
	select GPIOLIB_IRQCHIP
	select IRQ_DOMAIN_HIERARCHY
	select IRQ_FASTEOI_HIERARCHY_HANDLERS

source "drivers/pinctrl/qcom/Kconfig.msm"

config PINCTRL_QCOM_SPMI_PMIC
	tristate "Qualcomm SPMI PMIC pin controller driver"
	depends on OF && SPMI
	select REGMAP_SPMI
	select PINMUX
	select PINCONF
	select GENERIC_PINCONF
	select GPIOLIB
	select GPIOLIB_IRQCHIP
	select IRQ_DOMAIN_HIERARCHY
	help
	 This is the pinctrl, pinmux, pinconf and gpiolib driver for the
	 Qualcomm GPIO and MPP blocks found in the Qualcomm PMIC's chips,
	 which are using SPMI for communication with SoC. Example PMIC's
	 devices are pm8841, pm8941 and pma8084.

config PINCTRL_QCOM_SSBI_PMIC
	tristate "Qualcomm SSBI PMIC pin controller driver"
	depends on OF
	select PINMUX
	select PINCONF
	select GENERIC_PINCONF
	select GPIOLIB
	select GPIOLIB_IRQCHIP
	select IRQ_DOMAIN_HIERARCHY
	help
	 This is the pinctrl, pinmux, pinconf and gpiolib driver for the
	 Qualcomm GPIO and MPP blocks found in the Qualcomm PMIC's chips,
	 which are using SSBI for communication with SoC. Example PMIC's
	 devices are pm8058 and pm8921.

config PINCTRL_LPASS_LPI
	tristate "Qualcomm Technologies Inc LPASS LPI pin controller driver"
	select PINMUX
	select PINCONF
	select GENERIC_PINCONF
	select GENERIC_PINCTRL_GROUPS
	depends on GPIOLIB
	help
	  This is the pinctrl, pinmux, pinconf and gpiolib driver for the
	  Qualcomm Technologies Inc LPASS (Low Power Audio SubSystem) LPI
	  (Low Power Island) found on the Qualcomm Technologies Inc SoCs.

config PINCTRL_SC7280_LPASS_LPI
	tristate "Qualcomm Technologies Inc SC7280 LPASS LPI pin controller driver"
	depends on ARM64 || COMPILE_TEST
	depends on PINCTRL_LPASS_LPI
	help
	  This is the pinctrl, pinmux, pinconf and gpiolib driver for the
	  Qualcomm Technologies Inc LPASS (Low Power Audio SubSystem) LPI
	  (Low Power Island) found on the Qualcomm Technologies Inc SC7280 platform.

config PINCTRL_SM6115_LPASS_LPI
	tristate "Qualcomm Technologies Inc SM6115 LPASS LPI pin controller driver"
	depends on ARM64 || COMPILE_TEST
	depends on PINCTRL_LPASS_LPI
	help
	  This is the pinctrl, pinmux, pinconf and gpiolib driver for the
	  Qualcomm Technologies Inc LPASS (Low Power Audio SubSystem) LPI
	  (Low Power Island) found on the Qualcomm Technologies Inc SM6115 platform.

config PINCTRL_SM8250_LPASS_LPI
	tristate "Qualcomm Technologies Inc SM8250 LPASS LPI pin controller driver"
	depends on ARM64 || COMPILE_TEST
	depends on PINCTRL_LPASS_LPI
	help
	  This is the pinctrl, pinmux, pinconf and gpiolib driver for the
	  Qualcomm Technologies Inc LPASS (Low Power Audio SubSystem) LPI
	  (Low Power Island) found on the Qualcomm Technologies Inc SM8250 platform.

config PINCTRL_SM8350_LPASS_LPI
	tristate "Qualcomm Technologies Inc SM8350 LPASS LPI pin controller driver"
	depends on ARM64 || COMPILE_TEST
	depends on PINCTRL_LPASS_LPI
	help
	  This is the pinctrl, pinmux, pinconf and gpiolib driver for the
	  Qualcomm Technologies Inc LPASS (Low Power Audio SubSystem) LPI
	  (Low Power Island) found on the Qualcomm Technologies Inc SM8350
	  platform.

config PINCTRL_SM8450_LPASS_LPI
	tristate "Qualcomm Technologies Inc SM8450 LPASS LPI pin controller driver"
	depends on ARM64 || COMPILE_TEST
	depends on PINCTRL_LPASS_LPI
	help
	  This is the pinctrl, pinmux, pinconf and gpiolib driver for the
	  Qualcomm Technologies Inc LPASS (Low Power Audio SubSystem) LPI
	  (Low Power Island) found on the Qualcomm Technologies Inc SM8450 platform.

config PINCTRL_SC8280XP_LPASS_LPI
	tristate "Qualcomm Technologies Inc SC8280XP LPASS LPI pin controller driver"
	depends on ARM64 || COMPILE_TEST
	depends on PINCTRL_LPASS_LPI
	help
	  This is the pinctrl, pinmux, pinconf and gpiolib driver for the
	  Qualcomm Technologies Inc LPASS (Low Power Audio SubSystem) LPI
	  (Low Power Island) found on the Qualcomm Technologies Inc SC8280XP platform.

config PINCTRL_SM8550_LPASS_LPI
	tristate "Qualcomm Technologies Inc SM8550 LPASS LPI pin controller driver"
	depends on ARM64 || COMPILE_TEST
	depends on PINCTRL_LPASS_LPI
	help
	  This is the pinctrl, pinmux, pinconf and gpiolib driver for the
	  Qualcomm Technologies Inc LPASS (Low Power Audio SubSystem) LPI
	  (Low Power Island) found on the Qualcomm Technologies Inc SM8550
	  platform.

endif