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