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