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