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-midgard.yaml# 5c66ec88fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6c66ec88fSEmmanuel Vadot 7c66ec88fSEmmanuel Vadottitle: ARM Mali Midgard GPU 8c66ec88fSEmmanuel Vadot 9c66ec88fSEmmanuel Vadotmaintainers: 10c66ec88fSEmmanuel Vadot - Rob Herring <robh@kernel.org> 11c66ec88fSEmmanuel Vadot 12c66ec88fSEmmanuel Vadotproperties: 13c66ec88fSEmmanuel Vadot $nodename: 14c66ec88fSEmmanuel Vadot pattern: '^gpu@[a-f0-9]+$' 15c66ec88fSEmmanuel Vadot compatible: 16c66ec88fSEmmanuel Vadot oneOf: 17c66ec88fSEmmanuel Vadot - items: 18c66ec88fSEmmanuel Vadot - enum: 19c66ec88fSEmmanuel Vadot - samsung,exynos5250-mali 20c66ec88fSEmmanuel Vadot - const: arm,mali-t604 21c66ec88fSEmmanuel Vadot - items: 22c66ec88fSEmmanuel Vadot - enum: 23c66ec88fSEmmanuel Vadot - samsung,exynos5420-mali 24c66ec88fSEmmanuel Vadot - const: arm,mali-t628 25c66ec88fSEmmanuel Vadot - items: 26c66ec88fSEmmanuel Vadot - enum: 27c66ec88fSEmmanuel Vadot - allwinner,sun50i-h6-mali 28c66ec88fSEmmanuel Vadot - const: arm,mali-t720 29c66ec88fSEmmanuel Vadot - items: 30c66ec88fSEmmanuel Vadot - enum: 31c66ec88fSEmmanuel Vadot - amlogic,meson-gxm-mali 32c66ec88fSEmmanuel Vadot - realtek,rtd1295-mali 33c66ec88fSEmmanuel Vadot - const: arm,mali-t820 34c66ec88fSEmmanuel Vadot - items: 35c66ec88fSEmmanuel Vadot - enum: 36c66ec88fSEmmanuel Vadot - arm,juno-mali 37c66ec88fSEmmanuel Vadot - const: arm,mali-t624 38c66ec88fSEmmanuel Vadot - items: 39c66ec88fSEmmanuel Vadot - enum: 40c66ec88fSEmmanuel Vadot - rockchip,rk3288-mali 41c66ec88fSEmmanuel Vadot - samsung,exynos5433-mali 42c66ec88fSEmmanuel Vadot - const: arm,mali-t760 43c66ec88fSEmmanuel Vadot - items: 44c66ec88fSEmmanuel Vadot - enum: 45*8d13bc63SEmmanuel Vadot - samsung,exynos7-mali 46*8d13bc63SEmmanuel Vadot - const: samsung,exynos5433-mali 47*8d13bc63SEmmanuel Vadot - const: arm,mali-t760 48*8d13bc63SEmmanuel Vadot - items: 49*8d13bc63SEmmanuel Vadot - enum: 50c66ec88fSEmmanuel Vadot - rockchip,rk3399-mali 51c66ec88fSEmmanuel Vadot - const: arm,mali-t860 52c66ec88fSEmmanuel Vadot 53c66ec88fSEmmanuel Vadot # "arm,mali-t830" 54c66ec88fSEmmanuel Vadot # "arm,mali-t880" 55c66ec88fSEmmanuel Vadot 56c66ec88fSEmmanuel Vadot reg: 57c66ec88fSEmmanuel Vadot maxItems: 1 58c66ec88fSEmmanuel Vadot 59c66ec88fSEmmanuel Vadot interrupts: 60c66ec88fSEmmanuel Vadot items: 61c66ec88fSEmmanuel Vadot - description: Job interrupt 62c66ec88fSEmmanuel Vadot - description: MMU interrupt 63c66ec88fSEmmanuel Vadot - description: GPU interrupt 64c66ec88fSEmmanuel Vadot 65c66ec88fSEmmanuel Vadot interrupt-names: 66c66ec88fSEmmanuel Vadot items: 67c66ec88fSEmmanuel Vadot - const: job 68c66ec88fSEmmanuel Vadot - const: mmu 69c66ec88fSEmmanuel Vadot - const: gpu 70c66ec88fSEmmanuel Vadot 71c66ec88fSEmmanuel Vadot clocks: 72c66ec88fSEmmanuel Vadot minItems: 1 73c66ec88fSEmmanuel Vadot maxItems: 2 74c66ec88fSEmmanuel Vadot 75c66ec88fSEmmanuel Vadot clock-names: 76c66ec88fSEmmanuel Vadot minItems: 1 77c66ec88fSEmmanuel Vadot items: 78c66ec88fSEmmanuel Vadot - const: core 79c66ec88fSEmmanuel Vadot - const: bus 80c66ec88fSEmmanuel Vadot 81c66ec88fSEmmanuel Vadot mali-supply: true 827ef62cebSEmmanuel Vadot opp-table: 837ef62cebSEmmanuel Vadot type: object 84c66ec88fSEmmanuel Vadot 85c66ec88fSEmmanuel Vadot power-domains: 86c66ec88fSEmmanuel Vadot maxItems: 1 87c66ec88fSEmmanuel Vadot 88c66ec88fSEmmanuel Vadot resets: 89c66ec88fSEmmanuel Vadot minItems: 1 90c66ec88fSEmmanuel Vadot maxItems: 2 91c66ec88fSEmmanuel Vadot 92c66ec88fSEmmanuel Vadot operating-points-v2: true 93c66ec88fSEmmanuel Vadot 94c66ec88fSEmmanuel Vadot "#cooling-cells": 95c66ec88fSEmmanuel Vadot const: 2 96c66ec88fSEmmanuel Vadot 97c66ec88fSEmmanuel Vadot dma-coherent: true 98c66ec88fSEmmanuel Vadot 995def4c47SEmmanuel Vadot dynamic-power-coefficient: 100f126890aSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 1015def4c47SEmmanuel Vadot description: 1025def4c47SEmmanuel Vadot A u32 value that represents the running time dynamic 1035def4c47SEmmanuel Vadot power coefficient in units of uW/MHz/V^2. The 1045def4c47SEmmanuel Vadot coefficient can either be calculated from power 1055def4c47SEmmanuel Vadot measurements or derived by analysis. 1065def4c47SEmmanuel Vadot 1075def4c47SEmmanuel Vadot The dynamic power consumption of the GPU is 1085def4c47SEmmanuel Vadot proportional to the square of the Voltage (V) and 1095def4c47SEmmanuel Vadot the clock frequency (f). The coefficient is used to 1105def4c47SEmmanuel Vadot calculate the dynamic power as below - 1115def4c47SEmmanuel Vadot 1125def4c47SEmmanuel Vadot Pdyn = dynamic-power-coefficient * V^2 * f 1135def4c47SEmmanuel Vadot 1145def4c47SEmmanuel Vadot where voltage is in V, frequency is in MHz. 1155def4c47SEmmanuel Vadot 116c66ec88fSEmmanuel Vadotrequired: 117c66ec88fSEmmanuel Vadot - compatible 118c66ec88fSEmmanuel Vadot - reg 119c66ec88fSEmmanuel Vadot - interrupts 120c66ec88fSEmmanuel Vadot - interrupt-names 121c66ec88fSEmmanuel Vadot - clocks 122c66ec88fSEmmanuel Vadot 123c66ec88fSEmmanuel VadotadditionalProperties: false 124c66ec88fSEmmanuel Vadot 125c66ec88fSEmmanuel VadotallOf: 126c66ec88fSEmmanuel Vadot - if: 127c66ec88fSEmmanuel Vadot properties: 128c66ec88fSEmmanuel Vadot compatible: 129c66ec88fSEmmanuel Vadot contains: 130c66ec88fSEmmanuel Vadot const: allwinner,sun50i-h6-mali 131c66ec88fSEmmanuel Vadot then: 132c66ec88fSEmmanuel Vadot properties: 133c66ec88fSEmmanuel Vadot clocks: 134c66ec88fSEmmanuel Vadot minItems: 2 135c66ec88fSEmmanuel Vadot required: 136c66ec88fSEmmanuel Vadot - clock-names 137c66ec88fSEmmanuel Vadot - resets 138c66ec88fSEmmanuel Vadot - if: 139c66ec88fSEmmanuel Vadot properties: 140c66ec88fSEmmanuel Vadot compatible: 141c66ec88fSEmmanuel Vadot contains: 142c66ec88fSEmmanuel Vadot const: amlogic,meson-gxm-mali 143c66ec88fSEmmanuel Vadot then: 144c66ec88fSEmmanuel Vadot properties: 145c66ec88fSEmmanuel Vadot resets: 146c66ec88fSEmmanuel Vadot minItems: 2 147c66ec88fSEmmanuel Vadot required: 148c66ec88fSEmmanuel Vadot - resets 149c66ec88fSEmmanuel Vadot 150c66ec88fSEmmanuel Vadotexamples: 151c66ec88fSEmmanuel Vadot - | 152c66ec88fSEmmanuel Vadot #include <dt-bindings/interrupt-controller/irq.h> 153c66ec88fSEmmanuel Vadot #include <dt-bindings/interrupt-controller/arm-gic.h> 154c66ec88fSEmmanuel Vadot 155c66ec88fSEmmanuel Vadot gpu@ffa30000 { 156c66ec88fSEmmanuel Vadot compatible = "rockchip,rk3288-mali", "arm,mali-t760"; 157c66ec88fSEmmanuel Vadot reg = <0xffa30000 0x10000>; 158c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>, 159c66ec88fSEmmanuel Vadot <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>, 160c66ec88fSEmmanuel Vadot <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>; 161c66ec88fSEmmanuel Vadot interrupt-names = "job", "mmu", "gpu"; 162c66ec88fSEmmanuel Vadot clocks = <&cru 0>; 163c66ec88fSEmmanuel Vadot mali-supply = <&vdd_gpu>; 164c66ec88fSEmmanuel Vadot operating-points-v2 = <&gpu_opp_table>; 165c66ec88fSEmmanuel Vadot power-domains = <&power 0>; 166c66ec88fSEmmanuel Vadot #cooling-cells = <2>; 167c66ec88fSEmmanuel Vadot }; 168c66ec88fSEmmanuel Vadot 169354d7675SEmmanuel Vadot gpu_opp_table: opp-table { 170c66ec88fSEmmanuel Vadot compatible = "operating-points-v2"; 171c66ec88fSEmmanuel Vadot 172c66ec88fSEmmanuel Vadot opp-533000000 { 173c66ec88fSEmmanuel Vadot opp-hz = /bits/ 64 <533000000>; 174c66ec88fSEmmanuel Vadot opp-microvolt = <1250000>; 175c66ec88fSEmmanuel Vadot }; 176c66ec88fSEmmanuel Vadot opp-450000000 { 177c66ec88fSEmmanuel Vadot opp-hz = /bits/ 64 <450000000>; 178c66ec88fSEmmanuel Vadot opp-microvolt = <1150000>; 179c66ec88fSEmmanuel Vadot }; 180c66ec88fSEmmanuel Vadot opp-400000000 { 181c66ec88fSEmmanuel Vadot opp-hz = /bits/ 64 <400000000>; 182c66ec88fSEmmanuel Vadot opp-microvolt = <1125000>; 183c66ec88fSEmmanuel Vadot }; 184c66ec88fSEmmanuel Vadot opp-350000000 { 185c66ec88fSEmmanuel Vadot opp-hz = /bits/ 64 <350000000>; 186c66ec88fSEmmanuel Vadot opp-microvolt = <1075000>; 187c66ec88fSEmmanuel Vadot }; 188c66ec88fSEmmanuel Vadot opp-266000000 { 189c66ec88fSEmmanuel Vadot opp-hz = /bits/ 64 <266000000>; 190c66ec88fSEmmanuel Vadot opp-microvolt = <1025000>; 191c66ec88fSEmmanuel Vadot }; 192c66ec88fSEmmanuel Vadot opp-160000000 { 193c66ec88fSEmmanuel Vadot opp-hz = /bits/ 64 <160000000>; 194c66ec88fSEmmanuel Vadot opp-microvolt = <925000>; 195c66ec88fSEmmanuel Vadot }; 196c66ec88fSEmmanuel Vadot opp-100000000 { 197c66ec88fSEmmanuel Vadot opp-hz = /bits/ 64 <100000000>; 198c66ec88fSEmmanuel Vadot opp-microvolt = <912500>; 199c66ec88fSEmmanuel Vadot }; 200c66ec88fSEmmanuel Vadot }; 201c66ec88fSEmmanuel Vadot 202c66ec88fSEmmanuel Vadot... 203