• Shawn Guo's avatar
    irqchip: Add Qualcomm MPM controller driver · a6199bb5
    Shawn Guo authored
    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: default avatarShawn Guo <shawn.guo@linaro.org>
    Signed-off-by: default avatarMarc Zyngier <maz@kernel.org>
    Link: https://lore.kernel.org/r/20220308080534.3384532-3-shawn.guo@linaro.org
    a6199bb5
irq-qcom-mpm.c 12 KB