io_uring: fix off-by-one in BUILD_BUG_ON check of __REQ_F_LAST_BIT
[linux-2.6-microblaze.git] / Documentation / devicetree / bindings / gpu / arm,mali-bifrost.yaml
1 # SPDX-License-Identifier: GPL-2.0-only
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/gpu/arm,mali-bifrost.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: ARM Mali Bifrost GPU
8
9 maintainers:
10   - Rob Herring <robh@kernel.org>
11
12 properties:
13   $nodename:
14     pattern: '^gpu@[a-f0-9]+$'
15
16   compatible:
17     items:
18       - enum:
19           - amlogic,meson-g12a-mali
20           - mediatek,mt8183-mali
21           - realtek,rtd1619-mali
22           - rockchip,px30-mali
23           - rockchip,rk3568-mali
24       - const: arm,mali-bifrost # Mali Bifrost GPU model/revision is fully discoverable
25
26   reg:
27     maxItems: 1
28
29   interrupts:
30     items:
31       - description: Job interrupt
32       - description: MMU interrupt
33       - description: GPU interrupt
34
35   interrupt-names:
36     items:
37       - const: job
38       - const: mmu
39       - const: gpu
40
41   clocks:
42     maxItems: 1
43
44   mali-supply: true
45
46   sram-supply: true
47
48   operating-points-v2: true
49
50   power-domains:
51     minItems: 1
52     maxItems: 3
53
54   resets:
55     maxItems: 2
56
57   "#cooling-cells":
58     const: 2
59
60   dynamic-power-coefficient:
61     $ref: '/schemas/types.yaml#/definitions/uint32'
62     description:
63       A u32 value that represents the running time dynamic
64       power coefficient in units of uW/MHz/V^2. The
65       coefficient can either be calculated from power
66       measurements or derived by analysis.
67
68       The dynamic power consumption of the GPU is
69       proportional to the square of the Voltage (V) and
70       the clock frequency (f). The coefficient is used to
71       calculate the dynamic power as below -
72
73       Pdyn = dynamic-power-coefficient * V^2 * f
74
75       where voltage is in V, frequency is in MHz.
76
77   dma-coherent: true
78
79 required:
80   - compatible
81   - reg
82   - interrupts
83   - interrupt-names
84   - clocks
85
86 additionalProperties: false
87
88 allOf:
89   - if:
90       properties:
91         compatible:
92           contains:
93             const: amlogic,meson-g12a-mali
94     then:
95       required:
96         - resets
97   - if:
98       properties:
99         compatible:
100           contains:
101             const: mediatek,mt8183-mali
102     then:
103       properties:
104         power-domains:
105           minItems: 3
106         power-domain-names:
107           items:
108             - const: core0
109             - const: core1
110             - const: core2
111
112       required:
113         - sram-supply
114         - power-domains
115         - power-domain-names
116     else:
117       properties:
118         power-domains:
119           maxItems: 1
120         sram-supply: false
121
122 examples:
123   - |
124     #include <dt-bindings/interrupt-controller/irq.h>
125     #include <dt-bindings/interrupt-controller/arm-gic.h>
126
127     gpu@ffe40000 {
128       compatible = "amlogic,meson-g12a-mali", "arm,mali-bifrost";
129       reg = <0xffe40000 0x10000>;
130       interrupts = <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>,
131              <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>,
132              <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>;
133       interrupt-names = "job", "mmu", "gpu";
134       clocks = <&clk 1>;
135       mali-supply = <&vdd_gpu>;
136       operating-points-v2 = <&gpu_opp_table>;
137       resets = <&reset 0>, <&reset 1>;
138     };
139
140     gpu_opp_table: opp_table0 {
141       compatible = "operating-points-v2";
142
143       opp-533000000 {
144         opp-hz = /bits/ 64 <533000000>;
145         opp-microvolt = <1250000>;
146       };
147       opp-450000000 {
148         opp-hz = /bits/ 64 <450000000>;
149         opp-microvolt = <1150000>;
150       };
151       opp-400000000 {
152         opp-hz = /bits/ 64 <400000000>;
153         opp-microvolt = <1125000>;
154       };
155       opp-350000000 {
156         opp-hz = /bits/ 64 <350000000>;
157         opp-microvolt = <1075000>;
158       };
159       opp-266000000 {
160         opp-hz = /bits/ 64 <266000000>;
161         opp-microvolt = <1025000>;
162       };
163       opp-160000000 {
164         opp-hz = /bits/ 64 <160000000>;
165         opp-microvolt = <925000>;
166       };
167       opp-100000000 {
168         opp-hz = /bits/ 64 <100000000>;
169         opp-microvolt = <912500>;
170       };
171     };
172
173 ...