1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
4 $id: http://devicetree.org/schemas/mailbox/xlnx,zynqmp-ipi-mailbox.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
7 title: Xilinx IPI(Inter Processor Interrupt) mailbox controller
10 The Xilinx IPI(Inter Processor Interrupt) mailbox controller is to manage
11 messaging between two Xilinx Zynq UltraScale+ MPSoC IPI agents. Each IPI
12 agent owns registers used for notification and buffers for message.
14 +-------------------------------------+
15 | Xilinx ZynqMP IPI Controller |
16 +-------------------------------------+
17 +--------------------------------------------------+
21 +--------------------------+ |
24 +--------------------------------------------------+
25 +------------------------------------------+
26 | +----------------+ +----------------+ |
27 Hardware | | IPI Agent | | IPI Buffers | |
30 | +----------------+ +----------------+ |
32 | Xilinx IPI Agent Block |
33 +------------------------------------------+
36 - Shubhrajyoti Datta <shubhrajyoti.datta@amd.com>
41 - xlnx,zynqmp-ipi-mailbox
42 - xlnx,versal-ipi-mailbox
46 The method of calling the PM-API firmware layer.
48 - "smc" : SMC #0, following the SMCCC
49 - "hvc" : HVC #0, following the SMCCC
51 $ref: /schemas/types.yaml#/definitions/string
71 Remote Xilinx IPI agent ID of which the mailbox is connected to.
72 $ref: /schemas/types.yaml#/definitions/uint32
80 '^mailbox@[0-9a-f]+$':
81 description: Internal ipi mailbox node
82 type: object # DT nodes are json objects
83 additionalProperties: false
88 - xlnx,zynqmp-ipi-dest-mailbox
89 - xlnx,versal-ipi-dest-mailbox
101 Remote Xilinx IPI agent ID of which the mailbox is connected to.
102 $ref: /schemas/types.yaml#/definitions/uint32
107 It contains tx(0) or rx(1) channel IPI id number.
115 - xlnx,zynqmp-ipi-dest-mailbox
123 - const: local_request_region
124 - const: local_response_region
125 - const: remote_request_region
126 - const: remote_response_region
132 - description: Remote IPI agent control register region
133 - description: Remote IPI agent optional message buffers
161 - xlnx,zynqmp-ipi-mailbox
171 - description: Host IPI agent control register region
172 - description: Host IPI agent optional message buffers
183 additionalProperties: false
187 #include<dt-bindings/interrupt-controller/arm-gic.h>
190 #address-cells = <0x2>;
193 compatible = "xlnx,zynqmp-ipi-mailbox";
194 interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
196 #address-cells = <2>;
200 mailbox: mailbox@ff9905c0 {
201 compatible = "xlnx,zynqmp-ipi-dest-mailbox";
202 reg = <0x0 0xff9905c0 0x0 0x20>,
203 <0x0 0xff9905e0 0x0 0x20>,
204 <0x0 0xff990e80 0x0 0x20>,
205 <0x0 0xff990ea0 0x0 0x20>;
206 reg-names = "local_request_region",
207 "local_response_region",
208 "remote_request_region",
209 "remote_response_region";
217 #include<dt-bindings/interrupt-controller/arm-gic.h>
220 #address-cells = <2>;
223 compatible = "xlnx,versal-ipi-mailbox";
224 interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
225 #address-cells = <2>;
227 reg = <0x0 0xff300000 0x0 0x1000>,
228 <0x0 0xff990000 0x0 0x1ff>;
229 reg-names = "ctrl", "msg";
235 compatible = "xlnx,versal-ipi-dest-mailbox";
236 reg = <0x0 0xff340000 0x0 0x1000>,
237 <0x0 0xff990400 0x0 0x1ff>;
238 reg-names = "ctrl", "msg";
245 compatible = "xlnx,versal-ipi-dest-mailbox";
246 reg = <0x0 0xff370000 0x0 0x1000>;