Merge branches 'for-next/kvm-build-fix', 'for-next/va-refactor', 'for-next/lto',...
[linux-2.6-microblaze.git] / Documentation / devicetree / bindings / gpu / arm,mali-midgard.yaml
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 required:
94   - compatible
95   - reg
96   - interrupts
97   - interrupt-names
98   - clocks
99
100 additionalProperties: false
101
102 allOf:
103   - if:
104       properties:
105         compatible:
106           contains:
107             const: allwinner,sun50i-h6-mali
108     then:
109       properties:
110         clocks:
111           minItems: 2
112       required:
113         - clock-names
114         - resets
115   - if:
116       properties:
117         compatible:
118           contains:
119             const: amlogic,meson-gxm-mali
120     then:
121       properties:
122         resets:
123           minItems: 2
124       required:
125         - resets
126
127 examples:
128   - |
129     #include <dt-bindings/interrupt-controller/irq.h>
130     #include <dt-bindings/interrupt-controller/arm-gic.h>
131
132     gpu@ffa30000 {
133       compatible = "rockchip,rk3288-mali", "arm,mali-t760";
134       reg = <0xffa30000 0x10000>;
135       interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>,
136              <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>,
137              <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
138       interrupt-names = "job", "mmu", "gpu";
139       clocks = <&cru 0>;
140       mali-supply = <&vdd_gpu>;
141       operating-points-v2 = <&gpu_opp_table>;
142       power-domains = <&power 0>;
143       #cooling-cells = <2>;
144     };
145
146     gpu_opp_table: opp_table0 {
147       compatible = "operating-points-v2";
148
149       opp-533000000 {
150         opp-hz = /bits/ 64 <533000000>;
151         opp-microvolt = <1250000>;
152       };
153       opp-450000000 {
154         opp-hz = /bits/ 64 <450000000>;
155         opp-microvolt = <1150000>;
156       };
157       opp-400000000 {
158         opp-hz = /bits/ 64 <400000000>;
159         opp-microvolt = <1125000>;
160       };
161       opp-350000000 {
162         opp-hz = /bits/ 64 <350000000>;
163         opp-microvolt = <1075000>;
164       };
165       opp-266000000 {
166         opp-hz = /bits/ 64 <266000000>;
167         opp-microvolt = <1025000>;
168       };
169       opp-160000000 {
170         opp-hz = /bits/ 64 <160000000>;
171         opp-microvolt = <925000>;
172       };
173       opp-100000000 {
174         opp-hz = /bits/ 64 <100000000>;
175         opp-microvolt = <912500>;
176       };
177     };
178
179 ...