18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only
28c2ecf20Sopenharmony_ci%YAML 1.2
38c2ecf20Sopenharmony_ci---
48c2ecf20Sopenharmony_ci$id: http://devicetree.org/schemas/gpu/arm,mali-utgard.yaml#
58c2ecf20Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
68c2ecf20Sopenharmony_ci
78c2ecf20Sopenharmony_cititle: ARM Mali Utgard GPU
88c2ecf20Sopenharmony_ci
98c2ecf20Sopenharmony_cimaintainers:
108c2ecf20Sopenharmony_ci  - Rob Herring <robh@kernel.org>
118c2ecf20Sopenharmony_ci  - Maxime Ripard <mripard@kernel.org>
128c2ecf20Sopenharmony_ci  - Heiko Stuebner <heiko@sntech.de>
138c2ecf20Sopenharmony_ci
148c2ecf20Sopenharmony_ciproperties:
158c2ecf20Sopenharmony_ci  $nodename:
168c2ecf20Sopenharmony_ci    pattern: '^gpu@[a-f0-9]+$'
178c2ecf20Sopenharmony_ci  compatible:
188c2ecf20Sopenharmony_ci    oneOf:
198c2ecf20Sopenharmony_ci      - items:
208c2ecf20Sopenharmony_ci          - const: allwinner,sun8i-a23-mali
218c2ecf20Sopenharmony_ci          - const: allwinner,sun7i-a20-mali
228c2ecf20Sopenharmony_ci          - const: arm,mali-400
238c2ecf20Sopenharmony_ci      - items:
248c2ecf20Sopenharmony_ci          - enum:
258c2ecf20Sopenharmony_ci              - allwinner,sun4i-a10-mali
268c2ecf20Sopenharmony_ci              - allwinner,sun7i-a20-mali
278c2ecf20Sopenharmony_ci              - allwinner,sun8i-h3-mali
288c2ecf20Sopenharmony_ci              - allwinner,sun8i-r40-mali
298c2ecf20Sopenharmony_ci              - allwinner,sun50i-a64-mali
308c2ecf20Sopenharmony_ci              - rockchip,rk3036-mali
318c2ecf20Sopenharmony_ci              - rockchip,rk3066-mali
328c2ecf20Sopenharmony_ci              - rockchip,rk3188-mali
338c2ecf20Sopenharmony_ci              - rockchip,rk3228-mali
348c2ecf20Sopenharmony_ci              - samsung,exynos4210-mali
358c2ecf20Sopenharmony_ci              - stericsson,db8500-mali
368c2ecf20Sopenharmony_ci          - const: arm,mali-400
378c2ecf20Sopenharmony_ci      - items:
388c2ecf20Sopenharmony_ci          - enum:
398c2ecf20Sopenharmony_ci              - allwinner,sun50i-h5-mali
408c2ecf20Sopenharmony_ci              - amlogic,meson8-mali
418c2ecf20Sopenharmony_ci              - amlogic,meson8b-mali
428c2ecf20Sopenharmony_ci              - amlogic,meson-gxbb-mali
438c2ecf20Sopenharmony_ci              - amlogic,meson-gxl-mali
448c2ecf20Sopenharmony_ci              - hisilicon,hi6220-mali
458c2ecf20Sopenharmony_ci              - mediatek,mt7623-mali
468c2ecf20Sopenharmony_ci              - rockchip,rk3328-mali
478c2ecf20Sopenharmony_ci          - const: arm,mali-450
488c2ecf20Sopenharmony_ci
498c2ecf20Sopenharmony_ci      # "arm,mali-300"
508c2ecf20Sopenharmony_ci
518c2ecf20Sopenharmony_ci  reg:
528c2ecf20Sopenharmony_ci    maxItems: 1
538c2ecf20Sopenharmony_ci
548c2ecf20Sopenharmony_ci  interrupts:
558c2ecf20Sopenharmony_ci    minItems: 4
568c2ecf20Sopenharmony_ci    maxItems: 20
578c2ecf20Sopenharmony_ci
588c2ecf20Sopenharmony_ci  interrupt-names:
598c2ecf20Sopenharmony_ci    allOf:
608c2ecf20Sopenharmony_ci      - additionalItems: true
618c2ecf20Sopenharmony_ci        minItems: 4
628c2ecf20Sopenharmony_ci        maxItems: 20
638c2ecf20Sopenharmony_ci        items:
648c2ecf20Sopenharmony_ci          # At least enforce the first 2 interrupts
658c2ecf20Sopenharmony_ci          - const: gp
668c2ecf20Sopenharmony_ci          - const: gpmmu
678c2ecf20Sopenharmony_ci      - items:
688c2ecf20Sopenharmony_ci          # Not ideal as any order and combination are allowed
698c2ecf20Sopenharmony_ci          enum:
708c2ecf20Sopenharmony_ci            - gp        # Geometry Processor interrupt
718c2ecf20Sopenharmony_ci            - gpmmu     # Geometry Processor MMU interrupt
728c2ecf20Sopenharmony_ci            - pp        # Pixel Processor broadcast interrupt (mali-450 only)
738c2ecf20Sopenharmony_ci            - pp0       # Pixel Processor X interrupt (X from 0 to 7)
748c2ecf20Sopenharmony_ci            - ppmmu0    # Pixel Processor X MMU interrupt (X from 0 to 7)
758c2ecf20Sopenharmony_ci            - pp1
768c2ecf20Sopenharmony_ci            - ppmmu1
778c2ecf20Sopenharmony_ci            - pp2
788c2ecf20Sopenharmony_ci            - ppmmu2
798c2ecf20Sopenharmony_ci            - pp3
808c2ecf20Sopenharmony_ci            - ppmmu3
818c2ecf20Sopenharmony_ci            - pp4
828c2ecf20Sopenharmony_ci            - ppmmu4
838c2ecf20Sopenharmony_ci            - pp5
848c2ecf20Sopenharmony_ci            - ppmmu5
858c2ecf20Sopenharmony_ci            - pp6
868c2ecf20Sopenharmony_ci            - ppmmu6
878c2ecf20Sopenharmony_ci            - pp7
888c2ecf20Sopenharmony_ci            - ppmmu7
898c2ecf20Sopenharmony_ci            - pmu       # Power Management Unit interrupt (optional)
908c2ecf20Sopenharmony_ci            - combined  # stericsson,db8500-mali only
918c2ecf20Sopenharmony_ci
928c2ecf20Sopenharmony_ci  clocks:
938c2ecf20Sopenharmony_ci    maxItems: 2
948c2ecf20Sopenharmony_ci
958c2ecf20Sopenharmony_ci  clock-names:
968c2ecf20Sopenharmony_ci    items:
978c2ecf20Sopenharmony_ci      - const: bus
988c2ecf20Sopenharmony_ci      - const: core
998c2ecf20Sopenharmony_ci
1008c2ecf20Sopenharmony_ci  memory-region: true
1018c2ecf20Sopenharmony_ci
1028c2ecf20Sopenharmony_ci  mali-supply: true
1038c2ecf20Sopenharmony_ci
1048c2ecf20Sopenharmony_ci  opp-table: true
1058c2ecf20Sopenharmony_ci
1068c2ecf20Sopenharmony_ci  power-domains:
1078c2ecf20Sopenharmony_ci    maxItems: 1
1088c2ecf20Sopenharmony_ci
1098c2ecf20Sopenharmony_ci  resets:
1108c2ecf20Sopenharmony_ci    maxItems: 1
1118c2ecf20Sopenharmony_ci
1128c2ecf20Sopenharmony_ci  operating-points-v2: true
1138c2ecf20Sopenharmony_ci
1148c2ecf20Sopenharmony_ci  "#cooling-cells":
1158c2ecf20Sopenharmony_ci    const: 2
1168c2ecf20Sopenharmony_ci
1178c2ecf20Sopenharmony_cirequired:
1188c2ecf20Sopenharmony_ci  - compatible
1198c2ecf20Sopenharmony_ci  - reg
1208c2ecf20Sopenharmony_ci  - interrupts
1218c2ecf20Sopenharmony_ci  - interrupt-names
1228c2ecf20Sopenharmony_ci  - clocks
1238c2ecf20Sopenharmony_ci  - clock-names
1248c2ecf20Sopenharmony_ci
1258c2ecf20Sopenharmony_ciadditionalProperties: false
1268c2ecf20Sopenharmony_ci
1278c2ecf20Sopenharmony_ciallOf:
1288c2ecf20Sopenharmony_ci  - if:
1298c2ecf20Sopenharmony_ci      properties:
1308c2ecf20Sopenharmony_ci        compatible:
1318c2ecf20Sopenharmony_ci          contains:
1328c2ecf20Sopenharmony_ci            enum:
1338c2ecf20Sopenharmony_ci              - allwinner,sun4i-a10-mali
1348c2ecf20Sopenharmony_ci              - allwinner,sun7i-a20-mali
1358c2ecf20Sopenharmony_ci              - allwinner,sun8i-r40-mali
1368c2ecf20Sopenharmony_ci              - allwinner,sun50i-a64-mali
1378c2ecf20Sopenharmony_ci              - allwinner,sun50i-h5-mali
1388c2ecf20Sopenharmony_ci              - amlogic,meson8-mali
1398c2ecf20Sopenharmony_ci              - amlogic,meson8b-mali
1408c2ecf20Sopenharmony_ci              - hisilicon,hi6220-mali
1418c2ecf20Sopenharmony_ci              - mediatek,mt7623-mali
1428c2ecf20Sopenharmony_ci              - rockchip,rk3036-mali
1438c2ecf20Sopenharmony_ci              - rockchip,rk3066-mali
1448c2ecf20Sopenharmony_ci              - rockchip,rk3188-mali
1458c2ecf20Sopenharmony_ci              - rockchip,rk3228-mali
1468c2ecf20Sopenharmony_ci              - rockchip,rk3328-mali
1478c2ecf20Sopenharmony_ci    then:
1488c2ecf20Sopenharmony_ci      required:
1498c2ecf20Sopenharmony_ci        - resets
1508c2ecf20Sopenharmony_ci
1518c2ecf20Sopenharmony_ciexamples:
1528c2ecf20Sopenharmony_ci  - |
1538c2ecf20Sopenharmony_ci    #include <dt-bindings/interrupt-controller/irq.h>
1548c2ecf20Sopenharmony_ci    #include <dt-bindings/interrupt-controller/arm-gic.h>
1558c2ecf20Sopenharmony_ci
1568c2ecf20Sopenharmony_ci    mali: gpu@1c40000 {
1578c2ecf20Sopenharmony_ci      compatible = "allwinner,sun7i-a20-mali", "arm,mali-400";
1588c2ecf20Sopenharmony_ci      reg = <0x01c40000 0x10000>;
1598c2ecf20Sopenharmony_ci      interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>,
1608c2ecf20Sopenharmony_ci             <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>,
1618c2ecf20Sopenharmony_ci             <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>,
1628c2ecf20Sopenharmony_ci             <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
1638c2ecf20Sopenharmony_ci             <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>,
1648c2ecf20Sopenharmony_ci             <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>,
1658c2ecf20Sopenharmony_ci             <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
1668c2ecf20Sopenharmony_ci      interrupt-names = "gp",
1678c2ecf20Sopenharmony_ci            "gpmmu",
1688c2ecf20Sopenharmony_ci            "pp0",
1698c2ecf20Sopenharmony_ci            "ppmmu0",
1708c2ecf20Sopenharmony_ci            "pp1",
1718c2ecf20Sopenharmony_ci            "ppmmu1",
1728c2ecf20Sopenharmony_ci            "pmu";
1738c2ecf20Sopenharmony_ci      clocks = <&ccu 1>, <&ccu 2>;
1748c2ecf20Sopenharmony_ci      clock-names = "bus", "core";
1758c2ecf20Sopenharmony_ci      resets = <&ccu 1>;
1768c2ecf20Sopenharmony_ci      #cooling-cells = <2>;
1778c2ecf20Sopenharmony_ci    };
1788c2ecf20Sopenharmony_ci
1798c2ecf20Sopenharmony_ci...
180