arm64: dts: qcom: sm8550: add TRNG node
[linux-modified.git] / Documentation / devicetree / bindings / mailbox / xlnx,zynqmp-ipi-mailbox.yaml
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     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
71 patternProperties:
72   '^mailbox@[0-9a-f]+$':
73     description: Internal ipi mailbox node
74     type: object  # DT nodes are json objects
75     additionalProperties: false
76     properties:
77
78       compatible:
79         const: xlnx,zynqmp-ipi-dest-mailbox
80
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:
102       - compatible
103       - reg
104       - reg-names
105       - "#mbox-cells"
106
107 additionalProperties: false
108
109 required:
110   - compatible
111   - interrupts
112   - '#address-cells'
113   - '#size-cells'
114   - xlnx,ipi-id
115
116 examples:
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 {
132           compatible = "xlnx,zynqmp-ipi-dest-mailbox";
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 ...