dt-bindings: zynqmp: add destination mailbox compatible
[linux-block.git] / Documentation / devicetree / bindings / mailbox / xlnx,zynqmp-ipi-mailbox.yaml
CommitLineData
4a855a95
SD
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
68b8960a
RH
4$id: http://devicetree.org/schemas/mailbox/xlnx,zynqmp-ipi-mailbox.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
4a855a95
SD
6
7title: Xilinx IPI(Inter Processor Interrupt) mailbox controller
8
9description: |
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.
13
14 +-------------------------------------+
15 | Xilinx ZynqMP IPI Controller |
16 +-------------------------------------+
17 +--------------------------------------------------+
18 TF-A | |
19 | |
20 | |
21 +--------------------------+ |
22 | |
23 | |
24 +--------------------------------------------------+
25 +------------------------------------------+
26 | +----------------+ +----------------+ |
27 Hardware | | IPI Agent | | IPI Buffers | |
28 | | Registers | | | |
29 | | | | | |
30 | +----------------+ +----------------+ |
31 | |
32 | Xilinx IPI Agent Block |
33 +------------------------------------------+
34
35maintainers:
d5c421d2 36 - Shubhrajyoti Datta <shubhrajyoti.datta@amd.com>
4a855a95
SD
37
38properties:
39 compatible:
40 const: xlnx,zynqmp-ipi-mailbox
41
42 method:
43 description: |
44 The method of calling the PM-API firmware layer.
45 Permitted values are.
46 - "smc" : SMC #0, following the SMCCC
47 - "hvc" : HVC #0, following the SMCCC
48
49 $ref: /schemas/types.yaml#/definitions/string
50 enum:
51 - smc
52 - hvc
53 default: smc
54
55 '#address-cells':
56 const: 2
57
58 '#size-cells':
59 const: 2
60
61 xlnx,ipi-id:
62 description: |
63 Remote Xilinx IPI agent ID of which the mailbox is connected to.
64 $ref: /schemas/types.yaml#/definitions/uint32
65
66 interrupts:
67 maxItems: 1
68
69 ranges: true
70
71patternProperties:
72 '^mailbox@[0-9a-f]+$':
73 description: Internal ipi mailbox node
74 type: object # DT nodes are json objects
e62fc182 75 additionalProperties: false
4a855a95 76 properties:
81186dc1
TS
77
78 compatible:
79 const: xlnx,zynqmp-ipi-dest-mailbox
80
4a855a95
SD
81 xlnx,ipi-id:
82 description:
83 Remote Xilinx IPI agent ID of which the mailbox is connected to.
84 $ref: /schemas/types.yaml#/definitions/uint32
85
86 '#mbox-cells':
87 const: 1
88 description:
89 It contains tx(0) or rx(1) channel IPI id number.
90
91 reg:
92 maxItems: 4
93
94 reg-names:
95 items:
96 - const: local_request_region
97 - const: local_response_region
98 - const: remote_request_region
99 - const: remote_response_region
100
101 required:
81186dc1 102 - compatible
4a855a95
SD
103 - reg
104 - reg-names
105 - "#mbox-cells"
106
107additionalProperties: false
108
109required:
110 - compatible
111 - interrupts
112 - '#address-cells'
113 - '#size-cells'
114 - xlnx,ipi-id
115
116examples:
117 - |
118 #include<dt-bindings/interrupt-controller/arm-gic.h>
119
120 amba {
121 #address-cells = <0x2>;
122 #size-cells = <0x2>;
123 zynqmp-mailbox {
124 compatible = "xlnx,zynqmp-ipi-mailbox";
125 interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
126 xlnx,ipi-id = <0>;
127 #address-cells = <2>;
128 #size-cells = <2>;
129 ranges;
130
131 mailbox: mailbox@ff9905c0 {
81186dc1 132 compatible = "xlnx,zynqmp-ipi-dest-mailbox";
4a855a95
SD
133 reg = <0x0 0xff9905c0 0x0 0x20>,
134 <0x0 0xff9905e0 0x0 0x20>,
135 <0x0 0xff990e80 0x0 0x20>,
136 <0x0 0xff990ea0 0x0 0x20>;
137 reg-names = "local_request_region",
138 "local_response_region",
139 "remote_request_region",
140 "remote_response_region";
141 #mbox-cells = <1>;
142 xlnx,ipi-id = <4>;
143 };
144 };
145 };
146
147...