Back to home page

OSCL-LXR

 
 

    


0001 # SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause
0002 %YAML 1.2
0003 ---
0004 $id: http://devicetree.org/schemas/mailbox/apple,mailbox.yaml#
0005 $schema: http://devicetree.org/meta-schemas/core.yaml#
0006 
0007 title: Apple Mailbox Controller
0008 
0009 maintainers:
0010   - Hector Martin <marcan@marcan.st>
0011   - Sven Peter <sven@svenpeter.dev>
0012 
0013 description:
0014   The Apple mailbox consists of two FIFOs used to exchange 64+32 bit
0015   messages between the main CPU and a co-processor. Multiple instances
0016   of this mailbox can be found on Apple SoCs.
0017   One of the two FIFOs is used to send data to a co-processor while the other
0018   FIFO is used for the other direction.
0019   Various clients implement different IPC protocols based on these simple
0020   messages and shared memory buffers.
0021 
0022 properties:
0023   compatible:
0024     oneOf:
0025       - description:
0026           ASC mailboxes are the most common variant found on the M1 used
0027           for example for the display controller, the system management
0028           controller and the NVMe coprocessor.
0029         items:
0030           - enum:
0031               - apple,t8103-asc-mailbox
0032               - apple,t6000-asc-mailbox
0033           - const: apple,asc-mailbox-v4
0034 
0035       - description:
0036           M3 mailboxes are an older variant with a slightly different MMIO
0037           interface still found on the M1. It is used for the Thunderbolt
0038           co-processors.
0039         items:
0040           - enum:
0041               - apple,t8103-m3-mailbox
0042               - apple,t6000-m3-mailbox
0043           - const: apple,m3-mailbox-v2
0044 
0045   reg:
0046     maxItems: 1
0047 
0048   interrupts:
0049     items:
0050       - description: send fifo is empty interrupt
0051       - description: send fifo is not empty interrupt
0052       - description: receive fifo is empty interrupt
0053       - description: receive fifo is not empty interrupt
0054 
0055   interrupt-names:
0056     items:
0057       - const: send-empty
0058       - const: send-not-empty
0059       - const: recv-empty
0060       - const: recv-not-empty
0061 
0062   "#mbox-cells":
0063     const: 0
0064 
0065   power-domains:
0066     maxItems: 1
0067 
0068 required:
0069   - compatible
0070   - reg
0071   - interrupts
0072   - interrupt-names
0073   - "#mbox-cells"
0074 
0075 additionalProperties: false
0076 
0077 examples:
0078   - |
0079         mailbox@77408000 {
0080                 compatible = "apple,t8103-asc-mailbox", "apple,asc-mailbox-v4";
0081                 reg = <0x77408000 0x4000>;
0082                 interrupts = <1 583 4>, <1 584 4>, <1 585 4>, <1 586 4>;
0083                 interrupt-names = "send-empty", "send-not-empty",
0084                  "recv-empty", "recv-not-empty";
0085                 #mbox-cells = <0>;
0086         };