1*7c025238SFrank Li# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*7c025238SFrank Li%YAML 1.2 3*7c025238SFrank Li--- 4*7c025238SFrank Li$id: http://devicetree.org/schemas/interrupt-controller/fsl,mu-msi.yaml# 5*7c025238SFrank Li$schema: http://devicetree.org/meta-schemas/core.yaml# 6*7c025238SFrank Li 7*7c025238SFrank Lititle: Freescale/NXP i.MX Messaging Unit (MU) work as msi controller 8*7c025238SFrank Li 9*7c025238SFrank Limaintainers: 10*7c025238SFrank Li - Frank Li <Frank.Li@nxp.com> 11*7c025238SFrank Li 12*7c025238SFrank Lidescription: | 13*7c025238SFrank Li The Messaging Unit module enables two processors within the SoC to 14*7c025238SFrank Li communicate and coordinate by passing messages (e.g. data, status 15*7c025238SFrank Li and control) through the MU interface. The MU also provides the ability 16*7c025238SFrank Li for one processor (A side) to signal the other processor (B side) using 17*7c025238SFrank Li interrupts. 18*7c025238SFrank Li 19*7c025238SFrank Li Because the MU manages the messaging between processors, the MU uses 20*7c025238SFrank Li different clocks (from each side of the different peripheral buses). 21*7c025238SFrank Li Therefore, the MU must synchronize the accesses from one side to the 22*7c025238SFrank Li other. The MU accomplishes synchronization using two sets of matching 23*7c025238SFrank Li registers (Processor A-side, Processor B-side). 24*7c025238SFrank Li 25*7c025238SFrank Li MU can work as msi interrupt controller to do doorbell 26*7c025238SFrank Li 27*7c025238SFrank LiallOf: 28*7c025238SFrank Li - $ref: /schemas/interrupt-controller/msi-controller.yaml# 29*7c025238SFrank Li 30*7c025238SFrank Liproperties: 31*7c025238SFrank Li compatible: 32*7c025238SFrank Li enum: 33*7c025238SFrank Li - fsl,imx6sx-mu-msi 34*7c025238SFrank Li - fsl,imx7ulp-mu-msi 35*7c025238SFrank Li - fsl,imx8ulp-mu-msi 36*7c025238SFrank Li - fsl,imx8ulp-mu-msi-s4 37*7c025238SFrank Li 38*7c025238SFrank Li reg: 39*7c025238SFrank Li items: 40*7c025238SFrank Li - description: a side register base address 41*7c025238SFrank Li - description: b side register base address 42*7c025238SFrank Li 43*7c025238SFrank Li reg-names: 44*7c025238SFrank Li items: 45*7c025238SFrank Li - const: processor-a-side 46*7c025238SFrank Li - const: processor-b-side 47*7c025238SFrank Li 48*7c025238SFrank Li interrupts: 49*7c025238SFrank Li description: a side interrupt number. 50*7c025238SFrank Li maxItems: 1 51*7c025238SFrank Li 52*7c025238SFrank Li clocks: 53*7c025238SFrank Li maxItems: 1 54*7c025238SFrank Li 55*7c025238SFrank Li power-domains: 56*7c025238SFrank Li items: 57*7c025238SFrank Li - description: a side power domain 58*7c025238SFrank Li - description: b side power domain 59*7c025238SFrank Li 60*7c025238SFrank Li power-domain-names: 61*7c025238SFrank Li items: 62*7c025238SFrank Li - const: processor-a-side 63*7c025238SFrank Li - const: processor-b-side 64*7c025238SFrank Li 65*7c025238SFrank Li msi-controller: true 66*7c025238SFrank Li 67*7c025238SFrank Li "#msi-cells": 68*7c025238SFrank Li const: 0 69*7c025238SFrank Li 70*7c025238SFrank Lirequired: 71*7c025238SFrank Li - compatible 72*7c025238SFrank Li - reg 73*7c025238SFrank Li - interrupts 74*7c025238SFrank Li - msi-controller 75*7c025238SFrank Li - "#msi-cells" 76*7c025238SFrank Li 77*7c025238SFrank LiadditionalProperties: false 78*7c025238SFrank Li 79*7c025238SFrank Liexamples: 80*7c025238SFrank Li - | 81*7c025238SFrank Li #include <dt-bindings/interrupt-controller/arm-gic.h> 82*7c025238SFrank Li #include <dt-bindings/firmware/imx/rsrc.h> 83*7c025238SFrank Li 84*7c025238SFrank Li msi-controller@5d270000 { 85*7c025238SFrank Li compatible = "fsl,imx6sx-mu-msi"; 86*7c025238SFrank Li msi-controller; 87*7c025238SFrank Li #msi-cells = <0>; 88*7c025238SFrank Li reg = <0x5d270000 0x10000>, /* A side */ 89*7c025238SFrank Li <0x5d300000 0x10000>; /* B side */ 90*7c025238SFrank Li reg-names = "processor-a-side", "processor-b-side"; 91*7c025238SFrank Li interrupts = <GIC_SPI 191 IRQ_TYPE_LEVEL_HIGH>; 92*7c025238SFrank Li power-domains = <&pd IMX_SC_R_MU_12A>, 93*7c025238SFrank Li <&pd IMX_SC_R_MU_12B>; 94*7c025238SFrank Li power-domain-names = "processor-a-side", "processor-b-side"; 95*7c025238SFrank Li }; 96