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