blob: 0801da33a385b42fa3a7ff367fafee54b1aae458 [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001# 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
7title: ARM Mali Midgard GPU
8
9maintainers:
10 - Rob Herring <robh@kernel.org>
11
12properties:
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:
Tom Rini93743d22024-04-01 09:08:13 -040045 - samsung,exynos7-mali
46 - const: samsung,exynos5433-mali
47 - const: arm,mali-t760
48 - items:
49 - enum:
Tom Rini53633a82024-02-29 12:33:36 -050050 - rockchip,rk3399-mali
51 - const: arm,mali-t860
52
53 # "arm,mali-t830"
54 # "arm,mali-t880"
55
56 reg:
57 maxItems: 1
58
59 interrupts:
60 items:
61 - description: Job interrupt
62 - description: MMU interrupt
63 - description: GPU interrupt
64
65 interrupt-names:
66 items:
67 - const: job
68 - const: mmu
69 - const: gpu
70
71 clocks:
72 minItems: 1
73 maxItems: 2
74
75 clock-names:
76 minItems: 1
77 items:
78 - const: core
79 - const: bus
80
81 mali-supply: true
82 opp-table:
83 type: object
84
85 power-domains:
86 maxItems: 1
87
88 resets:
89 minItems: 1
90 maxItems: 2
91
92 operating-points-v2: true
93
94 "#cooling-cells":
95 const: 2
96
97 dma-coherent: true
98
99 dynamic-power-coefficient:
100 $ref: /schemas/types.yaml#/definitions/uint32
101 description:
102 A u32 value that represents the running time dynamic
103 power coefficient in units of uW/MHz/V^2. The
104 coefficient can either be calculated from power
105 measurements or derived by analysis.
106
107 The dynamic power consumption of the GPU is
108 proportional to the square of the Voltage (V) and
109 the clock frequency (f). The coefficient is used to
110 calculate the dynamic power as below -
111
112 Pdyn = dynamic-power-coefficient * V^2 * f
113
114 where voltage is in V, frequency is in MHz.
115
116required:
117 - compatible
118 - reg
119 - interrupts
120 - interrupt-names
121 - clocks
122
123additionalProperties: false
124
125allOf:
126 - if:
127 properties:
128 compatible:
129 contains:
130 const: allwinner,sun50i-h6-mali
131 then:
132 properties:
133 clocks:
134 minItems: 2
135 required:
136 - clock-names
137 - resets
138 - if:
139 properties:
140 compatible:
141 contains:
142 const: amlogic,meson-gxm-mali
143 then:
144 properties:
145 resets:
146 minItems: 2
147 required:
148 - resets
149
150examples:
151 - |
152 #include <dt-bindings/interrupt-controller/irq.h>
153 #include <dt-bindings/interrupt-controller/arm-gic.h>
154
155 gpu@ffa30000 {
156 compatible = "rockchip,rk3288-mali", "arm,mali-t760";
157 reg = <0xffa30000 0x10000>;
158 interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>,
159 <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>,
160 <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
161 interrupt-names = "job", "mmu", "gpu";
162 clocks = <&cru 0>;
163 mali-supply = <&vdd_gpu>;
164 operating-points-v2 = <&gpu_opp_table>;
165 power-domains = <&power 0>;
166 #cooling-cells = <2>;
167 };
168
169 gpu_opp_table: opp-table {
170 compatible = "operating-points-v2";
171
172 opp-533000000 {
173 opp-hz = /bits/ 64 <533000000>;
174 opp-microvolt = <1250000>;
175 };
176 opp-450000000 {
177 opp-hz = /bits/ 64 <450000000>;
178 opp-microvolt = <1150000>;
179 };
180 opp-400000000 {
181 opp-hz = /bits/ 64 <400000000>;
182 opp-microvolt = <1125000>;
183 };
184 opp-350000000 {
185 opp-hz = /bits/ 64 <350000000>;
186 opp-microvolt = <1075000>;
187 };
188 opp-266000000 {
189 opp-hz = /bits/ 64 <266000000>;
190 opp-microvolt = <1025000>;
191 };
192 opp-160000000 {
193 opp-hz = /bits/ 64 <160000000>;
194 opp-microvolt = <925000>;
195 };
196 opp-100000000 {
197 opp-hz = /bits/ 64 <100000000>;
198 opp-microvolt = <912500>;
199 };
200 };
201
202...