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