xref: /freebsd/sys/contrib/device-tree/Bindings/mailbox/fsl,mu.yaml (revision 8cc087a1eee9ec1ca9f7ac1e63ad51bdb5a682eb)
1c66ec88fSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2c66ec88fSEmmanuel Vadot%YAML 1.2
3c66ec88fSEmmanuel Vadot---
4c66ec88fSEmmanuel Vadot$id: http://devicetree.org/schemas/mailbox/fsl,mu.yaml#
5c66ec88fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6c66ec88fSEmmanuel Vadot
7c66ec88fSEmmanuel Vadottitle: NXP i.MX Messaging Unit (MU)
8c66ec88fSEmmanuel Vadot
9c66ec88fSEmmanuel Vadotmaintainers:
10c66ec88fSEmmanuel Vadot  - Dong Aisheng <aisheng.dong@nxp.com>
11c66ec88fSEmmanuel Vadot
12c66ec88fSEmmanuel Vadotdescription: |
13c66ec88fSEmmanuel Vadot  The Messaging Unit module enables two processors within the SoC to
14c66ec88fSEmmanuel Vadot  communicate and coordinate by passing messages (e.g. data, status
15c66ec88fSEmmanuel Vadot  and control) through the MU interface. The MU also provides the ability
16c66ec88fSEmmanuel Vadot  for one processor to signal the other processor using interrupts.
17c66ec88fSEmmanuel Vadot
18c66ec88fSEmmanuel Vadot  Because the MU manages the messaging between processors, the MU uses
19c66ec88fSEmmanuel Vadot  different clocks (from each side of the different peripheral buses).
20c66ec88fSEmmanuel Vadot  Therefore, the MU must synchronize the accesses from one side to the
21c66ec88fSEmmanuel Vadot  other. The MU accomplishes synchronization using two sets of matching
22c66ec88fSEmmanuel Vadot  registers (Processor A-facing, Processor B-facing).
23c66ec88fSEmmanuel Vadot
24c66ec88fSEmmanuel Vadotproperties:
25c66ec88fSEmmanuel Vadot  compatible:
26c66ec88fSEmmanuel Vadot    oneOf:
27c66ec88fSEmmanuel Vadot      - const: fsl,imx6sx-mu
28c66ec88fSEmmanuel Vadot      - const: fsl,imx7ulp-mu
295956d97fSEmmanuel Vadot      - const: fsl,imx8ulp-mu
30c66ec88fSEmmanuel Vadot      - const: fsl,imx8-mu-scu
31*8cc087a1SEmmanuel Vadot      - const: fsl,imx8ulp-mu-s4
32c66ec88fSEmmanuel Vadot      - items:
33c66ec88fSEmmanuel Vadot          - enum:
34c66ec88fSEmmanuel Vadot              - fsl,imx7s-mu
35c66ec88fSEmmanuel Vadot              - fsl,imx8mq-mu
36c66ec88fSEmmanuel Vadot              - fsl,imx8mm-mu
37c66ec88fSEmmanuel Vadot              - fsl,imx8mn-mu
38c66ec88fSEmmanuel Vadot              - fsl,imx8mp-mu
392eb4d8dcSEmmanuel Vadot              - fsl,imx8qm-mu
40c66ec88fSEmmanuel Vadot              - fsl,imx8qxp-mu
41c66ec88fSEmmanuel Vadot          - const: fsl,imx6sx-mu
42c66ec88fSEmmanuel Vadot      - description: To communicate with i.MX8 SCU with fast IPC
43c66ec88fSEmmanuel Vadot        items:
44c66ec88fSEmmanuel Vadot          - const: fsl,imx8-mu-scu
452eb4d8dcSEmmanuel Vadot          - enum:
462eb4d8dcSEmmanuel Vadot              - fsl,imx8qm-mu
472eb4d8dcSEmmanuel Vadot              - fsl,imx8qxp-mu
486be33864SEmmanuel Vadot          - const: fsl,imx6sx-mu
49c66ec88fSEmmanuel Vadot
50c66ec88fSEmmanuel Vadot  reg:
51c66ec88fSEmmanuel Vadot    maxItems: 1
52c66ec88fSEmmanuel Vadot
53c66ec88fSEmmanuel Vadot  interrupts:
54c66ec88fSEmmanuel Vadot    maxItems: 1
55c66ec88fSEmmanuel Vadot
56c66ec88fSEmmanuel Vadot  "#mbox-cells":
57c66ec88fSEmmanuel Vadot    description: |
58c66ec88fSEmmanuel Vadot      <&phandle type channel>
59c66ec88fSEmmanuel Vadot      phandle   : Label name of controller
60c66ec88fSEmmanuel Vadot      type      : Channel type
61c66ec88fSEmmanuel Vadot      channel   : Channel number
62c66ec88fSEmmanuel Vadot
63c66ec88fSEmmanuel Vadot      This MU support 4 type of unidirectional channels, each type
64c66ec88fSEmmanuel Vadot      has 4 channels. A total of 16 channels. Following types are
65c66ec88fSEmmanuel Vadot      supported:
66c66ec88fSEmmanuel Vadot      0 - TX channel with 32bit transmit register and IRQ transmit
67c66ec88fSEmmanuel Vadot          acknowledgment support.
68c66ec88fSEmmanuel Vadot      1 - RX channel with 32bit receive register and IRQ support
69c66ec88fSEmmanuel Vadot      2 - TX doorbell channel. Without own register and no ACK support.
70c66ec88fSEmmanuel Vadot      3 - RX doorbell channel.
71c66ec88fSEmmanuel Vadot    const: 2
72c66ec88fSEmmanuel Vadot
73c66ec88fSEmmanuel Vadot  clocks:
74c66ec88fSEmmanuel Vadot    maxItems: 1
75c66ec88fSEmmanuel Vadot
76c66ec88fSEmmanuel Vadot  fsl,mu-side-b:
77c66ec88fSEmmanuel Vadot    description: boolean, if present, means it is for side B MU.
78c66ec88fSEmmanuel Vadot    type: boolean
79c66ec88fSEmmanuel Vadot
806be33864SEmmanuel Vadot  power-domains:
816be33864SEmmanuel Vadot    maxItems: 1
826be33864SEmmanuel Vadot
83c66ec88fSEmmanuel Vadotrequired:
84c66ec88fSEmmanuel Vadot  - compatible
85c66ec88fSEmmanuel Vadot  - reg
86c66ec88fSEmmanuel Vadot  - interrupts
87c66ec88fSEmmanuel Vadot  - "#mbox-cells"
88c66ec88fSEmmanuel Vadot
89c66ec88fSEmmanuel VadotadditionalProperties: false
90c66ec88fSEmmanuel Vadot
91c66ec88fSEmmanuel Vadotexamples:
92c66ec88fSEmmanuel Vadot  - |
93c66ec88fSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
94c66ec88fSEmmanuel Vadot
95c66ec88fSEmmanuel Vadot    mailbox@5d1b0000 {
96c66ec88fSEmmanuel Vadot        compatible = "fsl,imx8qxp-mu", "fsl,imx6sx-mu";
97c66ec88fSEmmanuel Vadot        reg = <0x5d1b0000 0x10000>;
98c66ec88fSEmmanuel Vadot        interrupts = <GIC_SPI 176 IRQ_TYPE_LEVEL_HIGH>;
99c66ec88fSEmmanuel Vadot        #mbox-cells = <2>;
100c66ec88fSEmmanuel Vadot    };
101