162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause 262306a36Sopenharmony_ci%YAML 1.2 362306a36Sopenharmony_ci--- 462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/mailbox/apple,mailbox.yaml# 562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml# 662306a36Sopenharmony_ci 762306a36Sopenharmony_cititle: Apple Mailbox Controller 862306a36Sopenharmony_ci 962306a36Sopenharmony_cimaintainers: 1062306a36Sopenharmony_ci - Hector Martin <marcan@marcan.st> 1162306a36Sopenharmony_ci - Sven Peter <sven@svenpeter.dev> 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_cidescription: 1462306a36Sopenharmony_ci The Apple mailbox consists of two FIFOs used to exchange 64+32 bit 1562306a36Sopenharmony_ci messages between the main CPU and a co-processor. Multiple instances 1662306a36Sopenharmony_ci of this mailbox can be found on Apple SoCs. 1762306a36Sopenharmony_ci One of the two FIFOs is used to send data to a co-processor while the other 1862306a36Sopenharmony_ci FIFO is used for the other direction. 1962306a36Sopenharmony_ci Various clients implement different IPC protocols based on these simple 2062306a36Sopenharmony_ci messages and shared memory buffers. 2162306a36Sopenharmony_ci 2262306a36Sopenharmony_ciproperties: 2362306a36Sopenharmony_ci compatible: 2462306a36Sopenharmony_ci oneOf: 2562306a36Sopenharmony_ci - description: 2662306a36Sopenharmony_ci ASC mailboxes are the most common variant found on the M1 used 2762306a36Sopenharmony_ci for example for the display controller, the system management 2862306a36Sopenharmony_ci controller and the NVMe coprocessor. 2962306a36Sopenharmony_ci items: 3062306a36Sopenharmony_ci - enum: 3162306a36Sopenharmony_ci - apple,t8103-asc-mailbox 3262306a36Sopenharmony_ci - apple,t8112-asc-mailbox 3362306a36Sopenharmony_ci - apple,t6000-asc-mailbox 3462306a36Sopenharmony_ci - const: apple,asc-mailbox-v4 3562306a36Sopenharmony_ci 3662306a36Sopenharmony_ci - description: 3762306a36Sopenharmony_ci M3 mailboxes are an older variant with a slightly different MMIO 3862306a36Sopenharmony_ci interface still found on the M1. It is used for the Thunderbolt 3962306a36Sopenharmony_ci co-processors. 4062306a36Sopenharmony_ci items: 4162306a36Sopenharmony_ci - enum: 4262306a36Sopenharmony_ci - apple,t8103-m3-mailbox 4362306a36Sopenharmony_ci - apple,t8112-m3-mailbox 4462306a36Sopenharmony_ci - apple,t6000-m3-mailbox 4562306a36Sopenharmony_ci - const: apple,m3-mailbox-v2 4662306a36Sopenharmony_ci 4762306a36Sopenharmony_ci reg: 4862306a36Sopenharmony_ci maxItems: 1 4962306a36Sopenharmony_ci 5062306a36Sopenharmony_ci interrupts: 5162306a36Sopenharmony_ci items: 5262306a36Sopenharmony_ci - description: send fifo is empty interrupt 5362306a36Sopenharmony_ci - description: send fifo is not empty interrupt 5462306a36Sopenharmony_ci - description: receive fifo is empty interrupt 5562306a36Sopenharmony_ci - description: receive fifo is not empty interrupt 5662306a36Sopenharmony_ci 5762306a36Sopenharmony_ci interrupt-names: 5862306a36Sopenharmony_ci items: 5962306a36Sopenharmony_ci - const: send-empty 6062306a36Sopenharmony_ci - const: send-not-empty 6162306a36Sopenharmony_ci - const: recv-empty 6262306a36Sopenharmony_ci - const: recv-not-empty 6362306a36Sopenharmony_ci 6462306a36Sopenharmony_ci "#mbox-cells": 6562306a36Sopenharmony_ci const: 0 6662306a36Sopenharmony_ci 6762306a36Sopenharmony_ci power-domains: 6862306a36Sopenharmony_ci maxItems: 1 6962306a36Sopenharmony_ci 7062306a36Sopenharmony_cirequired: 7162306a36Sopenharmony_ci - compatible 7262306a36Sopenharmony_ci - reg 7362306a36Sopenharmony_ci - interrupts 7462306a36Sopenharmony_ci - interrupt-names 7562306a36Sopenharmony_ci - "#mbox-cells" 7662306a36Sopenharmony_ci 7762306a36Sopenharmony_ciadditionalProperties: false 7862306a36Sopenharmony_ci 7962306a36Sopenharmony_ciexamples: 8062306a36Sopenharmony_ci - | 8162306a36Sopenharmony_ci mailbox@77408000 { 8262306a36Sopenharmony_ci compatible = "apple,t8103-asc-mailbox", "apple,asc-mailbox-v4"; 8362306a36Sopenharmony_ci reg = <0x77408000 0x4000>; 8462306a36Sopenharmony_ci interrupts = <1 583 4>, <1 584 4>, <1 585 4>, <1 586 4>; 8562306a36Sopenharmony_ci interrupt-names = "send-empty", "send-not-empty", 8662306a36Sopenharmony_ci "recv-empty", "recv-not-empty"; 8762306a36Sopenharmony_ci #mbox-cells = <0>; 8862306a36Sopenharmony_ci }; 89