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: 78 type: object 79 80 power-domains: 81 maxItems: 1 82 83 resets: 84 minItems: 1 85 maxItems: 2 86 87 operating-points-v2: true 88 89 "#cooling-cells": 90 const: 2 91 92 dma-coherent: true 93 94 dynamic-power-coefficient: 95 $ref: '/schemas/types.yaml#/definitions/uint32' 96 description: 97 A u32 value that represents the running time dynamic 98 power coefficient in units of uW/MHz/V^2. The 99 coefficient can either be calculated from power 100 measurements or derived by analysis. 101 102 The dynamic power consumption of the GPU is 103 proportional to the square of the Voltage (V) and 104 the clock frequency (f). The coefficient is used to 105 calculate the dynamic power as below - 106 107 Pdyn = dynamic-power-coefficient * V^2 * f 108 109 where voltage is in V, frequency is in MHz. 110 111required: 112 - compatible 113 - reg 114 - interrupts 115 - interrupt-names 116 - clocks 117 118additionalProperties: false 119 120allOf: 121 - if: 122 properties: 123 compatible: 124 contains: 125 const: allwinner,sun50i-h6-mali 126 then: 127 properties: 128 clocks: 129 minItems: 2 130 required: 131 - clock-names 132 - resets 133 - if: 134 properties: 135 compatible: 136 contains: 137 const: amlogic,meson-gxm-mali 138 then: 139 properties: 140 resets: 141 minItems: 2 142 required: 143 - resets 144 145examples: 146 - | 147 #include <dt-bindings/interrupt-controller/irq.h> 148 #include <dt-bindings/interrupt-controller/arm-gic.h> 149 150 gpu@ffa30000 { 151 compatible = "rockchip,rk3288-mali", "arm,mali-t760"; 152 reg = <0xffa30000 0x10000>; 153 interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>, 154 <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>, 155 <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>; 156 interrupt-names = "job", "mmu", "gpu"; 157 clocks = <&cru 0>; 158 mali-supply = <&vdd_gpu>; 159 operating-points-v2 = <&gpu_opp_table>; 160 power-domains = <&power 0>; 161 #cooling-cells = <2>; 162 }; 163 164 gpu_opp_table: opp-table { 165 compatible = "operating-points-v2"; 166 167 opp-533000000 { 168 opp-hz = /bits/ 64 <533000000>; 169 opp-microvolt = <1250000>; 170 }; 171 opp-450000000 { 172 opp-hz = /bits/ 64 <450000000>; 173 opp-microvolt = <1150000>; 174 }; 175 opp-400000000 { 176 opp-hz = /bits/ 64 <400000000>; 177 opp-microvolt = <1125000>; 178 }; 179 opp-350000000 { 180 opp-hz = /bits/ 64 <350000000>; 181 opp-microvolt = <1075000>; 182 }; 183 opp-266000000 { 184 opp-hz = /bits/ 64 <266000000>; 185 opp-microvolt = <1025000>; 186 }; 187 opp-160000000 { 188 opp-hz = /bits/ 64 <160000000>; 189 opp-microvolt = <925000>; 190 }; 191 opp-100000000 { 192 opp-hz = /bits/ 64 <100000000>; 193 opp-microvolt = <912500>; 194 }; 195 }; 196 197... 198