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