Skip to content

Commit a6199bb

Browse files
shawnguo2Marc Zyngier
authored andcommitted
irqchip: Add Qualcomm MPM controller driver
Qualcomm SoCs based on the RPM architecture have a MSM Power Manager (MPM) in always-on domain. In addition to managing resources during sleep, the hardware also has an interrupt controller that monitors the interrupts when the system is asleep, wakes up the APSS when one of these interrupts occur and replays it to GIC after it becomes operational. It adds an irqchip driver for this interrupt controller, and here are some notes about it. - For given SoC, a fixed number of MPM pins are supported, e.g. 96 pins on QCM2290. Each of these MPM pins can be either a MPM_GIC pin or a MPM_GPIO pin. The mapping between MPM_GIC pin and GIC interrupt is defined by SoC, as well as the mapping between MPM_GPIO pin and GPIO number. The former mapping is retrieved from device tree, while the latter is defined in TLMM pinctrl driver. - The power domain (PD) .power_off hook is used to notify RPM that APSS is about to power collapse. This requires MPM PD be the parent PD of CPU cluster. - When SoC gets awake from sleep mode, the driver will receive an interrupt from RPM, so that it can replay interrupt for particular polarity. Signed-off-by: Shawn Guo <[email protected]> Signed-off-by: Marc Zyngier <[email protected]> Link: https://lore.kernel.org/r/[email protected]
1 parent 54fc985 commit a6199bb

File tree

3 files changed

+470
-0
lines changed

3 files changed

+470
-0
lines changed

drivers/irqchip/Kconfig

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -430,6 +430,14 @@ config QCOM_PDC
430430
Power Domain Controller driver to manage and configure wakeup
431431
IRQs for Qualcomm Technologies Inc (QTI) mobile chips.
432432

433+
config QCOM_MPM
434+
tristate "QCOM MPM"
435+
depends on ARCH_QCOM
436+
select IRQ_DOMAIN_HIERARCHY
437+
help
438+
MSM Power Manager driver to manage and configure wakeup
439+
IRQs for Qualcomm Technologies Inc (QTI) mobile chips.
440+
433441
config CSKY_MPINTC
434442
bool
435443
depends on CSKY

drivers/irqchip/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@ obj-$(CONFIG_MESON_IRQ_GPIO) += irq-meson-gpio.o
9494
obj-$(CONFIG_GOLDFISH_PIC) += irq-goldfish-pic.o
9595
obj-$(CONFIG_NDS32) += irq-ativic32.o
9696
obj-$(CONFIG_QCOM_PDC) += qcom-pdc.o
97+
obj-$(CONFIG_QCOM_MPM) += irq-qcom-mpm.o
9798
obj-$(CONFIG_CSKY_MPINTC) += irq-csky-mpintc.o
9899
obj-$(CONFIG_CSKY_APB_INTC) += irq-csky-apb-intc.o
99100
obj-$(CONFIG_RISCV_INTC) += irq-riscv-intc.o

0 commit comments

Comments
 (0)