| # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) |
| %YAML 1.2 |
| --- |
| $id: http://devicetree.org/schemas/interrupt-controller/qcom,mpm.yaml# |
| $schema: http://devicetree.org/meta-schemas/core.yaml# |
| |
| title: Qualcom MPM Interrupt Controller |
| |
| maintainers: |
| - Shawn Guo <shawn.guo@linaro.org> |
| |
| description: |
| Qualcomm Technologies Inc. SoCs based on the RPM architecture have a |
| MSM Power Manager (MPM) that is 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 interrupt controller |
| after GIC becomes operational. |
| |
| allOf: |
| - $ref: /schemas/interrupt-controller.yaml# |
| |
| properties: |
| compatible: |
| items: |
| - const: qcom,mpm |
| |
| reg: |
| maxItems: 1 |
| description: |
| Specifies the base address and size of vMPM registers in RPM MSG RAM. |
| deprecated: true |
| |
| qcom,rpm-msg-ram: |
| $ref: /schemas/types.yaml#/definitions/phandle |
| description: |
| Phandle to the APSS MPM slice of the RPM Message RAM |
| |
| interrupts: |
| maxItems: 1 |
| description: |
| Specify the IRQ used by RPM to wakeup APSS. |
| |
| mboxes: |
| maxItems: 1 |
| description: |
| Specify the mailbox used to notify RPM for writing vMPM registers. |
| |
| interrupt-controller: true |
| |
| '#interrupt-cells': |
| const: 2 |
| description: |
| The first cell is the MPM pin number for the interrupt, and the second |
| is the trigger type. |
| |
| qcom,mpm-pin-count: |
| description: |
| Specify the total MPM pin count that a SoC supports. |
| $ref: /schemas/types.yaml#/definitions/uint32 |
| |
| qcom,mpm-pin-map: |
| description: |
| A set of MPM pin numbers and the corresponding GIC SPIs. |
| $ref: /schemas/types.yaml#/definitions/uint32-matrix |
| items: |
| items: |
| - description: MPM pin number |
| - description: GIC SPI number for the MPM pin |
| |
| '#power-domain-cells': |
| const: 0 |
| |
| required: |
| - compatible |
| - interrupts |
| - mboxes |
| - interrupt-controller |
| - '#interrupt-cells' |
| - qcom,mpm-pin-count |
| - qcom,mpm-pin-map |
| - qcom,rpm-msg-ram |
| |
| additionalProperties: false |
| |
| examples: |
| - | |
| #include <dt-bindings/interrupt-controller/arm-gic.h> |
| |
| remoteproc-rpm { |
| compatible = "qcom,msm8998-rpm-proc", "qcom,rpm-proc"; |
| |
| glink-edge { |
| compatible = "qcom,glink-rpm"; |
| |
| interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>; |
| qcom,rpm-msg-ram = <&rpm_msg_ram>; |
| mboxes = <&apcs_glb 0>; |
| }; |
| |
| mpm: interrupt-controller { |
| compatible = "qcom,mpm"; |
| qcom,rpm-msg-ram = <&apss_mpm>; |
| interrupts = <GIC_SPI 197 IRQ_TYPE_EDGE_RISING>; |
| mboxes = <&apcs_glb 1>; |
| interrupt-controller; |
| #interrupt-cells = <2>; |
| interrupt-parent = <&intc>; |
| qcom,mpm-pin-count = <96>; |
| qcom,mpm-pin-map = <2 275>, |
| <5 296>, |
| <12 422>, |
| <24 79>, |
| <86 183>, |
| <91 260>; |
| #power-domain-cells = <0>; |
| }; |
| }; |