1 # SPDX-License-Identifier: GPL-2.0-only 1 # SPDX-License-Identifier: GPL-2.0-only 2 %YAML 1.2 2 %YAML 1.2 3 --- 3 --- 4 $id: http://devicetree.org/schemas/gpu/arm,mal 4 $id: http://devicetree.org/schemas/gpu/arm,mali-midgard.yaml# 5 $schema: http://devicetree.org/meta-schemas/co 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 6 6 7 title: ARM Mali Midgard GPU 7 title: ARM Mali Midgard GPU 8 8 9 maintainers: 9 maintainers: 10 - Rob Herring <robh@kernel.org> 10 - Rob Herring <robh@kernel.org> 11 11 12 properties: 12 properties: 13 $nodename: 13 $nodename: 14 pattern: '^gpu@[a-f0-9]+$' 14 pattern: '^gpu@[a-f0-9]+$' 15 compatible: 15 compatible: 16 oneOf: 16 oneOf: 17 - items: 17 - items: 18 - enum: 18 - enum: 19 - samsung,exynos5250-mali 19 - samsung,exynos5250-mali 20 - const: arm,mali-t604 20 - const: arm,mali-t604 21 - items: 21 - items: 22 - enum: 22 - enum: 23 - samsung,exynos5420-mali 23 - samsung,exynos5420-mali 24 - const: arm,mali-t628 24 - const: arm,mali-t628 25 - items: 25 - items: 26 - enum: 26 - enum: 27 - allwinner,sun50i-h6-mali 27 - allwinner,sun50i-h6-mali 28 - const: arm,mali-t720 28 - const: arm,mali-t720 29 - items: 29 - items: 30 - enum: 30 - enum: 31 - amlogic,meson-gxm-mali 31 - amlogic,meson-gxm-mali 32 - realtek,rtd1295-mali 32 - realtek,rtd1295-mali 33 - const: arm,mali-t820 33 - const: arm,mali-t820 34 - items: 34 - items: 35 - enum: 35 - enum: 36 - arm,juno-mali 36 - arm,juno-mali 37 - const: arm,mali-t624 37 - const: arm,mali-t624 38 - items: 38 - items: 39 - enum: 39 - enum: 40 - rockchip,rk3288-mali 40 - rockchip,rk3288-mali 41 - samsung,exynos5433-mali 41 - samsung,exynos5433-mali 42 - const: arm,mali-t760 42 - const: arm,mali-t760 43 - items: 43 - items: 44 - enum: 44 - enum: 45 - samsung,exynos7-mali << 46 - const: samsung,exynos5433-mali << 47 - const: arm,mali-t760 << 48 - items: << 49 - enum: << 50 - rockchip,rk3399-mali 45 - rockchip,rk3399-mali 51 - const: arm,mali-t860 46 - const: arm,mali-t860 52 47 53 # "arm,mali-t830" 48 # "arm,mali-t830" 54 # "arm,mali-t880" 49 # "arm,mali-t880" 55 50 56 reg: 51 reg: 57 maxItems: 1 52 maxItems: 1 58 53 59 interrupts: 54 interrupts: 60 items: 55 items: 61 - description: Job interrupt 56 - description: Job interrupt 62 - description: MMU interrupt 57 - description: MMU interrupt 63 - description: GPU interrupt 58 - description: GPU interrupt 64 59 65 interrupt-names: 60 interrupt-names: 66 items: 61 items: 67 - const: job 62 - const: job 68 - const: mmu 63 - const: mmu 69 - const: gpu 64 - const: gpu 70 65 71 clocks: 66 clocks: 72 minItems: 1 67 minItems: 1 73 maxItems: 2 68 maxItems: 2 74 69 75 clock-names: 70 clock-names: 76 minItems: 1 71 minItems: 1 77 items: 72 items: 78 - const: core 73 - const: core 79 - const: bus 74 - const: bus 80 75 81 mali-supply: true 76 mali-supply: true 82 opp-table: !! 77 opp-table: true 83 type: object << 84 78 85 power-domains: 79 power-domains: 86 maxItems: 1 80 maxItems: 1 87 81 88 resets: 82 resets: 89 minItems: 1 83 minItems: 1 90 maxItems: 2 84 maxItems: 2 91 85 92 operating-points-v2: true 86 operating-points-v2: true 93 87 94 "#cooling-cells": 88 "#cooling-cells": 95 const: 2 89 const: 2 96 90 97 dma-coherent: true 91 dma-coherent: true 98 92 99 dynamic-power-coefficient: 93 dynamic-power-coefficient: 100 $ref: /schemas/types.yaml#/definitions/uin !! 94 $ref: '/schemas/types.yaml#/definitions/uint32' 101 description: 95 description: 102 A u32 value that represents the running 96 A u32 value that represents the running time dynamic 103 power coefficient in units of uW/MHz/V^2 97 power coefficient in units of uW/MHz/V^2. The 104 coefficient can either be calculated fro 98 coefficient can either be calculated from power 105 measurements or derived by analysis. 99 measurements or derived by analysis. 106 100 107 The dynamic power consumption of the GPU 101 The dynamic power consumption of the GPU is 108 proportional to the square of the Voltag 102 proportional to the square of the Voltage (V) and 109 the clock frequency (f). The coefficient 103 the clock frequency (f). The coefficient is used to 110 calculate the dynamic power as below - 104 calculate the dynamic power as below - 111 105 112 Pdyn = dynamic-power-coefficient * V^2 * 106 Pdyn = dynamic-power-coefficient * V^2 * f 113 107 114 where voltage is in V, frequency is in M 108 where voltage is in V, frequency is in MHz. 115 109 116 required: 110 required: 117 - compatible 111 - compatible 118 - reg 112 - reg 119 - interrupts 113 - interrupts 120 - interrupt-names 114 - interrupt-names 121 - clocks 115 - clocks 122 116 123 additionalProperties: false 117 additionalProperties: false 124 118 125 allOf: 119 allOf: 126 - if: 120 - if: 127 properties: 121 properties: 128 compatible: 122 compatible: 129 contains: 123 contains: 130 const: allwinner,sun50i-h6-mali 124 const: allwinner,sun50i-h6-mali 131 then: 125 then: 132 properties: 126 properties: 133 clocks: 127 clocks: 134 minItems: 2 128 minItems: 2 135 required: 129 required: 136 - clock-names 130 - clock-names 137 - resets 131 - resets 138 - if: 132 - if: 139 properties: 133 properties: 140 compatible: 134 compatible: 141 contains: 135 contains: 142 const: amlogic,meson-gxm-mali 136 const: amlogic,meson-gxm-mali 143 then: 137 then: 144 properties: 138 properties: 145 resets: 139 resets: 146 minItems: 2 140 minItems: 2 147 required: 141 required: 148 - resets 142 - resets 149 143 150 examples: 144 examples: 151 - | 145 - | 152 #include <dt-bindings/interrupt-controller 146 #include <dt-bindings/interrupt-controller/irq.h> 153 #include <dt-bindings/interrupt-controller 147 #include <dt-bindings/interrupt-controller/arm-gic.h> 154 148 155 gpu@ffa30000 { 149 gpu@ffa30000 { 156 compatible = "rockchip,rk3288-mali", "ar 150 compatible = "rockchip,rk3288-mali", "arm,mali-t760"; 157 reg = <0xffa30000 0x10000>; 151 reg = <0xffa30000 0x10000>; 158 interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_H 152 interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>, 159 <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>, 153 <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>, 160 <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>; 154 <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>; 161 interrupt-names = "job", "mmu", "gpu"; 155 interrupt-names = "job", "mmu", "gpu"; 162 clocks = <&cru 0>; 156 clocks = <&cru 0>; 163 mali-supply = <&vdd_gpu>; 157 mali-supply = <&vdd_gpu>; 164 operating-points-v2 = <&gpu_opp_table>; 158 operating-points-v2 = <&gpu_opp_table>; 165 power-domains = <&power 0>; 159 power-domains = <&power 0>; 166 #cooling-cells = <2>; 160 #cooling-cells = <2>; 167 }; 161 }; 168 162 169 gpu_opp_table: opp-table { !! 163 gpu_opp_table: opp_table0 { 170 compatible = "operating-points-v2"; 164 compatible = "operating-points-v2"; 171 165 172 opp-533000000 { 166 opp-533000000 { 173 opp-hz = /bits/ 64 <533000000>; 167 opp-hz = /bits/ 64 <533000000>; 174 opp-microvolt = <1250000>; 168 opp-microvolt = <1250000>; 175 }; 169 }; 176 opp-450000000 { 170 opp-450000000 { 177 opp-hz = /bits/ 64 <450000000>; 171 opp-hz = /bits/ 64 <450000000>; 178 opp-microvolt = <1150000>; 172 opp-microvolt = <1150000>; 179 }; 173 }; 180 opp-400000000 { 174 opp-400000000 { 181 opp-hz = /bits/ 64 <400000000>; 175 opp-hz = /bits/ 64 <400000000>; 182 opp-microvolt = <1125000>; 176 opp-microvolt = <1125000>; 183 }; 177 }; 184 opp-350000000 { 178 opp-350000000 { 185 opp-hz = /bits/ 64 <350000000>; 179 opp-hz = /bits/ 64 <350000000>; 186 opp-microvolt = <1075000>; 180 opp-microvolt = <1075000>; 187 }; 181 }; 188 opp-266000000 { 182 opp-266000000 { 189 opp-hz = /bits/ 64 <266000000>; 183 opp-hz = /bits/ 64 <266000000>; 190 opp-microvolt = <1025000>; 184 opp-microvolt = <1025000>; 191 }; 185 }; 192 opp-160000000 { 186 opp-160000000 { 193 opp-hz = /bits/ 64 <160000000>; 187 opp-hz = /bits/ 64 <160000000>; 194 opp-microvolt = <925000>; 188 opp-microvolt = <925000>; 195 }; 189 }; 196 opp-100000000 { 190 opp-100000000 { 197 opp-hz = /bits/ 64 <100000000>; 191 opp-hz = /bits/ 64 <100000000>; 198 opp-microvolt = <912500>; 192 opp-microvolt = <912500>; 199 }; 193 }; 200 }; 194 }; 201 195 202 ... 196 ...
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.