xref: /freebsd-src/sys/contrib/device-tree/Bindings/mailbox/qcom-ipcc.yaml (revision b2d2a78ad80ec68d4a17f5aef97d21686cb1e29b)
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