18cc087a1SEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause 28cc087a1SEmmanuel Vadot%YAML 1.2 38cc087a1SEmmanuel Vadot--- 48cc087a1SEmmanuel Vadot$id: http://devicetree.org/schemas/mailbox/apple,mailbox.yaml# 58cc087a1SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 68cc087a1SEmmanuel Vadot 78cc087a1SEmmanuel Vadottitle: Apple Mailbox Controller 88cc087a1SEmmanuel Vadot 98cc087a1SEmmanuel Vadotmaintainers: 108cc087a1SEmmanuel Vadot - Hector Martin <marcan@marcan.st> 118cc087a1SEmmanuel Vadot - Sven Peter <sven@svenpeter.dev> 128cc087a1SEmmanuel Vadot 138cc087a1SEmmanuel Vadotdescription: 148cc087a1SEmmanuel Vadot The Apple mailbox consists of two FIFOs used to exchange 64+32 bit 158cc087a1SEmmanuel Vadot messages between the main CPU and a co-processor. Multiple instances 168cc087a1SEmmanuel Vadot of this mailbox can be found on Apple SoCs. 178cc087a1SEmmanuel Vadot One of the two FIFOs is used to send data to a co-processor while the other 188cc087a1SEmmanuel Vadot FIFO is used for the other direction. 198cc087a1SEmmanuel Vadot Various clients implement different IPC protocols based on these simple 208cc087a1SEmmanuel Vadot messages and shared memory buffers. 218cc087a1SEmmanuel Vadot 228cc087a1SEmmanuel Vadotproperties: 238cc087a1SEmmanuel Vadot compatible: 248cc087a1SEmmanuel Vadot oneOf: 258cc087a1SEmmanuel Vadot - description: 268cc087a1SEmmanuel Vadot ASC mailboxes are the most common variant found on the M1 used 278cc087a1SEmmanuel Vadot for example for the display controller, the system management 288cc087a1SEmmanuel Vadot controller and the NVMe coprocessor. 298cc087a1SEmmanuel Vadot items: 30e67e8565SEmmanuel Vadot - enum: 31e67e8565SEmmanuel Vadot - apple,t8103-asc-mailbox 32*fac71e4eSEmmanuel Vadot - apple,t8112-asc-mailbox 33e67e8565SEmmanuel Vadot - apple,t6000-asc-mailbox 34e67e8565SEmmanuel Vadot - const: apple,asc-mailbox-v4 358cc087a1SEmmanuel Vadot 368cc087a1SEmmanuel Vadot - description: 378cc087a1SEmmanuel Vadot M3 mailboxes are an older variant with a slightly different MMIO 388cc087a1SEmmanuel Vadot interface still found on the M1. It is used for the Thunderbolt 398cc087a1SEmmanuel Vadot co-processors. 408cc087a1SEmmanuel Vadot items: 41e67e8565SEmmanuel Vadot - enum: 42e67e8565SEmmanuel Vadot - apple,t8103-m3-mailbox 43*fac71e4eSEmmanuel Vadot - apple,t8112-m3-mailbox 44e67e8565SEmmanuel Vadot - apple,t6000-m3-mailbox 45e67e8565SEmmanuel Vadot - const: apple,m3-mailbox-v2 468cc087a1SEmmanuel Vadot 478cc087a1SEmmanuel Vadot reg: 488cc087a1SEmmanuel Vadot maxItems: 1 498cc087a1SEmmanuel Vadot 508cc087a1SEmmanuel Vadot interrupts: 518cc087a1SEmmanuel Vadot items: 528cc087a1SEmmanuel Vadot - description: send fifo is empty interrupt 538cc087a1SEmmanuel Vadot - description: send fifo is not empty interrupt 548cc087a1SEmmanuel Vadot - description: receive fifo is empty interrupt 558cc087a1SEmmanuel Vadot - description: receive fifo is not empty interrupt 568cc087a1SEmmanuel Vadot 578cc087a1SEmmanuel Vadot interrupt-names: 588cc087a1SEmmanuel Vadot items: 598cc087a1SEmmanuel Vadot - const: send-empty 608cc087a1SEmmanuel Vadot - const: send-not-empty 618cc087a1SEmmanuel Vadot - const: recv-empty 628cc087a1SEmmanuel Vadot - const: recv-not-empty 638cc087a1SEmmanuel Vadot 648cc087a1SEmmanuel Vadot "#mbox-cells": 658cc087a1SEmmanuel Vadot const: 0 668cc087a1SEmmanuel Vadot 67e67e8565SEmmanuel Vadot power-domains: 68e67e8565SEmmanuel Vadot maxItems: 1 69e67e8565SEmmanuel Vadot 708cc087a1SEmmanuel Vadotrequired: 718cc087a1SEmmanuel Vadot - compatible 728cc087a1SEmmanuel Vadot - reg 738cc087a1SEmmanuel Vadot - interrupts 748cc087a1SEmmanuel Vadot - interrupt-names 758cc087a1SEmmanuel Vadot - "#mbox-cells" 768cc087a1SEmmanuel Vadot 778cc087a1SEmmanuel VadotadditionalProperties: false 788cc087a1SEmmanuel Vadot 798cc087a1SEmmanuel Vadotexamples: 808cc087a1SEmmanuel Vadot - | 818cc087a1SEmmanuel Vadot mailbox@77408000 { 82e67e8565SEmmanuel Vadot compatible = "apple,t8103-asc-mailbox", "apple,asc-mailbox-v4"; 838cc087a1SEmmanuel Vadot reg = <0x77408000 0x4000>; 848cc087a1SEmmanuel Vadot interrupts = <1 583 4>, <1 584 4>, <1 585 4>, <1 586 4>; 858cc087a1SEmmanuel Vadot interrupt-names = "send-empty", "send-not-empty", 868cc087a1SEmmanuel Vadot "recv-empty", "recv-not-empty"; 878cc087a1SEmmanuel Vadot #mbox-cells = <0>; 888cc087a1SEmmanuel Vadot }; 89