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