1842b4aecSRob Herring# SPDX-License-Identifier: GPL-2.0-only 2842b4aecSRob Herring%YAML 1.2 3842b4aecSRob Herring--- 4842b4aecSRob Herring$id: http://devicetree.org/schemas/gpu/arm,mali-bifrost.yaml# 5842b4aecSRob Herring$schema: http://devicetree.org/meta-schemas/core.yaml# 6842b4aecSRob Herring 7842b4aecSRob Herringtitle: ARM Mali Bifrost GPU 8842b4aecSRob Herring 9842b4aecSRob Herringmaintainers: 10842b4aecSRob Herring - Rob Herring <robh@kernel.org> 11842b4aecSRob Herring 12842b4aecSRob Herringproperties: 13842b4aecSRob Herring $nodename: 14842b4aecSRob Herring pattern: '^gpu@[a-f0-9]+$' 15842b4aecSRob Herring 16842b4aecSRob Herring compatible: 17842b4aecSRob Herring items: 18842b4aecSRob Herring - enum: 19842b4aecSRob Herring - amlogic,meson-g12a-mali 200211b71cSAndreas Färber - realtek,rtd1619-mali 21ad848dd5SHeiko Stuebner - rockchip,px30-mali 22842b4aecSRob Herring - const: arm,mali-bifrost # Mali Bifrost GPU model/revision is fully discoverable 23842b4aecSRob Herring 24842b4aecSRob Herring reg: 25842b4aecSRob Herring maxItems: 1 26842b4aecSRob Herring 27842b4aecSRob Herring interrupts: 28842b4aecSRob Herring items: 29842b4aecSRob Herring - description: Job interrupt 30842b4aecSRob Herring - description: MMU interrupt 31842b4aecSRob Herring - description: GPU interrupt 32842b4aecSRob Herring 33842b4aecSRob Herring interrupt-names: 34842b4aecSRob Herring items: 35842b4aecSRob Herring - const: job 36842b4aecSRob Herring - const: mmu 37842b4aecSRob Herring - const: gpu 38842b4aecSRob Herring 39842b4aecSRob Herring clocks: 40842b4aecSRob Herring maxItems: 1 41842b4aecSRob Herring 42f3dde260SRob Herring mali-supply: true 43842b4aecSRob Herring 44842b4aecSRob Herring operating-points-v2: true 45842b4aecSRob Herring 462c905f6cSJohan Jonker power-domains: 472c905f6cSJohan Jonker maxItems: 1 482c905f6cSJohan Jonker 490d9a302dSRob Herring resets: 500d9a302dSRob Herring maxItems: 2 510d9a302dSRob Herring 522c905f6cSJohan Jonker "#cooling-cells": 532c905f6cSJohan Jonker const: 2 542c905f6cSJohan Jonker 55e33dc2f3SLukasz Luba dynamic-power-coefficient: 56e33dc2f3SLukasz Luba $ref: '/schemas/types.yaml#/definitions/uint32' 57e33dc2f3SLukasz Luba description: 58e33dc2f3SLukasz Luba A u32 value that represents the running time dynamic 59e33dc2f3SLukasz Luba power coefficient in units of uW/MHz/V^2. The 60e33dc2f3SLukasz Luba coefficient can either be calculated from power 61e33dc2f3SLukasz Luba measurements or derived by analysis. 62e33dc2f3SLukasz Luba 63e33dc2f3SLukasz Luba The dynamic power consumption of the GPU is 64e33dc2f3SLukasz Luba proportional to the square of the Voltage (V) and 65e33dc2f3SLukasz Luba the clock frequency (f). The coefficient is used to 66e33dc2f3SLukasz Luba calculate the dynamic power as below - 67e33dc2f3SLukasz Luba 68e33dc2f3SLukasz Luba Pdyn = dynamic-power-coefficient * V^2 * f 69e33dc2f3SLukasz Luba 70e33dc2f3SLukasz Luba where voltage is in V, frequency is in MHz. 71e33dc2f3SLukasz Luba 72*3f9a3345SKevin Hilman dma-coherent: true 73*3f9a3345SKevin Hilman 74842b4aecSRob Herringrequired: 75842b4aecSRob Herring - compatible 76842b4aecSRob Herring - reg 77842b4aecSRob Herring - interrupts 78842b4aecSRob Herring - interrupt-names 79842b4aecSRob Herring - clocks 80842b4aecSRob Herring 817f464532SRob HerringadditionalProperties: false 827f464532SRob Herring 83842b4aecSRob HerringallOf: 84842b4aecSRob Herring - if: 85842b4aecSRob Herring properties: 86842b4aecSRob Herring compatible: 87842b4aecSRob Herring contains: 88842b4aecSRob Herring const: amlogic,meson-g12a-mali 89842b4aecSRob Herring then: 90842b4aecSRob Herring required: 91842b4aecSRob Herring - resets 92842b4aecSRob Herring 93842b4aecSRob Herringexamples: 94842b4aecSRob Herring - | 95842b4aecSRob Herring #include <dt-bindings/interrupt-controller/irq.h> 96842b4aecSRob Herring #include <dt-bindings/interrupt-controller/arm-gic.h> 97842b4aecSRob Herring 98842b4aecSRob Herring gpu@ffe40000 { 99842b4aecSRob Herring compatible = "amlogic,meson-g12a-mali", "arm,mali-bifrost"; 100842b4aecSRob Herring reg = <0xffe40000 0x10000>; 101842b4aecSRob Herring interrupts = <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>, 102842b4aecSRob Herring <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>, 103842b4aecSRob Herring <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>; 104842b4aecSRob Herring interrupt-names = "job", "mmu", "gpu"; 105842b4aecSRob Herring clocks = <&clk 1>; 106842b4aecSRob Herring mali-supply = <&vdd_gpu>; 107842b4aecSRob Herring operating-points-v2 = <&gpu_opp_table>; 108842b4aecSRob Herring resets = <&reset 0>, <&reset 1>; 109842b4aecSRob Herring }; 110842b4aecSRob Herring 111842b4aecSRob Herring gpu_opp_table: opp_table0 { 112842b4aecSRob Herring compatible = "operating-points-v2"; 113842b4aecSRob Herring 11451a21e0eSRob Herring opp-533000000 { 115842b4aecSRob Herring opp-hz = /bits/ 64 <533000000>; 116842b4aecSRob Herring opp-microvolt = <1250000>; 117842b4aecSRob Herring }; 11851a21e0eSRob Herring opp-450000000 { 119842b4aecSRob Herring opp-hz = /bits/ 64 <450000000>; 120842b4aecSRob Herring opp-microvolt = <1150000>; 121842b4aecSRob Herring }; 12251a21e0eSRob Herring opp-400000000 { 123842b4aecSRob Herring opp-hz = /bits/ 64 <400000000>; 124842b4aecSRob Herring opp-microvolt = <1125000>; 125842b4aecSRob Herring }; 12651a21e0eSRob Herring opp-350000000 { 127842b4aecSRob Herring opp-hz = /bits/ 64 <350000000>; 128842b4aecSRob Herring opp-microvolt = <1075000>; 129842b4aecSRob Herring }; 13051a21e0eSRob Herring opp-266000000 { 131842b4aecSRob Herring opp-hz = /bits/ 64 <266000000>; 132842b4aecSRob Herring opp-microvolt = <1025000>; 133842b4aecSRob Herring }; 13451a21e0eSRob Herring opp-160000000 { 135842b4aecSRob Herring opp-hz = /bits/ 64 <160000000>; 136842b4aecSRob Herring opp-microvolt = <925000>; 137842b4aecSRob Herring }; 13851a21e0eSRob Herring opp-100000000 { 139842b4aecSRob Herring opp-hz = /bits/ 64 <100000000>; 140842b4aecSRob Herring opp-microvolt = <912500>; 141842b4aecSRob Herring }; 142842b4aecSRob Herring }; 143842b4aecSRob Herring 144842b4aecSRob Herring... 145