dt-bindings: mailbox: zynqmp_ipi: convert to yaml
Convert the ipi doc to yaml. Signed-off-by: Shubhrajyoti Datta <shubhrajyoti.datta@xilinx.com> Signed-off-by: Rob Herring <robh@kernel.org> Link: https://lore.kernel.org/r/20220517165536.8637-1-shubhrajyoti.datta@xilinx.com
This commit is contained in:
parent
6177531020
commit
4a855a9579
@ -1,127 +0,0 @@
|
||||
Xilinx IPI Mailbox Controller
|
||||
========================================
|
||||
|
||||
The Xilinx IPI(Inter Processor Interrupt) mailbox controller is to manage
|
||||
messaging between two Xilinx Zynq UltraScale+ MPSoC IPI agents. Each IPI
|
||||
agent owns registers used for notification and buffers for message.
|
||||
|
||||
+-------------------------------------+
|
||||
| Xilinx ZynqMP IPI Controller |
|
||||
+-------------------------------------+
|
||||
+--------------------------------------------------+
|
||||
ATF | |
|
||||
| |
|
||||
| |
|
||||
+--------------------------+ |
|
||||
| |
|
||||
| |
|
||||
+--------------------------------------------------+
|
||||
+------------------------------------------+
|
||||
| +----------------+ +----------------+ |
|
||||
Hardware | | IPI Agent | | IPI Buffers | |
|
||||
| | Registers | | | |
|
||||
| | | | | |
|
||||
| +----------------+ +----------------+ |
|
||||
| |
|
||||
| Xilinx IPI Agent Block |
|
||||
+------------------------------------------+
|
||||
|
||||
|
||||
Controller Device Node:
|
||||
===========================
|
||||
Required properties:
|
||||
--------------------
|
||||
IPI agent node:
|
||||
- compatible: Shall be: "xlnx,zynqmp-ipi-mailbox"
|
||||
- interrupt-parent: Phandle for the interrupt controller
|
||||
- interrupts: Interrupt information corresponding to the
|
||||
interrupt-names property.
|
||||
- xlnx,ipi-id: local Xilinx IPI agent ID
|
||||
- #address-cells: number of address cells of internal IPI mailbox nodes
|
||||
- #size-cells: number of size cells of internal IPI mailbox nodes
|
||||
|
||||
Internal IPI mailbox node:
|
||||
- reg: IPI buffers address ranges
|
||||
- reg-names: Names of the reg resources. It should have:
|
||||
* local_request_region
|
||||
- IPI request msg buffer written by local and read
|
||||
by remote
|
||||
* local_response_region
|
||||
- IPI response msg buffer written by local and read
|
||||
by remote
|
||||
* remote_request_region
|
||||
- IPI request msg buffer written by remote and read
|
||||
by local
|
||||
* remote_response_region
|
||||
- IPI response msg buffer written by remote and read
|
||||
by local
|
||||
- #mbox-cells: Shall be 1. It contains:
|
||||
* tx(0) or rx(1) channel
|
||||
- xlnx,ipi-id: remote Xilinx IPI agent ID of which the mailbox is
|
||||
connected to.
|
||||
|
||||
Optional properties:
|
||||
--------------------
|
||||
- method: The method of accessing the IPI agent registers.
|
||||
Permitted values are: "smc" and "hvc". Default is
|
||||
"smc".
|
||||
|
||||
Client Device Node:
|
||||
===========================
|
||||
Required properties:
|
||||
--------------------
|
||||
- mboxes: Standard property to specify a mailbox
|
||||
(See ./mailbox.txt)
|
||||
- mbox-names: List of identifier strings for each mailbox
|
||||
channel.
|
||||
|
||||
Example:
|
||||
===========================
|
||||
zynqmp_ipi {
|
||||
compatible = "xlnx,zynqmp-ipi-mailbox";
|
||||
interrupt-parent = <&gic>;
|
||||
interrupts = <0 29 4>;
|
||||
xlnx,ipi-id = <0>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges;
|
||||
|
||||
/* APU<->RPU0 IPI mailbox controller */
|
||||
ipi_mailbox_rpu0: mailbox@ff990400 {
|
||||
reg = <0xff990400 0x20>,
|
||||
<0xff990420 0x20>,
|
||||
<0xff990080 0x20>,
|
||||
<0xff9900a0 0x20>;
|
||||
reg-names = "local_request_region",
|
||||
"local_response_region",
|
||||
"remote_request_region",
|
||||
"remote_response_region";
|
||||
#mbox-cells = <1>;
|
||||
xlnx,ipi-id = <1>;
|
||||
};
|
||||
/* APU<->RPU1 IPI mailbox controller */
|
||||
ipi_mailbox_rpu1: mailbox@ff990440 {
|
||||
reg = <0xff990440 0x20>,
|
||||
<0xff990460 0x20>,
|
||||
<0xff990280 0x20>,
|
||||
<0xff9902a0 0x20>;
|
||||
reg-names = "local_request_region",
|
||||
"local_response_region",
|
||||
"remote_request_region",
|
||||
"remote_response_region";
|
||||
#mbox-cells = <1>;
|
||||
xlnx,ipi-id = <2>;
|
||||
};
|
||||
};
|
||||
rpu0 {
|
||||
...
|
||||
mboxes = <&ipi_mailbox_rpu0 0>,
|
||||
<&ipi_mailbox_rpu0 1>;
|
||||
mbox-names = "tx", "rx";
|
||||
};
|
||||
rpu1 {
|
||||
...
|
||||
mboxes = <&ipi_mailbox_rpu1 0>,
|
||||
<&ipi_mailbox_rpu1 1>;
|
||||
mbox-names = "tx", "rx";
|
||||
};
|
@ -0,0 +1,140 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: "http://devicetree.org/schemas/mailbox/xlnx,zynqmp-ipi-mailbox.yaml#"
|
||||
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
|
||||
|
||||
title: Xilinx IPI(Inter Processor Interrupt) mailbox controller
|
||||
|
||||
description: |
|
||||
The Xilinx IPI(Inter Processor Interrupt) mailbox controller is to manage
|
||||
messaging between two Xilinx Zynq UltraScale+ MPSoC IPI agents. Each IPI
|
||||
agent owns registers used for notification and buffers for message.
|
||||
|
||||
+-------------------------------------+
|
||||
| Xilinx ZynqMP IPI Controller |
|
||||
+-------------------------------------+
|
||||
+--------------------------------------------------+
|
||||
TF-A | |
|
||||
| |
|
||||
| |
|
||||
+--------------------------+ |
|
||||
| |
|
||||
| |
|
||||
+--------------------------------------------------+
|
||||
+------------------------------------------+
|
||||
| +----------------+ +----------------+ |
|
||||
Hardware | | IPI Agent | | IPI Buffers | |
|
||||
| | Registers | | | |
|
||||
| | | | | |
|
||||
| +----------------+ +----------------+ |
|
||||
| |
|
||||
| Xilinx IPI Agent Block |
|
||||
+------------------------------------------+
|
||||
|
||||
maintainers:
|
||||
- Shubhrajyoti Datta <shubhrajyoti.datta@xilinx.com>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: xlnx,zynqmp-ipi-mailbox
|
||||
|
||||
method:
|
||||
description: |
|
||||
The method of calling the PM-API firmware layer.
|
||||
Permitted values are.
|
||||
- "smc" : SMC #0, following the SMCCC
|
||||
- "hvc" : HVC #0, following the SMCCC
|
||||
|
||||
$ref: /schemas/types.yaml#/definitions/string
|
||||
enum:
|
||||
- smc
|
||||
- hvc
|
||||
default: smc
|
||||
|
||||
'#address-cells':
|
||||
const: 2
|
||||
|
||||
'#size-cells':
|
||||
const: 2
|
||||
|
||||
xlnx,ipi-id:
|
||||
description: |
|
||||
Remote Xilinx IPI agent ID of which the mailbox is connected to.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
ranges: true
|
||||
|
||||
patternProperties:
|
||||
'^mailbox@[0-9a-f]+$':
|
||||
description: Internal ipi mailbox node
|
||||
type: object # DT nodes are json objects
|
||||
properties:
|
||||
xlnx,ipi-id:
|
||||
description:
|
||||
Remote Xilinx IPI agent ID of which the mailbox is connected to.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
|
||||
'#mbox-cells':
|
||||
const: 1
|
||||
description:
|
||||
It contains tx(0) or rx(1) channel IPI id number.
|
||||
|
||||
reg:
|
||||
maxItems: 4
|
||||
|
||||
reg-names:
|
||||
items:
|
||||
- const: local_request_region
|
||||
- const: local_response_region
|
||||
- const: remote_request_region
|
||||
- const: remote_response_region
|
||||
|
||||
required:
|
||||
- reg
|
||||
- reg-names
|
||||
- "#mbox-cells"
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- interrupts
|
||||
- '#address-cells'
|
||||
- '#size-cells'
|
||||
- xlnx,ipi-id
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include<dt-bindings/interrupt-controller/arm-gic.h>
|
||||
|
||||
amba {
|
||||
#address-cells = <0x2>;
|
||||
#size-cells = <0x2>;
|
||||
zynqmp-mailbox {
|
||||
compatible = "xlnx,zynqmp-ipi-mailbox";
|
||||
interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
|
||||
xlnx,ipi-id = <0>;
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
ranges;
|
||||
|
||||
mailbox: mailbox@ff9905c0 {
|
||||
reg = <0x0 0xff9905c0 0x0 0x20>,
|
||||
<0x0 0xff9905e0 0x0 0x20>,
|
||||
<0x0 0xff990e80 0x0 0x20>,
|
||||
<0x0 0xff990ea0 0x0 0x20>;
|
||||
reg-names = "local_request_region",
|
||||
"local_response_region",
|
||||
"remote_request_region",
|
||||
"remote_response_region";
|
||||
#mbox-cells = <1>;
|
||||
xlnx,ipi-id = <4>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
...
|
Loading…
x
Reference in New Issue
Block a user