Back to home page

OSCL-LXR

 
 

    


0001 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
0002 %YAML 1.2
0003 ---
0004 $id: http://devicetree.org/schemas/mailbox/fsl,mu.yaml#
0005 $schema: http://devicetree.org/meta-schemas/core.yaml#
0006 
0007 title: NXP i.MX Messaging Unit (MU)
0008 
0009 maintainers:
0010   - Dong Aisheng <aisheng.dong@nxp.com>
0011 
0012 description: |
0013   The Messaging Unit module enables two processors within the SoC to
0014   communicate and coordinate by passing messages (e.g. data, status
0015   and control) through the MU interface. The MU also provides the ability
0016   for one processor to signal the other processor using interrupts.
0017 
0018   Because the MU manages the messaging between processors, the MU uses
0019   different clocks (from each side of the different peripheral buses).
0020   Therefore, the MU must synchronize the accesses from one side to the
0021   other. The MU accomplishes synchronization using two sets of matching
0022   registers (Processor A-facing, Processor B-facing).
0023 
0024 properties:
0025   compatible:
0026     oneOf:
0027       - const: fsl,imx6sx-mu
0028       - const: fsl,imx7ulp-mu
0029       - const: fsl,imx8ulp-mu
0030       - const: fsl,imx8-mu-scu
0031       - const: fsl,imx8-mu-seco
0032       - const: fsl,imx93-mu-s4
0033       - const: fsl,imx8ulp-mu-s4
0034       - items:
0035           - const: fsl,imx93-mu
0036           - const: fsl,imx8ulp-mu
0037       - items:
0038           - enum:
0039               - fsl,imx7s-mu
0040               - fsl,imx8mq-mu
0041               - fsl,imx8mm-mu
0042               - fsl,imx8mn-mu
0043               - fsl,imx8mp-mu
0044               - fsl,imx8qm-mu
0045               - fsl,imx8qxp-mu
0046           - const: fsl,imx6sx-mu
0047       - description: To communicate with i.MX8 SCU with fast IPC
0048         items:
0049           - const: fsl,imx8-mu-scu
0050           - enum:
0051               - fsl,imx8qm-mu
0052               - fsl,imx8qxp-mu
0053           - const: fsl,imx6sx-mu
0054 
0055   reg:
0056     maxItems: 1
0057 
0058   interrupts:
0059     minItems: 1
0060     maxItems: 2
0061 
0062   interrupt-names:
0063     minItems: 1
0064     items:
0065       - const: tx
0066       - const: rx
0067 
0068   "#mbox-cells":
0069     description: |
0070       <&phandle type channel>
0071       phandle   : Label name of controller
0072       type      : Channel type
0073       channel   : Channel number
0074 
0075       This MU support 5 type of unidirectional channels, each type
0076       has 4 channels except RST channel which only has 1 channel.
0077       A total of 17 channels.  Following types are
0078       supported:
0079       0 - TX channel with 32bit transmit register and IRQ transmit
0080           acknowledgment support.
0081       1 - RX channel with 32bit receive register and IRQ support
0082       2 - TX doorbell channel. Without own register and no ACK support.
0083       3 - RX doorbell channel.
0084       4 - RST channel
0085     const: 2
0086 
0087   clocks:
0088     maxItems: 1
0089 
0090   fsl,mu-side-b:
0091     description: boolean, if present, means it is for side B MU.
0092     type: boolean
0093 
0094   power-domains:
0095     maxItems: 1
0096 
0097 required:
0098   - compatible
0099   - reg
0100   - interrupts
0101   - "#mbox-cells"
0102 
0103 allOf:
0104   - if:
0105       properties:
0106         compatible:
0107           enum:
0108             - fsl,imx93-mu-s4
0109     then:
0110       properties:
0111         interrupt-names:
0112           minItems: 2
0113         interrupts:
0114           minItems: 2
0115 
0116     else:
0117       properties:
0118         interrupts:
0119           maxItems: 1
0120       not:
0121         required:
0122           - interrupt-names
0123 
0124 additionalProperties: false
0125 
0126 examples:
0127   - |
0128     #include <dt-bindings/interrupt-controller/arm-gic.h>
0129 
0130     mailbox@5d1b0000 {
0131         compatible = "fsl,imx8qxp-mu", "fsl,imx6sx-mu";
0132         reg = <0x5d1b0000 0x10000>;
0133         interrupts = <GIC_SPI 176 IRQ_TYPE_LEVEL_HIGH>;
0134         #mbox-cells = <2>;
0135     };