162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause 262306a36Sopenharmony_ci%YAML 1.2 362306a36Sopenharmony_ci--- 462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/mailbox/qcom-ipcc.yaml# 562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml# 662306a36Sopenharmony_ci 762306a36Sopenharmony_cititle: Qualcomm Technologies, Inc. Inter-Processor Communication Controller 862306a36Sopenharmony_ci 962306a36Sopenharmony_cimaintainers: 1062306a36Sopenharmony_ci - Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_cidescription: 1362306a36Sopenharmony_ci The Inter-Processor Communication Controller (IPCC) is a centralized hardware 1462306a36Sopenharmony_ci to route interrupts across various subsystems. It involves a three-level 1562306a36Sopenharmony_ci addressing scheme called protocol, client and signal. For example, consider an 1662306a36Sopenharmony_ci entity on the Application Processor Subsystem (APSS) that wants to listen to 1762306a36Sopenharmony_ci Modem's interrupts via Shared Memory Point to Point (SMP2P) interface. In such 1862306a36Sopenharmony_ci a case, the client would be Modem (client-id is 2) and the signal would be 1962306a36Sopenharmony_ci SMP2P (signal-id is 2). The SMP2P itself falls under the Multiprocessor (MPROC) 2062306a36Sopenharmony_ci protocol (protocol-id is 0). Refer include/dt-bindings/mailbox/qcom-ipcc.h 2162306a36Sopenharmony_ci for the list of such IDs. 2262306a36Sopenharmony_ci 2362306a36Sopenharmony_ciproperties: 2462306a36Sopenharmony_ci compatible: 2562306a36Sopenharmony_ci items: 2662306a36Sopenharmony_ci - enum: 2762306a36Sopenharmony_ci - qcom,qdu1000-ipcc 2862306a36Sopenharmony_ci - qcom,sa8775p-ipcc 2962306a36Sopenharmony_ci - qcom,sc7280-ipcc 3062306a36Sopenharmony_ci - qcom,sc8280xp-ipcc 3162306a36Sopenharmony_ci - qcom,sm6350-ipcc 3262306a36Sopenharmony_ci - qcom,sm6375-ipcc 3362306a36Sopenharmony_ci - qcom,sm8250-ipcc 3462306a36Sopenharmony_ci - qcom,sm8350-ipcc 3562306a36Sopenharmony_ci - qcom,sm8450-ipcc 3662306a36Sopenharmony_ci - qcom,sm8550-ipcc 3762306a36Sopenharmony_ci - const: qcom,ipcc 3862306a36Sopenharmony_ci 3962306a36Sopenharmony_ci reg: 4062306a36Sopenharmony_ci maxItems: 1 4162306a36Sopenharmony_ci 4262306a36Sopenharmony_ci interrupts: 4362306a36Sopenharmony_ci maxItems: 1 4462306a36Sopenharmony_ci 4562306a36Sopenharmony_ci interrupt-controller: true 4662306a36Sopenharmony_ci 4762306a36Sopenharmony_ci "#interrupt-cells": 4862306a36Sopenharmony_ci const: 3 4962306a36Sopenharmony_ci description: 5062306a36Sopenharmony_ci The first cell is the client-id, the second cell is the signal-id and the 5162306a36Sopenharmony_ci third cell is the interrupt type. 5262306a36Sopenharmony_ci 5362306a36Sopenharmony_ci "#mbox-cells": 5462306a36Sopenharmony_ci const: 2 5562306a36Sopenharmony_ci description: 5662306a36Sopenharmony_ci The first cell is the client-id, and the second cell is the signal-id. 5762306a36Sopenharmony_ci 5862306a36Sopenharmony_cirequired: 5962306a36Sopenharmony_ci - compatible 6062306a36Sopenharmony_ci - reg 6162306a36Sopenharmony_ci - interrupts 6262306a36Sopenharmony_ci - interrupt-controller 6362306a36Sopenharmony_ci - "#interrupt-cells" 6462306a36Sopenharmony_ci - "#mbox-cells" 6562306a36Sopenharmony_ci 6662306a36Sopenharmony_ciadditionalProperties: false 6762306a36Sopenharmony_ci 6862306a36Sopenharmony_ciexamples: 6962306a36Sopenharmony_ci - | 7062306a36Sopenharmony_ci #include <dt-bindings/interrupt-controller/arm-gic.h> 7162306a36Sopenharmony_ci #include <dt-bindings/mailbox/qcom-ipcc.h> 7262306a36Sopenharmony_ci 7362306a36Sopenharmony_ci mailbox@408000 { 7462306a36Sopenharmony_ci compatible = "qcom,sm8250-ipcc", "qcom,ipcc"; 7562306a36Sopenharmony_ci reg = <0x408000 0x1000>; 7662306a36Sopenharmony_ci interrupts = <GIC_SPI 229 IRQ_TYPE_LEVEL_HIGH>; 7762306a36Sopenharmony_ci interrupt-controller; 7862306a36Sopenharmony_ci #interrupt-cells = <3>; 7962306a36Sopenharmony_ci #mbox-cells = <2>; 8062306a36Sopenharmony_ci }; 81