mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2026-08-09 06:14:34 +02:00
Convert the LPASS LPI pinctrl driver to use the PM clock framework for runtime power management. This allows the LPASS LPI pinctrl driver to drop clock votes when idle, improves power efficiency on platforms using LPASS LPI island mode, and aligns the driver with common runtime PM patterns used across Qualcomm LPASS subsystems. Guard GPIO register read/write helpers and slew-rate register programming with synchronous runtime PM calls so the device is active during MMIO operations whenever autosuspend is enabled. Make PINCTRL_LPASS_LPI depend on PM_CLK, since this patch introduces direct PM clock API use in the shared core. Suggested-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com> Signed-off-by: Ajay Kumar Nandam <ajay.nandam@oss.qualcomm.com> Signed-off-by: Linus Walleij <linusw@kernel.org>
180 lines
6.3 KiB
Plaintext
180 lines
6.3 KiB
Plaintext
# 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
|
|
default ARCH_QCOM
|
|
select QCOM_SCM
|
|
select PINMUX
|
|
select GENERIC_PINMUX_FUNCTIONS
|
|
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 LPASS LPI pin controller driver"
|
|
select PINMUX
|
|
select PINCONF
|
|
select GENERIC_PINCONF
|
|
select GENERIC_PINCTRL_GROUPS
|
|
depends on PM_CLK
|
|
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_MILOS_LPASS_LPI
|
|
tristate "Qualcomm Milos 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 Milos
|
|
platform.
|
|
|
|
config PINCTRL_SC7280_LPASS_LPI
|
|
tristate "Qualcomm SC7280 and 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 SC7280
|
|
and SM8350 platforms.
|
|
|
|
config PINCTRL_SDM660_LPASS_LPI
|
|
tristate "Qualcomm SDM660 LPASS LPI pin controller driver"
|
|
depends on GPIOLIB
|
|
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 SDM660 platform.
|
|
|
|
config PINCTRL_SM4250_LPASS_LPI
|
|
tristate "Qualcomm SM4250 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 SM4250 platform.
|
|
|
|
config PINCTRL_SDM670_LPASS_LPI
|
|
tristate "Qualcomm SDM670 LPASS LPI pin controller driver"
|
|
depends on GPIOLIB
|
|
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 SDM670 platform.
|
|
|
|
config PINCTRL_SM6115_LPASS_LPI
|
|
tristate "Qualcomm 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_SM6350_LPASS_LPI
|
|
tristate "Qualcomm SM6350 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 SM6350 platform.
|
|
|
|
config PINCTRL_SM8250_LPASS_LPI
|
|
tristate "Qualcomm 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_SM8450_LPASS_LPI
|
|
tristate "Qualcomm 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 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 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.
|
|
|
|
config PINCTRL_SM8650_LPASS_LPI
|
|
tristate "Qualcomm SM8650 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 SM8650
|
|
platform.
|
|
|
|
endif
|