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
7title: ARM Versatile Express configuration bus
8
9maintainers:
10  - Andre Przywara <andre.przywara@arm.com>
11
12description:
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
18properties:
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
99additionalProperties: false
100
101required:
102  - compatible
103  - arm,vexpress,config-bridge
104
105patternProperties:
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
269examples:
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    };
286