1 # SPDX-License-Identifier: GPL-2.0-only
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/gpu/arm,mali-midgard.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: ARM Mali Midgard GPU
8
9 maintainers:
10 - Rob Herring <robh@kernel.org>
11
12 properties:
13 $nodename:
14 pattern: '^gpu@[a-f0-9]+$'
15 compatible:
16 oneOf:
17 - items:
18 - enum:
19 - samsung,exynos5250-mali
20 - const: arm,mali-t604
21 - items:
22 - enum:
23 - samsung,exynos5420-mali
24 - const: arm,mali-t628
25 - items:
26 - enum:
27 - allwinner,sun50i-h6-mali
28 - const: arm,mali-t720
29 - items:
30 - enum:
31 - amlogic,meson-gxm-mali
32 - realtek,rtd1295-mali
33 - const: arm,mali-t820
34 - items:
35 - enum:
36 - arm,juno-mali
37 - const: arm,mali-t624
38 - items:
39 - enum:
40 - rockchip,rk3288-mali
41 - samsung,exynos5433-mali
42 - const: arm,mali-t760
43 - items:
44 - enum:
45 - rockchip,rk3399-mali
46 - const: arm,mali-t860
47
48 # "arm,mali-t830"
49 # "arm,mali-t880"
50
51 reg:
52 maxItems: 1
53
54 interrupts:
55 items:
56 - description: Job interrupt
57 - description: MMU interrupt
58 - description: GPU interrupt
59
60 interrupt-names:
61 items:
62 - const: job
63 - const: mmu
64 - const: gpu
65
66 clocks:
67 minItems: 1
68 maxItems: 2
69
70 clock-names:
71 minItems: 1
72 items:
73 - const: core
74 - const: bus
75
76 mali-supply: true
77 opp-table: true
78
79 power-domains:
80 maxItems: 1
81
82 resets:
83 minItems: 1
84 maxItems: 2
85
86 operating-points-v2: true
87
88 "#cooling-cells":
89 const: 2
90
91 dma-coherent: true
92
93 dynamic-power-coefficient:
94 $ref: '/schemas/types.yaml#/definitions/uint32'
95 description:
96 A u32 value that represents the running time dynamic
97 power coefficient in units of uW/MHz/V^2. The
98 coefficient can either be calculated from power
99 measurements or derived by analysis.
100
101 The dynamic power consumption of the GPU is
102 proportional to the square of the Voltage (V) and
103 the clock frequency (f). The coefficient is used to
104 calculate the dynamic power as below -
105
106 Pdyn = dynamic-power-coefficient * V^2 * f
107
108 where voltage is in V, frequency is in MHz.
109
110 required:
111 - compatible
112 - reg
113 - interrupts
114 - interrupt-names
115 - clocks
116
117 additionalProperties: false
118
119 allOf:
120 - if:
121 properties:
122 compatible:
123 contains:
124 const: allwinner,sun50i-h6-mali
125 then:
126 properties:
127 clocks:
128 minItems: 2
129 required:
130 - clock-names
131 - resets
132 - if:
133 properties:
134 compatible:
135 contains:
136 const: amlogic,meson-gxm-mali
137 then:
138 properties:
139 resets:
140 minItems: 2
141 required:
142 - resets
143
144 examples:
145 - |
146 #include <dt-bindings/interrupt-controller/irq.h>
147 #include <dt-bindings/interrupt-controller/arm-gic.h>
148
149 gpu@ffa30000 {
150 compatible = "rockchip,rk3288-mali", "arm,mali-t760";
151 reg = <0xffa30000 0x10000>;
152 interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>,
153 <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>,
154 <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
155 interrupt-names = "job", "mmu", "gpu";
156 clocks = <&cru 0>;
157 mali-supply = <&vdd_gpu>;
158 operating-points-v2 = <&gpu_opp_table>;
159 power-domains = <&power 0>;
160 #cooling-cells = <2>;
161 };
162
163 gpu_opp_table: opp-table {
164 compatible = "operating-points-v2";
165
166 opp-533000000 {
167 opp-hz = /bits/ 64 <533000000>;
168 opp-microvolt = <1250000>;
169 };
170 opp-450000000 {
171 opp-hz = /bits/ 64 <450000000>;
172 opp-microvolt = <1150000>;
173 };
174 opp-400000000 {
175 opp-hz = /bits/ 64 <400000000>;
176 opp-microvolt = <1125000>;
177 };
178 opp-350000000 {
179 opp-hz = /bits/ 64 <350000000>;
180 opp-microvolt = <1075000>;
181 };
182 opp-266000000 {
183 opp-hz = /bits/ 64 <266000000>;
184 opp-microvolt = <1025000>;
185 };
186 opp-160000000 {
187 opp-hz = /bits/ 64 <160000000>;
188 opp-microvolt = <925000>;
189 };
190 opp-100000000 {
191 opp-hz = /bits/ 64 <100000000>;
192 opp-microvolt = <912500>;
193 };
194 };
195
196 ...
Cache object: 9602059d40cb3915333be168f20ed150
|