xref: /freebsd-src/sys/contrib/device-tree/Bindings/mailbox/qcom-ipcc.yaml (revision 7d0873ebb83b19ba1e8a89e679470d885efe12e3)
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:
27cb7aa33aSEmmanuel Vadot          - qcom,qdu1000-ipcc
28cb7aa33aSEmmanuel Vadot          - qcom,sa8775p-ipcc
298bab661aSEmmanuel Vadot          - qcom,sc7280-ipcc
308bab661aSEmmanuel Vadot          - qcom,sc8280xp-ipcc
31*7d0873ebSEmmanuel Vadot          - qcom,sdx75-ipcc
32354d7675SEmmanuel Vadot          - qcom,sm6350-ipcc
33b97ee269SEmmanuel Vadot          - qcom,sm6375-ipcc
34c66ec88fSEmmanuel Vadot          - qcom,sm8250-ipcc
352eb4d8dcSEmmanuel Vadot          - qcom,sm8350-ipcc
36d5b0e70fSEmmanuel Vadot          - qcom,sm8450-ipcc
378bab661aSEmmanuel Vadot          - qcom,sm8550-ipcc
3884943d6fSEmmanuel Vadot          - qcom,sm8650-ipcc
398d13bc63SEmmanuel Vadot          - qcom,x1e80100-ipcc
40c66ec88fSEmmanuel Vadot      - const: qcom,ipcc
41c66ec88fSEmmanuel Vadot
42c66ec88fSEmmanuel Vadot  reg:
43c66ec88fSEmmanuel Vadot    maxItems: 1
44c66ec88fSEmmanuel Vadot
45c66ec88fSEmmanuel Vadot  interrupts:
46c66ec88fSEmmanuel Vadot    maxItems: 1
47c66ec88fSEmmanuel Vadot
48c66ec88fSEmmanuel Vadot  interrupt-controller: true
49c66ec88fSEmmanuel Vadot
50c66ec88fSEmmanuel Vadot  "#interrupt-cells":
51c66ec88fSEmmanuel Vadot    const: 3
52c66ec88fSEmmanuel Vadot    description:
53c66ec88fSEmmanuel Vadot      The first cell is the client-id, the second cell is the signal-id and the
54c66ec88fSEmmanuel Vadot      third cell is the interrupt type.
55c66ec88fSEmmanuel Vadot
56c66ec88fSEmmanuel Vadot  "#mbox-cells":
57c66ec88fSEmmanuel Vadot    const: 2
58c66ec88fSEmmanuel Vadot    description:
59c66ec88fSEmmanuel Vadot      The first cell is the client-id, and the second cell is the signal-id.
60c66ec88fSEmmanuel Vadot
61c66ec88fSEmmanuel Vadotrequired:
62c66ec88fSEmmanuel Vadot  - compatible
63c66ec88fSEmmanuel Vadot  - reg
64c66ec88fSEmmanuel Vadot  - interrupts
65c66ec88fSEmmanuel Vadot  - interrupt-controller
66c66ec88fSEmmanuel Vadot  - "#interrupt-cells"
67c66ec88fSEmmanuel Vadot  - "#mbox-cells"
68c66ec88fSEmmanuel Vadot
69c66ec88fSEmmanuel VadotadditionalProperties: false
70c66ec88fSEmmanuel Vadot
71c66ec88fSEmmanuel Vadotexamples:
72c66ec88fSEmmanuel Vadot  - |
73c66ec88fSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
74c66ec88fSEmmanuel Vadot    #include <dt-bindings/mailbox/qcom-ipcc.h>
75c66ec88fSEmmanuel Vadot
76c66ec88fSEmmanuel Vadot    mailbox@408000 {
77c66ec88fSEmmanuel Vadot        compatible = "qcom,sm8250-ipcc", "qcom,ipcc";
78c66ec88fSEmmanuel Vadot        reg = <0x408000 0x1000>;
79c66ec88fSEmmanuel Vadot        interrupts = <GIC_SPI 229 IRQ_TYPE_LEVEL_HIGH>;
80c66ec88fSEmmanuel Vadot        interrupt-controller;
81c66ec88fSEmmanuel Vadot        #interrupt-cells = <3>;
82c66ec88fSEmmanuel Vadot        #mbox-cells = <2>;
83c66ec88fSEmmanuel Vadot    };
84