Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
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
7title: ARM Mali Bifrost GPU
8
9maintainers:
10 - Rob Herring <robh@kernel.org>
11
12properties:
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
79required:
80 - compatible
81 - reg
82 - interrupts
83 - interrupt-names
84 - clocks
85
86additionalProperties: false
87
88allOf:
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
122examples:
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-table {
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...