xref: /linux/Documentation/devicetree/bindings/mailbox/apple,mailbox.yaml (revision 55a42f78ffd386e01a5404419f8c5ded7db70a21)
1# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/mailbox/apple,mailbox.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Apple Mailbox Controller
8
9maintainers:
10  - Hector Martin <marcan@marcan.st>
11  - Sven Peter <sven@svenpeter.dev>
12
13description:
14  The Apple mailbox consists of two FIFOs used to exchange 64+32 bit
15  messages between the main CPU and a co-processor. Multiple instances
16  of this mailbox can be found on Apple SoCs.
17  One of the two FIFOs is used to send data to a co-processor while the other
18  FIFO is used for the other direction.
19  Various clients implement different IPC protocols based on these simple
20  messages and shared memory buffers.
21
22properties:
23  compatible:
24    oneOf:
25      - description:
26          ASC mailboxes are the most common variant found on the M1 used
27          for example for the display controller, the system management
28          controller and the NVMe coprocessor.
29        items:
30          - enum:
31              - apple,t8103-asc-mailbox
32              - apple,t8112-asc-mailbox
33              - apple,t6000-asc-mailbox
34              - apple,t6020-asc-mailbox
35          - const: apple,asc-mailbox-v4
36
37      - description:
38          An older ASC mailbox interface found on T2 and A11 that is also
39          used for the NVMe coprocessor and the system management
40          controller.
41        items:
42          - const: apple,t8015-asc-mailbox
43
44      - description:
45          M3 mailboxes are an older variant with a slightly different MMIO
46          interface still found on the M1. It is used for the Thunderbolt
47          co-processors.
48        items:
49          - enum:
50              - apple,t8103-m3-mailbox
51              - apple,t8112-m3-mailbox
52              - apple,t6000-m3-mailbox
53          - const: apple,m3-mailbox-v2
54
55  reg:
56    maxItems: 1
57
58  interrupts:
59    items:
60      - description: send fifo is empty interrupt
61      - description: send fifo is not empty interrupt
62      - description: receive fifo is empty interrupt
63      - description: receive fifo is not empty interrupt
64
65  interrupt-names:
66    items:
67      - const: send-empty
68      - const: send-not-empty
69      - const: recv-empty
70      - const: recv-not-empty
71
72  "#mbox-cells":
73    const: 0
74
75  power-domains:
76    maxItems: 1
77
78required:
79  - compatible
80  - reg
81  - interrupts
82  - interrupt-names
83  - "#mbox-cells"
84
85additionalProperties: false
86
87examples:
88  - |
89    mailbox@77408000 {
90        compatible = "apple,t8103-asc-mailbox", "apple,asc-mailbox-v4";
91        reg = <0x77408000 0x4000>;
92        interrupts = <1 583 4>, <1 584 4>, <1 585 4>, <1 586 4>;
93        interrupt-names = "send-empty", "send-not-empty",
94                          "recv-empty", "recv-not-empty";
95        #mbox-cells = <0>;
96    };
97