Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/sys/contrib/device-tree/Bindings/gpu/arm,mali-bifrost.yaml
48376 views
1
# SPDX-License-Identifier: GPL-2.0-only
2
%YAML 1.2
3
---
4
$id: http://devicetree.org/schemas/gpu/arm,mali-bifrost.yaml#
5
$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7
title: ARM Mali Bifrost GPU
8
9
maintainers:
10
- Rob Herring <robh@kernel.org>
11
12
properties:
13
$nodename:
14
pattern: '^gpu@[a-f0-9]+$'
15
16
compatible:
17
oneOf:
18
- items:
19
- enum:
20
- amlogic,meson-g12a-mali
21
- mediatek,mt8183-mali
22
- mediatek,mt8183b-mali
23
- mediatek,mt8186-mali
24
- realtek,rtd1619-mali
25
- renesas,r9a07g044-mali
26
- renesas,r9a07g054-mali
27
- rockchip,px30-mali
28
- rockchip,rk3568-mali
29
- const: arm,mali-bifrost # Mali Bifrost GPU model/revision is fully discoverable
30
- items:
31
- enum:
32
- mediatek,mt8195-mali
33
- const: mediatek,mt8192-mali
34
- const: arm,mali-valhall-jm # Mali Valhall GPU model/revision is fully discoverable
35
- items:
36
- enum:
37
- mediatek,mt8188-mali
38
- mediatek,mt8192-mali
39
- const: arm,mali-valhall-jm # Mali Valhall GPU model/revision is fully discoverable
40
41
reg:
42
maxItems: 1
43
44
interrupts:
45
minItems: 3
46
items:
47
- description: Job interrupt
48
- description: MMU interrupt
49
- description: GPU interrupt
50
- description: Event interrupt
51
52
interrupt-names:
53
minItems: 3
54
items:
55
- const: job
56
- const: mmu
57
- const: gpu
58
- const: event
59
60
clocks:
61
minItems: 1
62
maxItems: 3
63
64
clock-names: true
65
66
mali-supply: true
67
68
sram-supply: true
69
70
operating-points-v2: true
71
72
power-domains:
73
minItems: 1
74
maxItems: 5
75
76
power-domain-names:
77
minItems: 2
78
maxItems: 5
79
80
resets:
81
minItems: 1
82
maxItems: 3
83
84
reset-names: true
85
86
"#cooling-cells":
87
const: 2
88
89
dynamic-power-coefficient:
90
$ref: /schemas/types.yaml#/definitions/uint32
91
description:
92
A u32 value that represents the running time dynamic
93
power coefficient in units of uW/MHz/V^2. The
94
coefficient can either be calculated from power
95
measurements or derived by analysis.
96
97
The dynamic power consumption of the GPU is
98
proportional to the square of the Voltage (V) and
99
the clock frequency (f). The coefficient is used to
100
calculate the dynamic power as below -
101
102
Pdyn = dynamic-power-coefficient * V^2 * f
103
104
where voltage is in V, frequency is in MHz.
105
106
dma-coherent: true
107
108
nvmem-cell-names:
109
items:
110
- const: speed-bin
111
112
nvmem-cells:
113
maxItems: 1
114
115
required:
116
- compatible
117
- reg
118
- interrupts
119
- interrupt-names
120
- clocks
121
122
additionalProperties: false
123
124
allOf:
125
- if:
126
properties:
127
compatible:
128
contains:
129
const: amlogic,meson-g12a-mali
130
then:
131
properties:
132
power-domains:
133
maxItems: 1
134
power-domain-names: false
135
required:
136
- resets
137
- if:
138
properties:
139
compatible:
140
contains:
141
enum:
142
- renesas,r9a07g044-mali
143
- renesas,r9a07g054-mali
144
then:
145
properties:
146
interrupts:
147
minItems: 4
148
interrupt-names:
149
minItems: 4
150
clocks:
151
minItems: 3
152
clock-names:
153
items:
154
- const: gpu
155
- const: bus
156
- const: bus_ace
157
power-domains:
158
maxItems: 1
159
power-domain-names: false
160
resets:
161
minItems: 3
162
reset-names:
163
items:
164
- const: rst
165
- const: axi_rst
166
- const: ace_rst
167
required:
168
- clock-names
169
- power-domains
170
- resets
171
- reset-names
172
- if:
173
properties:
174
compatible:
175
contains:
176
const: mediatek,mt8183-mali
177
then:
178
properties:
179
power-domains:
180
minItems: 3
181
maxItems: 3
182
power-domain-names:
183
items:
184
- const: core0
185
- const: core1
186
- const: core2
187
188
required:
189
- sram-supply
190
- power-domains
191
- power-domain-names
192
else:
193
properties:
194
sram-supply: false
195
- if:
196
properties:
197
compatible:
198
contains:
199
enum:
200
- mediatek,mt8183b-mali
201
- mediatek,mt8188-mali
202
then:
203
properties:
204
power-domains:
205
minItems: 3
206
maxItems: 3
207
power-domain-names:
208
items:
209
- const: core0
210
- const: core1
211
- const: core2
212
required:
213
- power-domains
214
- power-domain-names
215
- if:
216
properties:
217
compatible:
218
contains:
219
const: mediatek,mt8186-mali
220
then:
221
properties:
222
power-domains:
223
minItems: 2
224
maxItems: 2
225
power-domain-names:
226
items:
227
- const: core0
228
- const: core1
229
required:
230
- power-domains
231
- power-domain-names
232
- if:
233
properties:
234
compatible:
235
contains:
236
const: mediatek,mt8192-mali
237
then:
238
properties:
239
power-domains:
240
minItems: 5
241
power-domain-names:
242
items:
243
- const: core0
244
- const: core1
245
- const: core2
246
- const: core3
247
- const: core4
248
required:
249
- power-domains
250
- power-domain-names
251
- if:
252
properties:
253
compatible:
254
contains:
255
const: rockchip,rk3568-mali
256
then:
257
properties:
258
clocks:
259
minItems: 2
260
clock-names:
261
items:
262
- const: gpu
263
- const: bus
264
power-domains:
265
maxItems: 1
266
power-domain-names: false
267
required:
268
- clock-names
269
270
examples:
271
- |
272
#include <dt-bindings/interrupt-controller/irq.h>
273
#include <dt-bindings/interrupt-controller/arm-gic.h>
274
275
gpu@ffe40000 {
276
compatible = "amlogic,meson-g12a-mali", "arm,mali-bifrost";
277
reg = <0xffe40000 0x10000>;
278
interrupts = <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>,
279
<GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>,
280
<GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>;
281
interrupt-names = "job", "mmu", "gpu";
282
clocks = <&clk 1>;
283
mali-supply = <&vdd_gpu>;
284
operating-points-v2 = <&gpu_opp_table>;
285
resets = <&reset 0>, <&reset 1>;
286
};
287
288
gpu_opp_table: opp-table {
289
compatible = "operating-points-v2";
290
291
opp-533000000 {
292
opp-hz = /bits/ 64 <533000000>;
293
opp-microvolt = <1250000>;
294
};
295
opp-450000000 {
296
opp-hz = /bits/ 64 <450000000>;
297
opp-microvolt = <1150000>;
298
};
299
opp-400000000 {
300
opp-hz = /bits/ 64 <400000000>;
301
opp-microvolt = <1125000>;
302
};
303
opp-350000000 {
304
opp-hz = /bits/ 64 <350000000>;
305
opp-microvolt = <1075000>;
306
};
307
opp-266000000 {
308
opp-hz = /bits/ 64 <266000000>;
309
opp-microvolt = <1025000>;
310
};
311
opp-160000000 {
312
opp-hz = /bits/ 64 <160000000>;
313
opp-microvolt = <925000>;
314
};
315
opp-100000000 {
316
opp-hz = /bits/ 64 <100000000>;
317
opp-microvolt = <912500>;
318
};
319
};
320
321
...
322
323