@@ -37,7 +37,9 @@ maintainers:
37
37
38
38
properties :
39
39
compatible :
40
- const : xlnx,zynqmp-ipi-mailbox
40
+ enum :
41
+ - xlnx,zynqmp-ipi-mailbox
42
+ - xlnx,versal-ipi-mailbox
41
43
42
44
method :
43
45
description : |
@@ -58,6 +60,12 @@ properties:
58
60
' #size-cells ' :
59
61
const : 2
60
62
63
+ reg :
64
+ maxItems : 2
65
+
66
+ reg-names :
67
+ maxItems : 2
68
+
61
69
xlnx,ipi-id :
62
70
description : |
63
71
Remote Xilinx IPI agent ID of which the mailbox is connected to.
@@ -76,7 +84,17 @@ patternProperties:
76
84
properties :
77
85
78
86
compatible :
79
- const : xlnx,zynqmp-ipi-dest-mailbox
87
+ enum :
88
+ - xlnx,zynqmp-ipi-dest-mailbox
89
+ - xlnx,versal-ipi-dest-mailbox
90
+
91
+ reg :
92
+ minItems : 1
93
+ maxItems : 4
94
+
95
+ reg-names :
96
+ minItems : 1
97
+ maxItems : 4
80
98
81
99
xlnx,ipi-id :
82
100
description :
@@ -88,15 +106,37 @@ patternProperties:
88
106
description :
89
107
It contains tx(0) or rx(1) channel IPI id number.
90
108
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
109
+ allOf :
110
+ - if :
111
+ properties :
112
+ compatible :
113
+ contains :
114
+ enum :
115
+ - xlnx,zynqmp-ipi-dest-mailbox
116
+ then :
117
+ properties :
118
+ reg :
119
+ maxItems : 4
120
+
121
+ reg-names :
122
+ items :
123
+ - const : local_request_region
124
+ - const : local_response_region
125
+ - const : remote_request_region
126
+ - const : remote_response_region
127
+ else :
128
+ properties :
129
+ reg :
130
+ minItems : 1
131
+ items :
132
+ - description : Remote IPI agent control register region
133
+ - description : Remote IPI agent optional message buffers
134
+
135
+ reg-names :
136
+ minItems : 1
137
+ items :
138
+ - const : ctrl
139
+ - const : msg
100
140
101
141
required :
102
142
- compatible
@@ -105,15 +145,43 @@ patternProperties:
105
145
- " #mbox-cells"
106
146
- xlnx,ipi-id
107
147
108
- additionalProperties : false
109
-
110
148
required :
111
149
- compatible
112
150
- interrupts
113
151
- ' #address-cells'
114
152
- ' #size-cells'
115
153
- xlnx,ipi-id
116
154
155
+ allOf :
156
+ - if :
157
+ properties :
158
+ compatible :
159
+ contains :
160
+ enum :
161
+ - xlnx,zynqmp-ipi-mailbox
162
+ then :
163
+ properties :
164
+ reg : false
165
+ reg-names : false
166
+
167
+ else :
168
+ properties :
169
+ reg :
170
+ items :
171
+ - description : Host IPI agent control register region
172
+ - description : Host IPI agent optional message buffers
173
+
174
+ reg-names :
175
+ items :
176
+ - const : ctrl
177
+ - const : msg
178
+
179
+ required :
180
+ - reg
181
+ - reg-names
182
+
183
+ additionalProperties : false
184
+
117
185
examples :
118
186
- |
119
187
#include<dt-bindings/interrupt-controller/arm-gic.h>
@@ -145,4 +213,41 @@ examples:
145
213
};
146
214
};
147
215
216
+ - |
217
+ #include<dt-bindings/interrupt-controller/arm-gic.h>
218
+
219
+ bus {
220
+ #address-cells = <2>;
221
+ #size-cells = <2>;
222
+ mailbox@ff300000 {
223
+ compatible = "xlnx,versal-ipi-mailbox";
224
+ interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
225
+ #address-cells = <2>;
226
+ #size-cells = <2>;
227
+ reg = <0x0 0xff300000 0x0 0x1000>,
228
+ <0x0 0xff990000 0x0 0x1ff>;
229
+ reg-names = "ctrl", "msg";
230
+ xlnx,ipi-id = <0>;
231
+ ranges;
232
+
233
+ /* buffered IPI */
234
+ mailbox@ff340000 {
235
+ compatible = "xlnx,versal-ipi-dest-mailbox";
236
+ reg = <0x0 0xff340000 0x0 0x1000>,
237
+ <0x0 0xff990400 0x0 0x1ff>;
238
+ reg-names = "ctrl", "msg";
239
+ #mbox-cells = <1>;
240
+ xlnx,ipi-id = <4>;
241
+ };
242
+
243
+ /* bufferless IPI */
244
+ mailbox@ff370000 {
245
+ compatible = "xlnx,versal-ipi-dest-mailbox";
246
+ reg = <0x0 0xff370000 0x0 0x1000>;
247
+ reg-names = "ctrl";
248
+ #mbox-cells = <1>;
249
+ xlnx,ipi-id = <7>;
250
+ };
251
+ };
252
+ };
148
253
...
0 commit comments