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