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 55*e33dc2f3SLukasz Luba dynamic-power-coefficient: 56*e33dc2f3SLukasz Luba $ref: '/schemas/types.yaml#/definitions/uint32' 57*e33dc2f3SLukasz Luba description: 58*e33dc2f3SLukasz Luba A u32 value that represents the running time dynamic 59*e33dc2f3SLukasz Luba power coefficient in units of uW/MHz/V^2. The 60*e33dc2f3SLukasz Luba coefficient can either be calculated from power 61*e33dc2f3SLukasz Luba measurements or derived by analysis. 62*e33dc2f3SLukasz Luba 63*e33dc2f3SLukasz Luba The dynamic power consumption of the GPU is 64*e33dc2f3SLukasz Luba proportional to the square of the Voltage (V) and 65*e33dc2f3SLukasz Luba the clock frequency (f). The coefficient is used to 66*e33dc2f3SLukasz Luba calculate the dynamic power as below - 67*e33dc2f3SLukasz Luba 68*e33dc2f3SLukasz Luba Pdyn = dynamic-power-coefficient * V^2 * f 69*e33dc2f3SLukasz Luba 70*e33dc2f3SLukasz Luba where voltage is in V, frequency is in MHz. 71*e33dc2f3SLukasz Luba 72842b4aecSRob Herringrequired: 73842b4aecSRob Herring - compatible 74842b4aecSRob Herring - reg 75842b4aecSRob Herring - interrupts 76842b4aecSRob Herring - interrupt-names 77842b4aecSRob Herring - clocks 78842b4aecSRob Herring 797f464532SRob HerringadditionalProperties: false 807f464532SRob Herring 81842b4aecSRob HerringallOf: 82842b4aecSRob Herring - if: 83842b4aecSRob Herring properties: 84842b4aecSRob Herring compatible: 85842b4aecSRob Herring contains: 86842b4aecSRob Herring const: amlogic,meson-g12a-mali 87842b4aecSRob Herring then: 88842b4aecSRob Herring required: 89842b4aecSRob Herring - resets 90842b4aecSRob Herring 91842b4aecSRob Herringexamples: 92842b4aecSRob Herring - | 93842b4aecSRob Herring #include <dt-bindings/interrupt-controller/irq.h> 94842b4aecSRob Herring #include <dt-bindings/interrupt-controller/arm-gic.h> 95842b4aecSRob Herring 96842b4aecSRob Herring gpu@ffe40000 { 97842b4aecSRob Herring compatible = "amlogic,meson-g12a-mali", "arm,mali-bifrost"; 98842b4aecSRob Herring reg = <0xffe40000 0x10000>; 99842b4aecSRob Herring interrupts = <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>, 100842b4aecSRob Herring <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>, 101842b4aecSRob Herring <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>; 102842b4aecSRob Herring interrupt-names = "job", "mmu", "gpu"; 103842b4aecSRob Herring clocks = <&clk 1>; 104842b4aecSRob Herring mali-supply = <&vdd_gpu>; 105842b4aecSRob Herring operating-points-v2 = <&gpu_opp_table>; 106842b4aecSRob Herring resets = <&reset 0>, <&reset 1>; 107842b4aecSRob Herring }; 108842b4aecSRob Herring 109842b4aecSRob Herring gpu_opp_table: opp_table0 { 110842b4aecSRob Herring compatible = "operating-points-v2"; 111842b4aecSRob Herring 11251a21e0eSRob Herring opp-533000000 { 113842b4aecSRob Herring opp-hz = /bits/ 64 <533000000>; 114842b4aecSRob Herring opp-microvolt = <1250000>; 115842b4aecSRob Herring }; 11651a21e0eSRob Herring opp-450000000 { 117842b4aecSRob Herring opp-hz = /bits/ 64 <450000000>; 118842b4aecSRob Herring opp-microvolt = <1150000>; 119842b4aecSRob Herring }; 12051a21e0eSRob Herring opp-400000000 { 121842b4aecSRob Herring opp-hz = /bits/ 64 <400000000>; 122842b4aecSRob Herring opp-microvolt = <1125000>; 123842b4aecSRob Herring }; 12451a21e0eSRob Herring opp-350000000 { 125842b4aecSRob Herring opp-hz = /bits/ 64 <350000000>; 126842b4aecSRob Herring opp-microvolt = <1075000>; 127842b4aecSRob Herring }; 12851a21e0eSRob Herring opp-266000000 { 129842b4aecSRob Herring opp-hz = /bits/ 64 <266000000>; 130842b4aecSRob Herring opp-microvolt = <1025000>; 131842b4aecSRob Herring }; 13251a21e0eSRob Herring opp-160000000 { 133842b4aecSRob Herring opp-hz = /bits/ 64 <160000000>; 134842b4aecSRob Herring opp-microvolt = <925000>; 135842b4aecSRob Herring }; 13651a21e0eSRob Herring opp-100000000 { 137842b4aecSRob Herring opp-hz = /bits/ 64 <100000000>; 138842b4aecSRob Herring opp-microvolt = <912500>; 139842b4aecSRob Herring }; 140842b4aecSRob Herring }; 141842b4aecSRob Herring 142842b4aecSRob Herring... 143