[RFC LINUX PATCH] Dcoumentation: dt: mailbox: Add Xilinx IPI Mailbox

From: Wendy Liang
Date: Thu Sep 21 2017 - 19:11:19 EST


Xilinx ZynqMP IPI(Inter Processor Interrupt) is a hardware block
in ZynqMP SoC used for the communication between various processor
systems.

Signed-off-by: Wendy Liang <jliang@xxxxxxxxxx>
---
.../bindings/mailbox/xlnx,zynqmp-ipi-mailbox.txt | 88 ++++++++++++++++++++++
1 file changed, 88 insertions(+)
create mode 100644 Documentation/devicetree/bindings/mailbox/xlnx,zynqmp-ipi-mailbox.txt

diff --git a/Documentation/devicetree/bindings/mailbox/xlnx,zynqmp-ipi-mailbox.txt b/Documentation/devicetree/bindings/mailbox/xlnx,zynqmp-ipi-mailbox.txt
new file mode 100644
index 0000000..5d915d1
--- /dev/null
+++ b/Documentation/devicetree/bindings/mailbox/xlnx,zynqmp-ipi-mailbox.txt
@@ -0,0 +1,88 @@
+Xilinx IPI Mailbox Driver
+========================================
+
+The Xilinx IPI(Inter Processor Interrupt) mailbox driver is a mailbox
+controller that manages the messaging between two IPI agents. Each IPI
+mailbox has request and response buffers between the two IPI agents.
+
++-------------------------------------+
+| |
+| Xilinx ZynqMP IPI Mailbox Controller|
+| |
+| +-------------+
+| | SMC |
+| | |
++--------+--------------+------+------+
+ | |
+ | +-----------------+
+ | | ATF (ARM trusted firmware)
+ | |
++-------------------------------------+
+ | | Hardware
+ | |
+ +--------------------------------------+
+ | |
+ +----------------------+ +-----------+ |
+ | | Buffers between | | IPI Agent | |
+ | | two IPI agents | | Registers | |
+ | +--------------------+ +-----------+ |
+ | |
+ | Xilinx ZynqMP IPI |
+ +--------------------------------------+
+
+
+Message Manager Device Node:
+===========================
+Required properties:
+--------------------
+- compatible: Shall be: "xlnx,zynqmp-ipi-mailbox"
+- ipi-smc-fid-base Base offset of SMC function IDs for IPI mailbox SMC.
+ It contains the IPI IDs of the two IPI agents.
+- reg: IPI request and response buffers address range. It
+ can be the IPI buffers from the hardware or it can
+ be carved out shared memory.
+- reg-names: Reg resource name of the IPI request and response
+ buffers.
+- #mbox-cells: Shall be 1. Contains the logical channel IDs of the
+ channels on the IPI mailbox.
+- interrupt-parent: Phandle for the interrupt controller.
+- interrupts: Interrupt mapping.
+
+Required properties:
+--------------------
+- method: The method of accessing the IPI agent registers.
+ Permitted values are: "smc" and "hvc". Default is
+ "smc".
+Example:
+------------
+ /* APU IPI mailbox driver */
+ ipis {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ ipi_mailbox_apu_rpu0: ipi_mailbox@0 {
+ compatible = "xlnx,zynqmp-ipi-mailbox";
+ reg = <0 0xff990400 40>;
+ reg-names = "apu-rpu0";
+ ipi-smc-fid-base = <0x1010>;
+ method = "smc";
+ #mbox-cells = <1>;
+ interrupt-parent = <&gic>;
+ interrupts = <0 35 4>;
+ };
+ ipi_mailbox_apu_rpu1: ipi_mailbox@1 {
+ compatible = "xlnx,zynqmp-ipi-mailbox";
+ reg = <0 0xff990440 40>;
+ reg-names = "apu-rpu1";
+ ipi-smc-fid-base = <0x1020>;
+ method = "smc";
+ #mbox-cells = <1>;
+ interrupt-parent = <&gic>;
+ interrupts = <0 35 4>;
+ };
+ };
+ device0: device0 {
+ ...
+ mbox-names = "rpu0", "rpu1",
+ mboxes = <&ipi_mailbox_apu_rpu0 0>,
+ < &ipi_mailbox_apu_rpu1 0>;
+ };
--
2.7.4