xref: /linux/Documentation/devicetree/bindings/interrupt-controller/qcom,mpm.yaml (revision 06d07429858317ded2db7986113a9e0129cd599b)
154fc9851SShawn Guo# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
254fc9851SShawn Guo%YAML 1.2
354fc9851SShawn Guo---
454fc9851SShawn Guo$id: http://devicetree.org/schemas/interrupt-controller/qcom,mpm.yaml#
554fc9851SShawn Guo$schema: http://devicetree.org/meta-schemas/core.yaml#
654fc9851SShawn Guo
754fc9851SShawn Guotitle: Qualcom MPM Interrupt Controller
854fc9851SShawn Guo
954fc9851SShawn Guomaintainers:
1054fc9851SShawn Guo  - Shawn Guo <shawn.guo@linaro.org>
1154fc9851SShawn Guo
1254fc9851SShawn Guodescription:
1354fc9851SShawn Guo  Qualcomm Technologies Inc. SoCs based on the RPM architecture have a
1454fc9851SShawn Guo  MSM Power Manager (MPM) that is in always-on domain. In addition to managing
1554fc9851SShawn Guo  resources during sleep, the hardware also has an interrupt controller that
1654fc9851SShawn Guo  monitors the interrupts when the system is asleep, wakes up the APSS when
1754fc9851SShawn Guo  one of these interrupts occur and replays it to GIC interrupt controller
1854fc9851SShawn Guo  after GIC becomes operational.
1954fc9851SShawn Guo
2054fc9851SShawn GuoallOf:
2154fc9851SShawn Guo  - $ref: /schemas/interrupt-controller.yaml#
2254fc9851SShawn Guo
2354fc9851SShawn Guoproperties:
2454fc9851SShawn Guo  compatible:
2554fc9851SShawn Guo    items:
2654fc9851SShawn Guo      - const: qcom,mpm
2754fc9851SShawn Guo
2854fc9851SShawn Guo  reg:
2954fc9851SShawn Guo    maxItems: 1
3054fc9851SShawn Guo    description:
3154fc9851SShawn Guo      Specifies the base address and size of vMPM registers in RPM MSG RAM.
32*ca596295SKonrad Dybcio    deprecated: true
33*ca596295SKonrad Dybcio
34*ca596295SKonrad Dybcio  qcom,rpm-msg-ram:
35*ca596295SKonrad Dybcio    $ref: /schemas/types.yaml#/definitions/phandle
36*ca596295SKonrad Dybcio    description:
37*ca596295SKonrad Dybcio      Phandle to the APSS MPM slice of the RPM Message RAM
3854fc9851SShawn Guo
3954fc9851SShawn Guo  interrupts:
4054fc9851SShawn Guo    maxItems: 1
4154fc9851SShawn Guo    description:
4254fc9851SShawn Guo      Specify the IRQ used by RPM to wakeup APSS.
4354fc9851SShawn Guo
4454fc9851SShawn Guo  mboxes:
4554fc9851SShawn Guo    maxItems: 1
4654fc9851SShawn Guo    description:
4754fc9851SShawn Guo      Specify the mailbox used to notify RPM for writing vMPM registers.
4854fc9851SShawn Guo
4954fc9851SShawn Guo  interrupt-controller: true
5054fc9851SShawn Guo
5154fc9851SShawn Guo  '#interrupt-cells':
5254fc9851SShawn Guo    const: 2
5354fc9851SShawn Guo    description:
5454fc9851SShawn Guo      The first cell is the MPM pin number for the interrupt, and the second
5554fc9851SShawn Guo      is the trigger type.
5654fc9851SShawn Guo
5754fc9851SShawn Guo  qcom,mpm-pin-count:
5854fc9851SShawn Guo    description:
5954fc9851SShawn Guo      Specify the total MPM pin count that a SoC supports.
6054fc9851SShawn Guo    $ref: /schemas/types.yaml#/definitions/uint32
6154fc9851SShawn Guo
6254fc9851SShawn Guo  qcom,mpm-pin-map:
6354fc9851SShawn Guo    description:
6454fc9851SShawn Guo      A set of MPM pin numbers and the corresponding GIC SPIs.
6554fc9851SShawn Guo    $ref: /schemas/types.yaml#/definitions/uint32-matrix
6654fc9851SShawn Guo    items:
6754fc9851SShawn Guo      items:
6854fc9851SShawn Guo        - description: MPM pin number
6954fc9851SShawn Guo        - description: GIC SPI number for the MPM pin
7054fc9851SShawn Guo
71c0a2755aSKonrad Dybcio  '#power-domain-cells':
72c0a2755aSKonrad Dybcio    const: 0
73c0a2755aSKonrad Dybcio
7454fc9851SShawn Guorequired:
7554fc9851SShawn Guo  - compatible
7654fc9851SShawn Guo  - interrupts
7754fc9851SShawn Guo  - mboxes
7854fc9851SShawn Guo  - interrupt-controller
7954fc9851SShawn Guo  - '#interrupt-cells'
8054fc9851SShawn Guo  - qcom,mpm-pin-count
8154fc9851SShawn Guo  - qcom,mpm-pin-map
82*ca596295SKonrad Dybcio  - qcom,rpm-msg-ram
8354fc9851SShawn Guo
8454fc9851SShawn GuoadditionalProperties: false
8554fc9851SShawn Guo
8654fc9851SShawn Guoexamples:
8754fc9851SShawn Guo  - |
8854fc9851SShawn Guo    #include <dt-bindings/interrupt-controller/arm-gic.h>
89*ca596295SKonrad Dybcio
90*ca596295SKonrad Dybcio    remoteproc-rpm {
91*ca596295SKonrad Dybcio        compatible = "qcom,msm8998-rpm-proc", "qcom,rpm-proc";
92*ca596295SKonrad Dybcio
93*ca596295SKonrad Dybcio        glink-edge {
94*ca596295SKonrad Dybcio            compatible = "qcom,glink-rpm";
95*ca596295SKonrad Dybcio
96*ca596295SKonrad Dybcio            interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
97*ca596295SKonrad Dybcio            qcom,rpm-msg-ram = <&rpm_msg_ram>;
98*ca596295SKonrad Dybcio            mboxes = <&apcs_glb 0>;
99*ca596295SKonrad Dybcio        };
100*ca596295SKonrad Dybcio
101*ca596295SKonrad Dybcio        mpm: interrupt-controller {
10254fc9851SShawn Guo            compatible = "qcom,mpm";
103*ca596295SKonrad Dybcio            qcom,rpm-msg-ram = <&apss_mpm>;
10454fc9851SShawn Guo            interrupts = <GIC_SPI 197 IRQ_TYPE_EDGE_RISING>;
10554fc9851SShawn Guo            mboxes = <&apcs_glb 1>;
10654fc9851SShawn Guo            interrupt-controller;
10754fc9851SShawn Guo            #interrupt-cells = <2>;
10854fc9851SShawn Guo            interrupt-parent = <&intc>;
10954fc9851SShawn Guo            qcom,mpm-pin-count = <96>;
11054fc9851SShawn Guo            qcom,mpm-pin-map = <2 275>,
11154fc9851SShawn Guo                               <5 296>,
11254fc9851SShawn Guo                               <12 422>,
11354fc9851SShawn Guo                               <24 79>,
11454fc9851SShawn Guo                               <86 183>,
11554fc9851SShawn Guo                               <91 260>;
116c0a2755aSKonrad Dybcio            #power-domain-cells = <0>;
11754fc9851SShawn Guo        };
118*ca596295SKonrad Dybcio    };
119