1c66ec88fSEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause 2c66ec88fSEmmanuel Vadot%YAML 1.2 3c66ec88fSEmmanuel Vadot--- 4c66ec88fSEmmanuel Vadot$id: http://devicetree.org/schemas/mailbox/qcom-ipcc.yaml# 5c66ec88fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6c66ec88fSEmmanuel Vadot 7c66ec88fSEmmanuel Vadottitle: Qualcomm Technologies, Inc. Inter-Processor Communication Controller 8c66ec88fSEmmanuel Vadot 9c66ec88fSEmmanuel Vadotmaintainers: 10c66ec88fSEmmanuel Vadot - Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> 11c66ec88fSEmmanuel Vadot 12c66ec88fSEmmanuel Vadotdescription: 13c66ec88fSEmmanuel Vadot The Inter-Processor Communication Controller (IPCC) is a centralized hardware 14c66ec88fSEmmanuel Vadot to route interrupts across various subsystems. It involves a three-level 15c66ec88fSEmmanuel Vadot addressing scheme called protocol, client and signal. For example, consider an 16c66ec88fSEmmanuel Vadot entity on the Application Processor Subsystem (APSS) that wants to listen to 17c66ec88fSEmmanuel Vadot Modem's interrupts via Shared Memory Point to Point (SMP2P) interface. In such 18c66ec88fSEmmanuel Vadot a case, the client would be Modem (client-id is 2) and the signal would be 19c66ec88fSEmmanuel Vadot SMP2P (signal-id is 2). The SMP2P itself falls under the Multiprocessor (MPROC) 20c66ec88fSEmmanuel Vadot protocol (protocol-id is 0). Refer include/dt-bindings/mailbox/qcom-ipcc.h 21c66ec88fSEmmanuel Vadot for the list of such IDs. 22c66ec88fSEmmanuel Vadot 23c66ec88fSEmmanuel Vadotproperties: 24c66ec88fSEmmanuel Vadot compatible: 25c66ec88fSEmmanuel Vadot items: 26c66ec88fSEmmanuel Vadot - enum: 27*b2d2a78aSEmmanuel Vadot - qcom,qcs8300-ipcc 28cb7aa33aSEmmanuel Vadot - qcom,qdu1000-ipcc 29*b2d2a78aSEmmanuel Vadot - qcom,sa8255p-ipcc 30cb7aa33aSEmmanuel Vadot - qcom,sa8775p-ipcc 318bab661aSEmmanuel Vadot - qcom,sc7280-ipcc 328bab661aSEmmanuel Vadot - qcom,sc8280xp-ipcc 337d0873ebSEmmanuel Vadot - qcom,sdx75-ipcc 34354d7675SEmmanuel Vadot - qcom,sm6350-ipcc 35b97ee269SEmmanuel Vadot - qcom,sm6375-ipcc 36c66ec88fSEmmanuel Vadot - qcom,sm8250-ipcc 372eb4d8dcSEmmanuel Vadot - qcom,sm8350-ipcc 38d5b0e70fSEmmanuel Vadot - qcom,sm8450-ipcc 398bab661aSEmmanuel Vadot - qcom,sm8550-ipcc 4084943d6fSEmmanuel Vadot - qcom,sm8650-ipcc 418d13bc63SEmmanuel Vadot - qcom,x1e80100-ipcc 42c66ec88fSEmmanuel Vadot - const: qcom,ipcc 43c66ec88fSEmmanuel Vadot 44c66ec88fSEmmanuel Vadot reg: 45c66ec88fSEmmanuel Vadot maxItems: 1 46c66ec88fSEmmanuel Vadot 47c66ec88fSEmmanuel Vadot interrupts: 48c66ec88fSEmmanuel Vadot maxItems: 1 49c66ec88fSEmmanuel Vadot 50c66ec88fSEmmanuel Vadot interrupt-controller: true 51c66ec88fSEmmanuel Vadot 52c66ec88fSEmmanuel Vadot "#interrupt-cells": 53c66ec88fSEmmanuel Vadot const: 3 54c66ec88fSEmmanuel Vadot description: 55c66ec88fSEmmanuel Vadot The first cell is the client-id, the second cell is the signal-id and the 56c66ec88fSEmmanuel Vadot third cell is the interrupt type. 57c66ec88fSEmmanuel Vadot 58c66ec88fSEmmanuel Vadot "#mbox-cells": 59c66ec88fSEmmanuel Vadot const: 2 60c66ec88fSEmmanuel Vadot description: 61c66ec88fSEmmanuel Vadot The first cell is the client-id, and the second cell is the signal-id. 62c66ec88fSEmmanuel Vadot 63c66ec88fSEmmanuel Vadotrequired: 64c66ec88fSEmmanuel Vadot - compatible 65c66ec88fSEmmanuel Vadot - reg 66c66ec88fSEmmanuel Vadot - interrupts 67c66ec88fSEmmanuel Vadot - interrupt-controller 68c66ec88fSEmmanuel Vadot - "#interrupt-cells" 69c66ec88fSEmmanuel Vadot - "#mbox-cells" 70c66ec88fSEmmanuel Vadot 71c66ec88fSEmmanuel VadotadditionalProperties: false 72c66ec88fSEmmanuel Vadot 73c66ec88fSEmmanuel Vadotexamples: 74c66ec88fSEmmanuel Vadot - | 75c66ec88fSEmmanuel Vadot #include <dt-bindings/interrupt-controller/arm-gic.h> 76c66ec88fSEmmanuel Vadot #include <dt-bindings/mailbox/qcom-ipcc.h> 77c66ec88fSEmmanuel Vadot 78c66ec88fSEmmanuel Vadot mailbox@408000 { 79c66ec88fSEmmanuel Vadot compatible = "qcom,sm8250-ipcc", "qcom,ipcc"; 80c66ec88fSEmmanuel Vadot reg = <0x408000 0x1000>; 81c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 229 IRQ_TYPE_LEVEL_HIGH>; 82c66ec88fSEmmanuel Vadot interrupt-controller; 83c66ec88fSEmmanuel Vadot #interrupt-cells = <3>; 84c66ec88fSEmmanuel Vadot #mbox-cells = <2>; 85c66ec88fSEmmanuel Vadot }; 86