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