GNU Linux-libre 6.1.90-gnu
[releases.git] / Documentation / devicetree / bindings / mailbox / apple,mailbox.yaml
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
7 title: Apple Mailbox Controller
8
9 maintainers:
10   - Hector Martin <marcan@marcan.st>
11   - Sven Peter <sven@svenpeter.dev>
12
13 description:
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
22 properties:
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,t6000-asc-mailbox
33           - const: apple,asc-mailbox-v4
34
35       - description:
36           M3 mailboxes are an older variant with a slightly different MMIO
37           interface still found on the M1. It is used for the Thunderbolt
38           co-processors.
39         items:
40           - enum:
41               - apple,t8103-m3-mailbox
42               - apple,t6000-m3-mailbox
43           - const: apple,m3-mailbox-v2
44
45   reg:
46     maxItems: 1
47
48   interrupts:
49     items:
50       - description: send fifo is empty interrupt
51       - description: send fifo is not empty interrupt
52       - description: receive fifo is empty interrupt
53       - description: receive fifo is not empty interrupt
54
55   interrupt-names:
56     items:
57       - const: send-empty
58       - const: send-not-empty
59       - const: recv-empty
60       - const: recv-not-empty
61
62   "#mbox-cells":
63     const: 0
64
65   power-domains:
66     maxItems: 1
67
68 required:
69   - compatible
70   - reg
71   - interrupts
72   - interrupt-names
73   - "#mbox-cells"
74
75 additionalProperties: false
76
77 examples:
78   - |
79         mailbox@77408000 {
80                 compatible = "apple,t8103-asc-mailbox", "apple,asc-mailbox-v4";
81                 reg = <0x77408000 0x4000>;
82                 interrupts = <1 583 4>, <1 584 4>, <1 585 4>, <1 586 4>;
83                 interrupt-names = "send-empty", "send-not-empty",
84                  "recv-empty", "recv-not-empty";
85                 #mbox-cells = <0>;
86         };