-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch irq/fsl-mu-msi into irq/irqchip-next
* irq/fsl-mu-msi: : . : Platform MSI controller driver for the IMX MU block : : Patches from Frank Li. : . dt-bindings: irqchip: Describe the IMX MU block as a MSI controller irqchip: Add IMX MU MSI controller driver irqchip: Allow extra fields to be passed to IRQCHIP_PLATFORM_DRIVER_END platform-msi: Export symbol platform_msi_create_irq_domain() Signed-off-by: Marc Zyngier <maz@kernel.org>
- Loading branch information
Showing
6 changed files
with
571 additions
and
1 deletion.
There are no files selected for viewing
99 changes: 99 additions & 0 deletions
99
Documentation/devicetree/bindings/interrupt-controller/fsl,mu-msi.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,99 @@ | ||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) | ||
%YAML 1.2 | ||
--- | ||
$id: http://devicetree.org/schemas/interrupt-controller/fsl,mu-msi.yaml# | ||
$schema: http://devicetree.org/meta-schemas/core.yaml# | ||
|
||
title: Freescale/NXP i.MX Messaging Unit (MU) work as msi controller | ||
|
||
maintainers: | ||
- Frank Li <Frank.Li@nxp.com> | ||
|
||
description: | | ||
The Messaging Unit module enables two processors within the SoC to | ||
communicate and coordinate by passing messages (e.g. data, status | ||
and control) through the MU interface. The MU also provides the ability | ||
for one processor (A side) to signal the other processor (B side) using | ||
interrupts. | ||
Because the MU manages the messaging between processors, the MU uses | ||
different clocks (from each side of the different peripheral buses). | ||
Therefore, the MU must synchronize the accesses from one side to the | ||
other. The MU accomplishes synchronization using two sets of matching | ||
registers (Processor A-side, Processor B-side). | ||
MU can work as msi interrupt controller to do doorbell | ||
allOf: | ||
- $ref: /schemas/interrupt-controller/msi-controller.yaml# | ||
|
||
properties: | ||
compatible: | ||
enum: | ||
- fsl,imx6sx-mu-msi | ||
- fsl,imx7ulp-mu-msi | ||
- fsl,imx8ulp-mu-msi | ||
- fsl,imx8ulp-mu-msi-s4 | ||
|
||
reg: | ||
items: | ||
- description: a side register base address | ||
- description: b side register base address | ||
|
||
reg-names: | ||
items: | ||
- const: processor-a-side | ||
- const: processor-b-side | ||
|
||
interrupts: | ||
description: a side interrupt number. | ||
maxItems: 1 | ||
|
||
clocks: | ||
maxItems: 1 | ||
|
||
power-domains: | ||
items: | ||
- description: a side power domain | ||
- description: b side power domain | ||
|
||
power-domain-names: | ||
items: | ||
- const: processor-a-side | ||
- const: processor-b-side | ||
|
||
interrupt-controller: true | ||
|
||
msi-controller: true | ||
|
||
"#msi-cells": | ||
const: 0 | ||
|
||
required: | ||
- compatible | ||
- reg | ||
- interrupts | ||
- interrupt-controller | ||
- msi-controller | ||
- "#msi-cells" | ||
|
||
additionalProperties: false | ||
|
||
examples: | ||
- | | ||
#include <dt-bindings/interrupt-controller/arm-gic.h> | ||
#include <dt-bindings/firmware/imx/rsrc.h> | ||
msi-controller@5d270000 { | ||
compatible = "fsl,imx6sx-mu-msi"; | ||
msi-controller; | ||
#msi-cells = <0>; | ||
interrupt-controller; | ||
reg = <0x5d270000 0x10000>, /* A side */ | ||
<0x5d300000 0x10000>; /* B side */ | ||
reg-names = "processor-a-side", "processor-b-side"; | ||
interrupts = <GIC_SPI 191 IRQ_TYPE_LEVEL_HIGH>; | ||
power-domains = <&pd IMX_SC_R_MU_12A>, | ||
<&pd IMX_SC_R_MU_12B>; | ||
power-domain-names = "processor-a-side", "processor-b-side"; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.