xref: /linux/Documentation/devicetree/bindings/mailbox/apple,mailbox.yaml (revision 0526b56cbc3c489642bd6a5fe4b718dea7ef0ee8)
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          - const: apple,asc-mailbox-v4
35
36      - description:
37          M3 mailboxes are an older variant with a slightly different MMIO
38          interface still found on the M1. It is used for the Thunderbolt
39          co-processors.
40        items:
41          - enum:
42              - apple,t8103-m3-mailbox
43              - apple,t8112-m3-mailbox
44              - apple,t6000-m3-mailbox
45          - const: apple,m3-mailbox-v2
46
47  reg:
48    maxItems: 1
49
50  interrupts:
51    items:
52      - description: send fifo is empty interrupt
53      - description: send fifo is not empty interrupt
54      - description: receive fifo is empty interrupt
55      - description: receive fifo is not empty interrupt
56
57  interrupt-names:
58    items:
59      - const: send-empty
60      - const: send-not-empty
61      - const: recv-empty
62      - const: recv-not-empty
63
64  "#mbox-cells":
65    const: 0
66
67  power-domains:
68    maxItems: 1
69
70required:
71  - compatible
72  - reg
73  - interrupts
74  - interrupt-names
75  - "#mbox-cells"
76
77additionalProperties: false
78
79examples:
80  - |
81        mailbox@77408000 {
82                compatible = "apple,t8103-asc-mailbox", "apple,asc-mailbox-v4";
83                reg = <0x77408000 0x4000>;
84                interrupts = <1 583 4>, <1 584 4>, <1 585 4>, <1 586 4>;
85                interrupt-names = "send-empty", "send-not-empty",
86                 "recv-empty", "recv-not-empty";
87                #mbox-cells = <0>;
88        };
89