1# SPDX-License-Identifier: GPL-2.0-only 2%YAML 1.2 3--- 4$id: http://devicetree.org/schemas/gpu/arm,mali-bifrost.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: ARM Mali Bifrost GPU 8 9maintainers: 10 - Rob Herring <robh@kernel.org> 11 12properties: 13 $nodename: 14 pattern: '^gpu@[a-f0-9]+$' 15 16 compatible: 17 items: 18 - enum: 19 - amlogic,meson-g12a-mali 20 - mediatek,mt8183-mali 21 - realtek,rtd1619-mali 22 - rockchip,px30-mali 23 - const: arm,mali-bifrost # Mali Bifrost GPU model/revision is fully discoverable 24 25 reg: 26 maxItems: 1 27 28 interrupts: 29 items: 30 - description: Job interrupt 31 - description: MMU interrupt 32 - description: GPU interrupt 33 34 interrupt-names: 35 items: 36 - const: job 37 - const: mmu 38 - const: gpu 39 40 clocks: 41 maxItems: 1 42 43 mali-supply: true 44 45 sram-supply: true 46 47 operating-points-v2: true 48 49 power-domains: 50 minItems: 1 51 maxItems: 3 52 53 resets: 54 maxItems: 2 55 56 "#cooling-cells": 57 const: 2 58 59 dynamic-power-coefficient: 60 $ref: '/schemas/types.yaml#/definitions/uint32' 61 description: 62 A u32 value that represents the running time dynamic 63 power coefficient in units of uW/MHz/V^2. The 64 coefficient can either be calculated from power 65 measurements or derived by analysis. 66 67 The dynamic power consumption of the GPU is 68 proportional to the square of the Voltage (V) and 69 the clock frequency (f). The coefficient is used to 70 calculate the dynamic power as below - 71 72 Pdyn = dynamic-power-coefficient * V^2 * f 73 74 where voltage is in V, frequency is in MHz. 75 76 dma-coherent: true 77 78required: 79 - compatible 80 - reg 81 - interrupts 82 - interrupt-names 83 - clocks 84 85additionalProperties: false 86 87allOf: 88 - if: 89 properties: 90 compatible: 91 contains: 92 const: amlogic,meson-g12a-mali 93 then: 94 required: 95 - resets 96 - if: 97 properties: 98 compatible: 99 contains: 100 const: mediatek,mt8183-mali 101 then: 102 properties: 103 power-domains: 104 minItems: 3 105 power-domain-names: 106 items: 107 - const: core0 108 - const: core1 109 - const: core2 110 111 required: 112 - sram-supply 113 - power-domains 114 - power-domain-names 115 else: 116 properties: 117 power-domains: 118 maxItems: 1 119 sram-supply: false 120 121examples: 122 - | 123 #include <dt-bindings/interrupt-controller/irq.h> 124 #include <dt-bindings/interrupt-controller/arm-gic.h> 125 126 gpu@ffe40000 { 127 compatible = "amlogic,meson-g12a-mali", "arm,mali-bifrost"; 128 reg = <0xffe40000 0x10000>; 129 interrupts = <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>, 130 <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>, 131 <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>; 132 interrupt-names = "job", "mmu", "gpu"; 133 clocks = <&clk 1>; 134 mali-supply = <&vdd_gpu>; 135 operating-points-v2 = <&gpu_opp_table>; 136 resets = <&reset 0>, <&reset 1>; 137 }; 138 139 gpu_opp_table: opp-table { 140 compatible = "operating-points-v2"; 141 142 opp-533000000 { 143 opp-hz = /bits/ 64 <533000000>; 144 opp-microvolt = <1250000>; 145 }; 146 opp-450000000 { 147 opp-hz = /bits/ 64 <450000000>; 148 opp-microvolt = <1150000>; 149 }; 150 opp-400000000 { 151 opp-hz = /bits/ 64 <400000000>; 152 opp-microvolt = <1125000>; 153 }; 154 opp-350000000 { 155 opp-hz = /bits/ 64 <350000000>; 156 opp-microvolt = <1075000>; 157 }; 158 opp-266000000 { 159 opp-hz = /bits/ 64 <266000000>; 160 opp-microvolt = <1025000>; 161 }; 162 opp-160000000 { 163 opp-hz = /bits/ 64 <160000000>; 164 opp-microvolt = <925000>; 165 }; 166 opp-100000000 { 167 opp-hz = /bits/ 64 <100000000>; 168 opp-microvolt = <912500>; 169 }; 170 }; 171 172... 173