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