xref: /linux/Documentation/devicetree/bindings/mailbox/cix,sky1-mbox.yaml (revision 77e67d5daaf155f7d0f99f4e797c4842169ec19e)
1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/mailbox/cix,sky1-mbox.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Cixtech mailbox controller
8
9maintainers:
10  - Guomin Chen <Guomin.Chen@cixtech.com>
11
12description:
13  The Cixtech mailbox controller, used in the Cixtech Sky1 SoC,
14  is used for message transmission between multiple processors
15  within the SoC, such as the AP, PM, audio DSP, SensorHub MCU,
16  and others
17
18  Each Cixtech mailbox controller is unidirectional, so they are
19  typically used in pairs-one for receiving and one for transmitting.
20
21  Each Cixtech mailbox supports 11 channels with different transmission modes
22    channel 0-7 - Fast channel with 32bit transmit register and IRQ support
23    channel 8   - Doorbell mode,using the mailbox as an interrupt-generating
24                   mechanism.
25    channel 9   - Fifo based channel with 32*32bit depth fifo and IRQ support
26    channel 10  - Reg based channel with 32*32bit transmit register and
27                   Doorbell+transmit acknowledgment IRQ support
28
29  In the CIX Sky1 SoC use case, there are 4 pairs of mailbox controllers
30    AP <--> PM - using Doorbell transfer mode
31    AP <--> SE - using REG transfer mode
32    AP <--> DSP - using FIFO transfer mode
33    AP <--> SensorHub - using FIFO transfer mode
34
35properties:
36  compatible:
37    const: cix,sky1-mbox
38
39  reg:
40    maxItems: 1
41
42  interrupts:
43    maxItems: 1
44
45  "#mbox-cells":
46    const: 1
47
48  cix,mbox-dir:
49    $ref: /schemas/types.yaml#/definitions/string
50    description: Direction of the mailbox relative to the AP
51    enum: [tx, rx]
52
53required:
54  - compatible
55  - reg
56  - interrupts
57  - "#mbox-cells"
58  - cix,mbox-dir
59
60additionalProperties: false
61
62examples:
63  - |
64    #include <dt-bindings/interrupt-controller/arm-gic.h>
65
66    soc {
67        #address-cells = <2>;
68        #size-cells = <2>;
69
70        mbox_ap2pm: mailbox@30000000 {
71            compatible = "cix,sky1-mbox";
72            reg = <0 0x30000000 0 0x10000>;
73            interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH 0>;
74            #mbox-cells = <1>;
75            cix,mbox-dir = "tx";
76        };
77    };
78