~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/devicetree/bindings/mailbox/xlnx,zynqmp-ipi-mailbox.yaml

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
  2 %YAML 1.2
  3 ---
  4 $id: http://devicetree.org/schemas/mailbox/xlnx,zynqmp-ipi-mailbox.yaml#
  5 $schema: http://devicetree.org/meta-schemas/core.yaml#
  6 
  7 title: Xilinx IPI(Inter Processor Interrupt) mailbox controller
  8 
  9 description: |
 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 
 35 maintainers:
 36   - Shubhrajyoti Datta <shubhrajyoti.datta@amd.com>
 37 
 38 properties:
 39   compatible:
 40     enum:
 41       - xlnx,zynqmp-ipi-mailbox
 42       - xlnx,versal-ipi-mailbox
 43 
 44   method:
 45     description: |
 46       The method of calling the PM-API firmware layer.
 47       Permitted values are.
 48       - "smc" : SMC #0, following the SMCCC
 49       - "hvc" : HVC #0, following the SMCCC
 50 
 51     $ref: /schemas/types.yaml#/definitions/string
 52     enum:
 53       - smc
 54       - hvc
 55     default: smc
 56 
 57   '#address-cells':
 58     const: 2
 59 
 60   '#size-cells':
 61     const: 2
 62 
 63   reg:
 64     maxItems: 2
 65 
 66   reg-names:
 67     maxItems: 2
 68 
 69   xlnx,ipi-id:
 70     description: |
 71       Remote Xilinx IPI agent ID of which the mailbox is connected to.
 72     $ref: /schemas/types.yaml#/definitions/uint32
 73 
 74   interrupts:
 75     maxItems: 1
 76 
 77   ranges: true
 78 
 79 patternProperties:
 80   '^mailbox@[0-9a-f]+$':
 81     description: Internal ipi mailbox node
 82     type: object  # DT nodes are json objects
 83     additionalProperties: false
 84     properties:
 85 
 86       compatible:
 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
 98 
 99       xlnx,ipi-id:
100         description:
101           Remote Xilinx IPI agent ID of which the mailbox is connected to.
102         $ref: /schemas/types.yaml#/definitions/uint32
103 
104       '#mbox-cells':
105         const: 1
106         description:
107           It contains tx(0) or rx(1) channel IPI id number.
108 
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
140 
141     required:
142       - compatible
143       - reg
144       - reg-names
145       - "#mbox-cells"
146       - xlnx,ipi-id
147 
148 required:
149   - compatible
150   - interrupts
151   - '#address-cells'
152   - '#size-cells'
153   - xlnx,ipi-id
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 
185 examples:
186   - |
187     #include<dt-bindings/interrupt-controller/arm-gic.h>
188 
189     amba {
190       #address-cells = <0x2>;
191       #size-cells = <0x2>;
192       zynqmp-mailbox {
193         compatible = "xlnx,zynqmp-ipi-mailbox";
194         interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
195         xlnx,ipi-id = <0>;
196         #address-cells = <2>;
197         #size-cells = <2>;
198         ranges;
199 
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";
210           #mbox-cells = <1>;
211           xlnx,ipi-id = <4>;
212         };
213       };
214     };
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     };
253 ...

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php