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
7title: ARM Mali Midgard GPU
8
9maintainers:
10  - Rob Herring <robh@kernel.org>
11
12properties:
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
92required:
93  - compatible
94  - reg
95  - interrupts
96  - interrupt-names
97  - clocks
98
99additionalProperties: false
100
101allOf:
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
126examples:
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...
179