xref: /freebsd/sys/contrib/device-tree/Bindings/mailbox/apple,mailbox.yaml (revision fac71e4e09885bb2afa3d984a0c239a52e1a7418)
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