GNU Linux-libre 6.8.9-gnu
[releases.git] / Documentation / devicetree / bindings / arm / vexpress-config.yaml
1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/arm/vexpress-config.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: ARM Versatile Express configuration bus
8
9 maintainers:
10   - Andre Przywara <andre.przywara@arm.com>
11
12 description:
13   This is a system control register block, acting as a bridge to the
14   platform's configuration bus via "system control" interface, addressing
15   devices with site number, position in the board stack, config controller,
16   function and device numbers - see motherboard's TRM for more details.
17
18 properties:
19   compatible:
20     const: arm,vexpress,config-bus
21
22   arm,vexpress,config-bridge:
23     $ref: /schemas/types.yaml#/definitions/phandle
24     description:
25       Phandle to the sysreg node.
26
27   muxfpga:
28     type: object
29     properties:
30       compatible:
31         const: arm,vexpress-muxfpga
32
33       arm,vexpress-sysreg,func:
34         description: FPGA specifier
35         $ref: /schemas/types.yaml#/definitions/uint32-array
36         items:
37           - const: 7
38           - description: device number
39
40     additionalProperties: false
41     required:
42       - compatible
43       - arm,vexpress-sysreg,func
44
45   shutdown:
46     type: object
47     properties:
48       compatible:
49         const: arm,vexpress-shutdown
50
51       arm,vexpress-sysreg,func:
52         description: shutdown identifier
53         $ref: /schemas/types.yaml#/definitions/uint32-array
54         items:
55           - const: 8
56           - description: device number
57
58     additionalProperties: false
59     required:
60       - compatible
61       - arm,vexpress-sysreg,func
62
63   reboot:
64     type: object
65     properties:
66       compatible:
67         const: arm,vexpress-reboot
68
69       arm,vexpress-sysreg,func:
70         description: reboot identifier
71         $ref: /schemas/types.yaml#/definitions/uint32-array
72         items:
73           - const: 9
74           - description: device number
75
76     additionalProperties: false
77     required:
78       - compatible
79       - arm,vexpress-sysreg,func
80
81   dvimode:
82     type: object
83     properties:
84       compatible:
85         const: arm,vexpress-dvimode
86
87       arm,vexpress-sysreg,func:
88         description: DVI mode identifier
89         $ref: /schemas/types.yaml#/definitions/uint32-array
90         items:
91           - const: 11
92           - description: device number
93
94     additionalProperties: false
95     required:
96       - compatible
97       - arm,vexpress-sysreg,func
98
99 additionalProperties: false
100
101 required:
102   - compatible
103   - arm,vexpress,config-bridge
104
105 patternProperties:
106   'clk[0-9]*$':
107     type: object
108     description:
109       clocks
110
111     properties:
112       compatible:
113         const: arm,vexpress-osc
114
115       arm,vexpress-sysreg,func:
116         description: clock specifier
117         $ref: /schemas/types.yaml#/definitions/uint32-array
118         items:
119           - const: 1
120           - description: clock number
121
122       freq-range:
123         $ref: /schemas/types.yaml#/definitions/uint32-array
124         items:
125           - description: minimal clock frequency
126           - description: maximum clock frequency
127
128       "#clock-cells":
129         const: 0
130
131       clock-output-names:
132         maxItems: 1
133
134     additionalProperties: false
135     required:
136       - compatible
137       - arm,vexpress-sysreg,func
138       - "#clock-cells"
139
140   "^volt-.+$":
141     $ref: /schemas/regulator/regulator.yaml#
142     properties:
143       compatible:
144         const: arm,vexpress-volt
145
146       arm,vexpress-sysreg,func:
147         description: regulator specifier
148         $ref: /schemas/types.yaml#/definitions/uint32-array
149         items:
150           - const: 2
151           - description: device number
152
153       label:
154         maxItems: 1
155
156     unevaluatedProperties: false
157     required:
158       - compatible
159       - arm,vexpress-sysreg,func
160
161   "^amp-.+$":
162     type: object
163     properties:
164       compatible:
165         const: arm,vexpress-amp
166
167       arm,vexpress-sysreg,func:
168         description: current sensor identifier
169         $ref: /schemas/types.yaml#/definitions/uint32-array
170         items:
171           - const: 3
172           - description: device number
173
174       label:
175         maxItems: 1
176
177     additionalProperties: false
178     required:
179       - compatible
180       - arm,vexpress-sysreg,func
181
182   "^temp-.+$":
183     type: object
184     properties:
185       compatible:
186         const: arm,vexpress-temp
187
188       arm,vexpress-sysreg,func:
189         description: temperature sensor identifier
190         $ref: /schemas/types.yaml#/definitions/uint32-array
191         items:
192           - const: 4
193           - description: device number
194
195       label:
196         maxItems: 1
197
198     additionalProperties: false
199     required:
200       - compatible
201       - arm,vexpress-sysreg,func
202
203   "^reset[0-9]*$":
204     type: object
205     properties:
206       compatible:
207         const: arm,vexpress-reset
208
209       arm,vexpress-sysreg,func:
210         description: reset specifier
211         $ref: /schemas/types.yaml#/definitions/uint32-array
212         items:
213           - const: 5
214           - description: reset device number
215
216     additionalProperties: false
217     required:
218       - compatible
219       - arm,vexpress-sysreg,func
220
221   "^power-.+$":
222     type: object
223     properties:
224       compatible:
225         const: arm,vexpress-power
226
227       arm,vexpress-sysreg,func:
228         description: power sensor identifier
229         $ref: /schemas/types.yaml#/definitions/uint32-array
230         items:
231           - const: 12
232           - description: device number
233
234       label:
235         maxItems: 1
236
237     additionalProperties: false
238     required:
239       - compatible
240       - arm,vexpress-sysreg,func
241
242   "^energy(-.+)?$":
243     type: object
244     properties:
245       compatible:
246         const: arm,vexpress-energy
247
248       arm,vexpress-sysreg,func:
249         description: energy sensor identifier
250         $ref: /schemas/types.yaml#/definitions/uint32-array
251         oneOf:
252           - items:
253               - const: 13
254               - description: device number
255           - items:
256               - const: 13
257               - description: device number
258               - const: 13
259               - description: second device number
260
261       label:
262         maxItems: 1
263
264     additionalProperties: false
265     required:
266       - compatible
267       - arm,vexpress-sysreg,func
268
269 examples:
270   - |
271     mcc {
272         compatible = "arm,vexpress,config-bus";
273         arm,vexpress,config-bridge = <&v2m_sysreg>;
274
275         clk0 {
276             compatible = "arm,vexpress-osc";
277             arm,vexpress-sysreg,func = <1 0>;
278             #clock-cells = <0>;
279         };
280
281         energy {
282             compatible = "arm,vexpress-energy";
283             arm,vexpress-sysreg,func = <13 0>, <13 1>;
284         };
285     };