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