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