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: 83 type: object 78 type: object 84 79 85 power-domains: 80 power-domains: 86 maxItems: 1 81 maxItems: 1 87 82 88 resets: 83 resets: 89 minItems: 1 84 minItems: 1 90 maxItems: 2 85 maxItems: 2 91 86 92 operating-points-v2: true 87 operating-points-v2: true 93 88 94 "#cooling-cells": 89 "#cooling-cells": 95 const: 2 90 const: 2 96 91 97 dma-coherent: true 92 dma-coherent: true 98 93 99 dynamic-power-coefficient: 94 dynamic-power-coefficient: 100 $ref: /schemas/types.yaml#/definitions/uin 95 $ref: /schemas/types.yaml#/definitions/uint32 101 description: 96 description: 102 A u32 value that represents the running 97 A u32 value that represents the running time dynamic 103 power coefficient in units of uW/MHz/V^2 98 power coefficient in units of uW/MHz/V^2. The 104 coefficient can either be calculated fro 99 coefficient can either be calculated from power 105 measurements or derived by analysis. 100 measurements or derived by analysis. 106 101 107 The dynamic power consumption of the GPU 102 The dynamic power consumption of the GPU is 108 proportional to the square of the Voltag 103 proportional to the square of the Voltage (V) and 109 the clock frequency (f). The coefficient 104 the clock frequency (f). The coefficient is used to 110 calculate the dynamic power as below - 105 calculate the dynamic power as below - 111 106 112 Pdyn = dynamic-power-coefficient * V^2 * 107 Pdyn = dynamic-power-coefficient * V^2 * f 113 108 114 where voltage is in V, frequency is in M 109 where voltage is in V, frequency is in MHz. 115 110 116 required: 111 required: 117 - compatible 112 - compatible 118 - reg 113 - reg 119 - interrupts 114 - interrupts 120 - interrupt-names 115 - interrupt-names 121 - clocks 116 - clocks 122 117 123 additionalProperties: false 118 additionalProperties: false 124 119 125 allOf: 120 allOf: 126 - if: 121 - if: 127 properties: 122 properties: 128 compatible: 123 compatible: 129 contains: 124 contains: 130 const: allwinner,sun50i-h6-mali 125 const: allwinner,sun50i-h6-mali 131 then: 126 then: 132 properties: 127 properties: 133 clocks: 128 clocks: 134 minItems: 2 129 minItems: 2 135 required: 130 required: 136 - clock-names 131 - clock-names 137 - resets 132 - resets 138 - if: 133 - if: 139 properties: 134 properties: 140 compatible: 135 compatible: 141 contains: 136 contains: 142 const: amlogic,meson-gxm-mali 137 const: amlogic,meson-gxm-mali 143 then: 138 then: 144 properties: 139 properties: 145 resets: 140 resets: 146 minItems: 2 141 minItems: 2 147 required: 142 required: 148 - resets 143 - resets 149 144 150 examples: 145 examples: 151 - | 146 - | 152 #include <dt-bindings/interrupt-controller 147 #include <dt-bindings/interrupt-controller/irq.h> 153 #include <dt-bindings/interrupt-controller 148 #include <dt-bindings/interrupt-controller/arm-gic.h> 154 149 155 gpu@ffa30000 { 150 gpu@ffa30000 { 156 compatible = "rockchip,rk3288-mali", "ar 151 compatible = "rockchip,rk3288-mali", "arm,mali-t760"; 157 reg = <0xffa30000 0x10000>; 152 reg = <0xffa30000 0x10000>; 158 interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_H 153 interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>, 159 <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>, 154 <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>, 160 <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>; 155 <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>; 161 interrupt-names = "job", "mmu", "gpu"; 156 interrupt-names = "job", "mmu", "gpu"; 162 clocks = <&cru 0>; 157 clocks = <&cru 0>; 163 mali-supply = <&vdd_gpu>; 158 mali-supply = <&vdd_gpu>; 164 operating-points-v2 = <&gpu_opp_table>; 159 operating-points-v2 = <&gpu_opp_table>; 165 power-domains = <&power 0>; 160 power-domains = <&power 0>; 166 #cooling-cells = <2>; 161 #cooling-cells = <2>; 167 }; 162 }; 168 163 169 gpu_opp_table: opp-table { 164 gpu_opp_table: opp-table { 170 compatible = "operating-points-v2"; 165 compatible = "operating-points-v2"; 171 166 172 opp-533000000 { 167 opp-533000000 { 173 opp-hz = /bits/ 64 <533000000>; 168 opp-hz = /bits/ 64 <533000000>; 174 opp-microvolt = <1250000>; 169 opp-microvolt = <1250000>; 175 }; 170 }; 176 opp-450000000 { 171 opp-450000000 { 177 opp-hz = /bits/ 64 <450000000>; 172 opp-hz = /bits/ 64 <450000000>; 178 opp-microvolt = <1150000>; 173 opp-microvolt = <1150000>; 179 }; 174 }; 180 opp-400000000 { 175 opp-400000000 { 181 opp-hz = /bits/ 64 <400000000>; 176 opp-hz = /bits/ 64 <400000000>; 182 opp-microvolt = <1125000>; 177 opp-microvolt = <1125000>; 183 }; 178 }; 184 opp-350000000 { 179 opp-350000000 { 185 opp-hz = /bits/ 64 <350000000>; 180 opp-hz = /bits/ 64 <350000000>; 186 opp-microvolt = <1075000>; 181 opp-microvolt = <1075000>; 187 }; 182 }; 188 opp-266000000 { 183 opp-266000000 { 189 opp-hz = /bits/ 64 <266000000>; 184 opp-hz = /bits/ 64 <266000000>; 190 opp-microvolt = <1025000>; 185 opp-microvolt = <1025000>; 191 }; 186 }; 192 opp-160000000 { 187 opp-160000000 { 193 opp-hz = /bits/ 64 <160000000>; 188 opp-hz = /bits/ 64 <160000000>; 194 opp-microvolt = <925000>; 189 opp-microvolt = <925000>; 195 }; 190 }; 196 opp-100000000 { 191 opp-100000000 { 197 opp-hz = /bits/ 64 <100000000>; 192 opp-hz = /bits/ 64 <100000000>; 198 opp-microvolt = <912500>; 193 opp-microvolt = <912500>; 199 }; 194 }; 200 }; 195 }; 201 196 202 ... 197 ...
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.