xref: /OK3568_Linux_fs/kernel/Documentation/devicetree/bindings/gpu/arm,mali-utgard.yaml (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0-only
2*4882a593Smuzhiyun%YAML 1.2
3*4882a593Smuzhiyun---
4*4882a593Smuzhiyun$id: http://devicetree.org/schemas/gpu/arm,mali-utgard.yaml#
5*4882a593Smuzhiyun$schema: http://devicetree.org/meta-schemas/core.yaml#
6*4882a593Smuzhiyun
7*4882a593Smuzhiyuntitle: ARM Mali Utgard GPU
8*4882a593Smuzhiyun
9*4882a593Smuzhiyunmaintainers:
10*4882a593Smuzhiyun  - Rob Herring <robh@kernel.org>
11*4882a593Smuzhiyun  - Maxime Ripard <mripard@kernel.org>
12*4882a593Smuzhiyun  - Heiko Stuebner <heiko@sntech.de>
13*4882a593Smuzhiyun
14*4882a593Smuzhiyunproperties:
15*4882a593Smuzhiyun  $nodename:
16*4882a593Smuzhiyun    pattern: '^gpu@[a-f0-9]+$'
17*4882a593Smuzhiyun  compatible:
18*4882a593Smuzhiyun    oneOf:
19*4882a593Smuzhiyun      - items:
20*4882a593Smuzhiyun          - const: allwinner,sun8i-a23-mali
21*4882a593Smuzhiyun          - const: allwinner,sun7i-a20-mali
22*4882a593Smuzhiyun          - const: arm,mali-400
23*4882a593Smuzhiyun      - items:
24*4882a593Smuzhiyun          - enum:
25*4882a593Smuzhiyun              - allwinner,sun4i-a10-mali
26*4882a593Smuzhiyun              - allwinner,sun7i-a20-mali
27*4882a593Smuzhiyun              - allwinner,sun8i-h3-mali
28*4882a593Smuzhiyun              - allwinner,sun8i-r40-mali
29*4882a593Smuzhiyun              - allwinner,sun50i-a64-mali
30*4882a593Smuzhiyun              - rockchip,rk3036-mali
31*4882a593Smuzhiyun              - rockchip,rk3066-mali
32*4882a593Smuzhiyun              - rockchip,rk3188-mali
33*4882a593Smuzhiyun              - rockchip,rk3228-mali
34*4882a593Smuzhiyun              - samsung,exynos4210-mali
35*4882a593Smuzhiyun              - stericsson,db8500-mali
36*4882a593Smuzhiyun          - const: arm,mali-400
37*4882a593Smuzhiyun      - items:
38*4882a593Smuzhiyun          - enum:
39*4882a593Smuzhiyun              - allwinner,sun50i-h5-mali
40*4882a593Smuzhiyun              - amlogic,meson8-mali
41*4882a593Smuzhiyun              - amlogic,meson8b-mali
42*4882a593Smuzhiyun              - amlogic,meson-gxbb-mali
43*4882a593Smuzhiyun              - amlogic,meson-gxl-mali
44*4882a593Smuzhiyun              - hisilicon,hi6220-mali
45*4882a593Smuzhiyun              - mediatek,mt7623-mali
46*4882a593Smuzhiyun              - rockchip,rk3328-mali
47*4882a593Smuzhiyun          - const: arm,mali-450
48*4882a593Smuzhiyun
49*4882a593Smuzhiyun      # "arm,mali-300"
50*4882a593Smuzhiyun
51*4882a593Smuzhiyun  reg:
52*4882a593Smuzhiyun    maxItems: 1
53*4882a593Smuzhiyun
54*4882a593Smuzhiyun  interrupts:
55*4882a593Smuzhiyun    minItems: 4
56*4882a593Smuzhiyun    maxItems: 20
57*4882a593Smuzhiyun
58*4882a593Smuzhiyun  interrupt-names:
59*4882a593Smuzhiyun    allOf:
60*4882a593Smuzhiyun      - additionalItems: true
61*4882a593Smuzhiyun        minItems: 4
62*4882a593Smuzhiyun        maxItems: 20
63*4882a593Smuzhiyun        items:
64*4882a593Smuzhiyun          # At least enforce the first 2 interrupts
65*4882a593Smuzhiyun          - const: gp
66*4882a593Smuzhiyun          - const: gpmmu
67*4882a593Smuzhiyun      - items:
68*4882a593Smuzhiyun          # Not ideal as any order and combination are allowed
69*4882a593Smuzhiyun          enum:
70*4882a593Smuzhiyun            - gp        # Geometry Processor interrupt
71*4882a593Smuzhiyun            - gpmmu     # Geometry Processor MMU interrupt
72*4882a593Smuzhiyun            - pp        # Pixel Processor broadcast interrupt (mali-450 only)
73*4882a593Smuzhiyun            - pp0       # Pixel Processor X interrupt (X from 0 to 7)
74*4882a593Smuzhiyun            - ppmmu0    # Pixel Processor X MMU interrupt (X from 0 to 7)
75*4882a593Smuzhiyun            - pp1
76*4882a593Smuzhiyun            - ppmmu1
77*4882a593Smuzhiyun            - pp2
78*4882a593Smuzhiyun            - ppmmu2
79*4882a593Smuzhiyun            - pp3
80*4882a593Smuzhiyun            - ppmmu3
81*4882a593Smuzhiyun            - pp4
82*4882a593Smuzhiyun            - ppmmu4
83*4882a593Smuzhiyun            - pp5
84*4882a593Smuzhiyun            - ppmmu5
85*4882a593Smuzhiyun            - pp6
86*4882a593Smuzhiyun            - ppmmu6
87*4882a593Smuzhiyun            - pp7
88*4882a593Smuzhiyun            - ppmmu7
89*4882a593Smuzhiyun            - pmu       # Power Management Unit interrupt (optional)
90*4882a593Smuzhiyun            - combined  # stericsson,db8500-mali only
91*4882a593Smuzhiyun
92*4882a593Smuzhiyun  clocks:
93*4882a593Smuzhiyun    maxItems: 2
94*4882a593Smuzhiyun
95*4882a593Smuzhiyun  clock-names:
96*4882a593Smuzhiyun    items:
97*4882a593Smuzhiyun      - const: bus
98*4882a593Smuzhiyun      - const: core
99*4882a593Smuzhiyun
100*4882a593Smuzhiyun  memory-region: true
101*4882a593Smuzhiyun
102*4882a593Smuzhiyun  mali-supply: true
103*4882a593Smuzhiyun
104*4882a593Smuzhiyun  opp-table: true
105*4882a593Smuzhiyun
106*4882a593Smuzhiyun  power-domains:
107*4882a593Smuzhiyun    maxItems: 1
108*4882a593Smuzhiyun
109*4882a593Smuzhiyun  resets:
110*4882a593Smuzhiyun    maxItems: 1
111*4882a593Smuzhiyun
112*4882a593Smuzhiyun  operating-points-v2: true
113*4882a593Smuzhiyun
114*4882a593Smuzhiyun  "#cooling-cells":
115*4882a593Smuzhiyun    const: 2
116*4882a593Smuzhiyun
117*4882a593Smuzhiyunrequired:
118*4882a593Smuzhiyun  - compatible
119*4882a593Smuzhiyun  - reg
120*4882a593Smuzhiyun  - interrupts
121*4882a593Smuzhiyun  - interrupt-names
122*4882a593Smuzhiyun  - clocks
123*4882a593Smuzhiyun  - clock-names
124*4882a593Smuzhiyun
125*4882a593SmuzhiyunadditionalProperties: false
126*4882a593Smuzhiyun
127*4882a593SmuzhiyunallOf:
128*4882a593Smuzhiyun  - if:
129*4882a593Smuzhiyun      properties:
130*4882a593Smuzhiyun        compatible:
131*4882a593Smuzhiyun          contains:
132*4882a593Smuzhiyun            enum:
133*4882a593Smuzhiyun              - allwinner,sun4i-a10-mali
134*4882a593Smuzhiyun              - allwinner,sun7i-a20-mali
135*4882a593Smuzhiyun              - allwinner,sun8i-r40-mali
136*4882a593Smuzhiyun              - allwinner,sun50i-a64-mali
137*4882a593Smuzhiyun              - allwinner,sun50i-h5-mali
138*4882a593Smuzhiyun              - amlogic,meson8-mali
139*4882a593Smuzhiyun              - amlogic,meson8b-mali
140*4882a593Smuzhiyun              - hisilicon,hi6220-mali
141*4882a593Smuzhiyun              - mediatek,mt7623-mali
142*4882a593Smuzhiyun              - rockchip,rk3036-mali
143*4882a593Smuzhiyun              - rockchip,rk3066-mali
144*4882a593Smuzhiyun              - rockchip,rk3188-mali
145*4882a593Smuzhiyun              - rockchip,rk3228-mali
146*4882a593Smuzhiyun              - rockchip,rk3328-mali
147*4882a593Smuzhiyun    then:
148*4882a593Smuzhiyun      required:
149*4882a593Smuzhiyun        - resets
150*4882a593Smuzhiyun
151*4882a593Smuzhiyunexamples:
152*4882a593Smuzhiyun  - |
153*4882a593Smuzhiyun    #include <dt-bindings/interrupt-controller/irq.h>
154*4882a593Smuzhiyun    #include <dt-bindings/interrupt-controller/arm-gic.h>
155*4882a593Smuzhiyun
156*4882a593Smuzhiyun    mali: gpu@1c40000 {
157*4882a593Smuzhiyun      compatible = "allwinner,sun7i-a20-mali", "arm,mali-400";
158*4882a593Smuzhiyun      reg = <0x01c40000 0x10000>;
159*4882a593Smuzhiyun      interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>,
160*4882a593Smuzhiyun             <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>,
161*4882a593Smuzhiyun             <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>,
162*4882a593Smuzhiyun             <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
163*4882a593Smuzhiyun             <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>,
164*4882a593Smuzhiyun             <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>,
165*4882a593Smuzhiyun             <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
166*4882a593Smuzhiyun      interrupt-names = "gp",
167*4882a593Smuzhiyun            "gpmmu",
168*4882a593Smuzhiyun            "pp0",
169*4882a593Smuzhiyun            "ppmmu0",
170*4882a593Smuzhiyun            "pp1",
171*4882a593Smuzhiyun            "ppmmu1",
172*4882a593Smuzhiyun            "pmu";
173*4882a593Smuzhiyun      clocks = <&ccu 1>, <&ccu 2>;
174*4882a593Smuzhiyun      clock-names = "bus", "core";
175*4882a593Smuzhiyun      resets = <&ccu 1>;
176*4882a593Smuzhiyun      #cooling-cells = <2>;
177*4882a593Smuzhiyun    };
178*4882a593Smuzhiyun
179*4882a593Smuzhiyun...
180