xref: /freebsd-src/sys/contrib/device-tree/Bindings/interrupt-controller/qcom,mpm.yaml (revision 8d13bc63c0e1d50bc9e47ac1f26329c999bfecf0)
1c9ccf3a3SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2c9ccf3a3SEmmanuel Vadot%YAML 1.2
3c9ccf3a3SEmmanuel Vadot---
4c9ccf3a3SEmmanuel Vadot$id: http://devicetree.org/schemas/interrupt-controller/qcom,mpm.yaml#
5c9ccf3a3SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6c9ccf3a3SEmmanuel Vadot
7c9ccf3a3SEmmanuel Vadottitle: Qualcom MPM Interrupt Controller
8c9ccf3a3SEmmanuel Vadot
9c9ccf3a3SEmmanuel Vadotmaintainers:
10c9ccf3a3SEmmanuel Vadot  - Shawn Guo <shawn.guo@linaro.org>
11c9ccf3a3SEmmanuel Vadot
12c9ccf3a3SEmmanuel Vadotdescription:
13c9ccf3a3SEmmanuel Vadot  Qualcomm Technologies Inc. SoCs based on the RPM architecture have a
14c9ccf3a3SEmmanuel Vadot  MSM Power Manager (MPM) that is in always-on domain. In addition to managing
15c9ccf3a3SEmmanuel Vadot  resources during sleep, the hardware also has an interrupt controller that
16c9ccf3a3SEmmanuel Vadot  monitors the interrupts when the system is asleep, wakes up the APSS when
17c9ccf3a3SEmmanuel Vadot  one of these interrupts occur and replays it to GIC interrupt controller
18c9ccf3a3SEmmanuel Vadot  after GIC becomes operational.
19c9ccf3a3SEmmanuel Vadot
20c9ccf3a3SEmmanuel VadotallOf:
21c9ccf3a3SEmmanuel Vadot  - $ref: /schemas/interrupt-controller.yaml#
22c9ccf3a3SEmmanuel Vadot
23c9ccf3a3SEmmanuel Vadotproperties:
24c9ccf3a3SEmmanuel Vadot  compatible:
25c9ccf3a3SEmmanuel Vadot    items:
26c9ccf3a3SEmmanuel Vadot      - const: qcom,mpm
27c9ccf3a3SEmmanuel Vadot
28c9ccf3a3SEmmanuel Vadot  reg:
29c9ccf3a3SEmmanuel Vadot    maxItems: 1
30c9ccf3a3SEmmanuel Vadot    description:
31c9ccf3a3SEmmanuel Vadot      Specifies the base address and size of vMPM registers in RPM MSG RAM.
32*8d13bc63SEmmanuel Vadot    deprecated: true
33*8d13bc63SEmmanuel Vadot
34*8d13bc63SEmmanuel Vadot  qcom,rpm-msg-ram:
35*8d13bc63SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/phandle
36*8d13bc63SEmmanuel Vadot    description:
37*8d13bc63SEmmanuel Vadot      Phandle to the APSS MPM slice of the RPM Message RAM
38c9ccf3a3SEmmanuel Vadot
39c9ccf3a3SEmmanuel Vadot  interrupts:
40c9ccf3a3SEmmanuel Vadot    maxItems: 1
41c9ccf3a3SEmmanuel Vadot    description:
42c9ccf3a3SEmmanuel Vadot      Specify the IRQ used by RPM to wakeup APSS.
43c9ccf3a3SEmmanuel Vadot
44c9ccf3a3SEmmanuel Vadot  mboxes:
45c9ccf3a3SEmmanuel Vadot    maxItems: 1
46c9ccf3a3SEmmanuel Vadot    description:
47c9ccf3a3SEmmanuel Vadot      Specify the mailbox used to notify RPM for writing vMPM registers.
48c9ccf3a3SEmmanuel Vadot
49c9ccf3a3SEmmanuel Vadot  interrupt-controller: true
50c9ccf3a3SEmmanuel Vadot
51c9ccf3a3SEmmanuel Vadot  '#interrupt-cells':
52c9ccf3a3SEmmanuel Vadot    const: 2
53c9ccf3a3SEmmanuel Vadot    description:
54c9ccf3a3SEmmanuel Vadot      The first cell is the MPM pin number for the interrupt, and the second
55c9ccf3a3SEmmanuel Vadot      is the trigger type.
56c9ccf3a3SEmmanuel Vadot
57c9ccf3a3SEmmanuel Vadot  qcom,mpm-pin-count:
58c9ccf3a3SEmmanuel Vadot    description:
59c9ccf3a3SEmmanuel Vadot      Specify the total MPM pin count that a SoC supports.
60c9ccf3a3SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
61c9ccf3a3SEmmanuel Vadot
62c9ccf3a3SEmmanuel Vadot  qcom,mpm-pin-map:
63c9ccf3a3SEmmanuel Vadot    description:
64c9ccf3a3SEmmanuel Vadot      A set of MPM pin numbers and the corresponding GIC SPIs.
65c9ccf3a3SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32-matrix
66c9ccf3a3SEmmanuel Vadot    items:
67c9ccf3a3SEmmanuel Vadot      items:
68c9ccf3a3SEmmanuel Vadot        - description: MPM pin number
69c9ccf3a3SEmmanuel Vadot        - description: GIC SPI number for the MPM pin
70c9ccf3a3SEmmanuel Vadot
7184943d6fSEmmanuel Vadot  '#power-domain-cells':
7284943d6fSEmmanuel Vadot    const: 0
7384943d6fSEmmanuel Vadot
74c9ccf3a3SEmmanuel Vadotrequired:
75c9ccf3a3SEmmanuel Vadot  - compatible
76c9ccf3a3SEmmanuel Vadot  - interrupts
77c9ccf3a3SEmmanuel Vadot  - mboxes
78c9ccf3a3SEmmanuel Vadot  - interrupt-controller
79c9ccf3a3SEmmanuel Vadot  - '#interrupt-cells'
80c9ccf3a3SEmmanuel Vadot  - qcom,mpm-pin-count
81c9ccf3a3SEmmanuel Vadot  - qcom,mpm-pin-map
82*8d13bc63SEmmanuel Vadot  - qcom,rpm-msg-ram
83c9ccf3a3SEmmanuel Vadot
84c9ccf3a3SEmmanuel VadotadditionalProperties: false
85c9ccf3a3SEmmanuel Vadot
86c9ccf3a3SEmmanuel Vadotexamples:
87c9ccf3a3SEmmanuel Vadot  - |
88c9ccf3a3SEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
89*8d13bc63SEmmanuel Vadot
90*8d13bc63SEmmanuel Vadot    remoteproc-rpm {
91*8d13bc63SEmmanuel Vadot        compatible = "qcom,msm8998-rpm-proc", "qcom,rpm-proc";
92*8d13bc63SEmmanuel Vadot
93*8d13bc63SEmmanuel Vadot        glink-edge {
94*8d13bc63SEmmanuel Vadot            compatible = "qcom,glink-rpm";
95*8d13bc63SEmmanuel Vadot
96*8d13bc63SEmmanuel Vadot            interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
97*8d13bc63SEmmanuel Vadot            qcom,rpm-msg-ram = <&rpm_msg_ram>;
98*8d13bc63SEmmanuel Vadot            mboxes = <&apcs_glb 0>;
99*8d13bc63SEmmanuel Vadot        };
100*8d13bc63SEmmanuel Vadot
101*8d13bc63SEmmanuel Vadot        mpm: interrupt-controller {
102c9ccf3a3SEmmanuel Vadot            compatible = "qcom,mpm";
103*8d13bc63SEmmanuel Vadot            qcom,rpm-msg-ram = <&apss_mpm>;
104c9ccf3a3SEmmanuel Vadot            interrupts = <GIC_SPI 197 IRQ_TYPE_EDGE_RISING>;
105c9ccf3a3SEmmanuel Vadot            mboxes = <&apcs_glb 1>;
106c9ccf3a3SEmmanuel Vadot            interrupt-controller;
107c9ccf3a3SEmmanuel Vadot            #interrupt-cells = <2>;
108c9ccf3a3SEmmanuel Vadot            interrupt-parent = <&intc>;
109c9ccf3a3SEmmanuel Vadot            qcom,mpm-pin-count = <96>;
110c9ccf3a3SEmmanuel Vadot            qcom,mpm-pin-map = <2 275>,
111c9ccf3a3SEmmanuel Vadot                               <5 296>,
112c9ccf3a3SEmmanuel Vadot                               <12 422>,
113c9ccf3a3SEmmanuel Vadot                               <24 79>,
114c9ccf3a3SEmmanuel Vadot                               <86 183>,
115c9ccf3a3SEmmanuel Vadot                               <91 260>;
11684943d6fSEmmanuel Vadot            #power-domain-cells = <0>;
117c9ccf3a3SEmmanuel Vadot        };
118*8d13bc63SEmmanuel Vadot    };
119