# SPDX-License-Identifier: GPL-2.0-only
#
# SPMI driver configuration
#
menuconfig SPMI
	tristate "SPMI support"
	help
	  SPMI (System Power Management Interface) is a two-wire
	  serial interface between baseband and application processors
	  and Power Management Integrated Circuits (PMIC).

if SPMI

config SPMI_MSM_PMIC_ARB
	tristate "Qualcomm MSM SPMI Controller (PMIC Arbiter)"
	select IRQ_DOMAIN_HIERARCHY
	depends on ARCH_QCOM || COMPILE_TEST
	depends on HAS_IOMEM
	default ARCH_QCOM
	help
	  If you say yes to this option, support will be included for the
	  built-in SPMI PMIC Arbiter interface on Qualcomm MSM family
	  processors.

	  This is required for communicating with Qualcomm PMICs and
	  other devices that have the SPMI interface.

config SPMI_MTK_PMIF
	tristate "Mediatek SPMI Controller (PMIC Arbiter)"
	help
	  If you say yes to this option, support will be included for the
	  built-in SPMI PMIC Arbiter interface on Mediatek family
	  processors.

	  This is required for communicating with Mediatek PMICs and
	  other devices that have the SPMI interface.
endif
