0001 # SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause
0002 %YAML 1.2
0003 ---
0004 $id: http://devicetree.org/schemas/mailbox/apple,mailbox.yaml#
0005 $schema: http://devicetree.org/meta-schemas/core.yaml#
0006
0007 title: Apple Mailbox Controller
0008
0009 maintainers:
0010 - Hector Martin <marcan@marcan.st>
0011 - Sven Peter <sven@svenpeter.dev>
0012
0013 description:
0014 The Apple mailbox consists of two FIFOs used to exchange 64+32 bit
0015 messages between the main CPU and a co-processor. Multiple instances
0016 of this mailbox can be found on Apple SoCs.
0017 One of the two FIFOs is used to send data to a co-processor while the other
0018 FIFO is used for the other direction.
0019 Various clients implement different IPC protocols based on these simple
0020 messages and shared memory buffers.
0021
0022 properties:
0023 compatible:
0024 oneOf:
0025 - description:
0026 ASC mailboxes are the most common variant found on the M1 used
0027 for example for the display controller, the system management
0028 controller and the NVMe coprocessor.
0029 items:
0030 - enum:
0031 - apple,t8103-asc-mailbox
0032 - apple,t6000-asc-mailbox
0033 - const: apple,asc-mailbox-v4
0034
0035 - description:
0036 M3 mailboxes are an older variant with a slightly different MMIO
0037 interface still found on the M1. It is used for the Thunderbolt
0038 co-processors.
0039 items:
0040 - enum:
0041 - apple,t8103-m3-mailbox
0042 - apple,t6000-m3-mailbox
0043 - const: apple,m3-mailbox-v2
0044
0045 reg:
0046 maxItems: 1
0047
0048 interrupts:
0049 items:
0050 - description: send fifo is empty interrupt
0051 - description: send fifo is not empty interrupt
0052 - description: receive fifo is empty interrupt
0053 - description: receive fifo is not empty interrupt
0054
0055 interrupt-names:
0056 items:
0057 - const: send-empty
0058 - const: send-not-empty
0059 - const: recv-empty
0060 - const: recv-not-empty
0061
0062 "#mbox-cells":
0063 const: 0
0064
0065 power-domains:
0066 maxItems: 1
0067
0068 required:
0069 - compatible
0070 - reg
0071 - interrupts
0072 - interrupt-names
0073 - "#mbox-cells"
0074
0075 additionalProperties: false
0076
0077 examples:
0078 - |
0079 mailbox@77408000 {
0080 compatible = "apple,t8103-asc-mailbox", "apple,asc-mailbox-v4";
0081 reg = <0x77408000 0x4000>;
0082 interrupts = <1 583 4>, <1 584 4>, <1 585 4>, <1 586 4>;
0083 interrupt-names = "send-empty", "send-not-empty",
0084 "recv-empty", "recv-not-empty";
0085 #mbox-cells = <0>;
0086 };