WIP FPC-III support
[linux/fpc-iii.git] / Documentation / devicetree / bindings / gpu / arm,mali-midgard.yaml
blob696c17aedbbe2b34325dd16b2b61c723bc5e2c60
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#
7 title: ARM Mali Midgard GPU
9 maintainers:
10   - Rob Herring <robh@kernel.org>
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
48           # "arm,mali-t830"
49           # "arm,mali-t880"
51   reg:
52     maxItems: 1
54   interrupts:
55     items:
56       - description: Job interrupt
57       - description: MMU interrupt
58       - description: GPU interrupt
60   interrupt-names:
61     items:
62       - const: job
63       - const: mmu
64       - const: gpu
66   clocks:
67     minItems: 1
68     maxItems: 2
70   clock-names:
71     minItems: 1
72     items:
73       - const: core
74       - const: bus
76   mali-supply: true
77   opp-table: true
79   power-domains:
80     maxItems: 1
82   resets:
83     minItems: 1
84     maxItems: 2
86   operating-points-v2: true
88   "#cooling-cells":
89     const: 2
91   dma-coherent: true
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.
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 -
106       Pdyn = dynamic-power-coefficient * V^2 * f
108       where voltage is in V, frequency is in MHz.
110 required:
111   - compatible
112   - reg
113   - interrupts
114   - interrupt-names
115   - clocks
117 additionalProperties: false
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
144 examples:
145   - |
146     #include <dt-bindings/interrupt-controller/irq.h>
147     #include <dt-bindings/interrupt-controller/arm-gic.h>
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     };
163     gpu_opp_table: opp_table0 {
164       compatible = "operating-points-v2";
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     };