Merge remote-tracking branch 'spi/for-5.12' into spi-linus
[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           - realtek,rtd1619-mali
21           - rockchip,px30-mali
22       - const: arm,mali-bifrost # Mali Bifrost GPU model/revision is fully discoverable
23
24   reg:
25     maxItems: 1
26
27   interrupts:
28     items:
29       - description: Job interrupt
30       - description: MMU interrupt
31       - description: GPU interrupt
32
33   interrupt-names:
34     items:
35       - const: job
36       - const: mmu
37       - const: gpu
38
39   clocks:
40     maxItems: 1
41
42   mali-supply: true
43
44   operating-points-v2: true
45
46   power-domains:
47     maxItems: 1
48
49   resets:
50     maxItems: 2
51
52   "#cooling-cells":
53     const: 2
54
55   dynamic-power-coefficient:
56     $ref: '/schemas/types.yaml#/definitions/uint32'
57     description:
58       A u32 value that represents the running time dynamic
59       power coefficient in units of uW/MHz/V^2. The
60       coefficient can either be calculated from power
61       measurements or derived by analysis.
62
63       The dynamic power consumption of the GPU is
64       proportional to the square of the Voltage (V) and
65       the clock frequency (f). The coefficient is used to
66       calculate the dynamic power as below -
67
68       Pdyn = dynamic-power-coefficient * V^2 * f
69
70       where voltage is in V, frequency is in MHz.
71
72   dma-coherent: true
73
74 required:
75   - compatible
76   - reg
77   - interrupts
78   - interrupt-names
79   - clocks
80
81 additionalProperties: false
82
83 allOf:
84   - if:
85       properties:
86         compatible:
87           contains:
88             const: amlogic,meson-g12a-mali
89     then:
90       required:
91         - resets
92
93 examples:
94   - |
95     #include <dt-bindings/interrupt-controller/irq.h>
96     #include <dt-bindings/interrupt-controller/arm-gic.h>
97
98     gpu@ffe40000 {
99       compatible = "amlogic,meson-g12a-mali", "arm,mali-bifrost";
100       reg = <0xffe40000 0x10000>;
101       interrupts = <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>,
102              <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>,
103              <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>;
104       interrupt-names = "job", "mmu", "gpu";
105       clocks = <&clk 1>;
106       mali-supply = <&vdd_gpu>;
107       operating-points-v2 = <&gpu_opp_table>;
108       resets = <&reset 0>, <&reset 1>;
109     };
110
111     gpu_opp_table: opp_table0 {
112       compatible = "operating-points-v2";
113
114       opp-533000000 {
115         opp-hz = /bits/ 64 <533000000>;
116         opp-microvolt = <1250000>;
117       };
118       opp-450000000 {
119         opp-hz = /bits/ 64 <450000000>;
120         opp-microvolt = <1150000>;
121       };
122       opp-400000000 {
123         opp-hz = /bits/ 64 <400000000>;
124         opp-microvolt = <1125000>;
125       };
126       opp-350000000 {
127         opp-hz = /bits/ 64 <350000000>;
128         opp-microvolt = <1075000>;
129       };
130       opp-266000000 {
131         opp-hz = /bits/ 64 <266000000>;
132         opp-microvolt = <1025000>;
133       };
134       opp-160000000 {
135         opp-hz = /bits/ 64 <160000000>;
136         opp-microvolt = <925000>;
137       };
138       opp-100000000 {
139         opp-hz = /bits/ 64 <100000000>;
140         opp-microvolt = <912500>;
141       };
142     };
143
144 ...