1 # SPDX-License-Identifier: GPL-2.0-only OR BSD 1 # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 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-valhall-csf.yaml# 5 $schema: http://devicetree.org/meta-schemas/co 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 6 6 7 title: ARM Mali Valhall GPU 7 title: ARM Mali Valhall GPU 8 8 9 maintainers: 9 maintainers: 10 - Liviu Dudau <liviu.dudau@arm.com> 10 - Liviu Dudau <liviu.dudau@arm.com> 11 - Boris Brezillon <boris.brezillon@collabora. 11 - Boris Brezillon <boris.brezillon@collabora.com> 12 12 13 properties: 13 properties: 14 $nodename: 14 $nodename: 15 pattern: '^gpu@[a-f0-9]+$' 15 pattern: '^gpu@[a-f0-9]+$' 16 16 17 compatible: 17 compatible: 18 oneOf: 18 oneOf: 19 - items: 19 - items: 20 - enum: 20 - enum: 21 - rockchip,rk3588-mali 21 - rockchip,rk3588-mali 22 - const: arm,mali-valhall-csf # Ma 22 - const: arm,mali-valhall-csf # Mali Valhall GPU model/revision is fully discoverable 23 23 24 reg: 24 reg: 25 maxItems: 1 25 maxItems: 1 26 26 27 interrupts: 27 interrupts: 28 items: 28 items: 29 - description: Job interrupt 29 - description: Job interrupt 30 - description: MMU interrupt 30 - description: MMU interrupt 31 - description: GPU interrupt 31 - description: GPU interrupt 32 32 33 interrupt-names: 33 interrupt-names: 34 items: 34 items: 35 - const: job 35 - const: job 36 - const: mmu 36 - const: mmu 37 - const: gpu 37 - const: gpu 38 38 39 clocks: 39 clocks: 40 minItems: 1 40 minItems: 1 41 maxItems: 3 41 maxItems: 3 42 42 43 clock-names: 43 clock-names: 44 minItems: 1 44 minItems: 1 45 items: 45 items: 46 - const: core 46 - const: core 47 - const: coregroup 47 - const: coregroup 48 - const: stacks 48 - const: stacks 49 49 50 mali-supply: true 50 mali-supply: true 51 51 52 operating-points-v2: true 52 operating-points-v2: true 53 opp-table: 53 opp-table: 54 type: object 54 type: object 55 55 56 power-domains: 56 power-domains: 57 minItems: 1 57 minItems: 1 58 maxItems: 5 58 maxItems: 5 59 59 60 power-domain-names: 60 power-domain-names: 61 minItems: 1 61 minItems: 1 62 maxItems: 5 62 maxItems: 5 63 63 64 sram-supply: true 64 sram-supply: true 65 65 66 "#cooling-cells": 66 "#cooling-cells": 67 const: 2 67 const: 2 68 68 69 dynamic-power-coefficient: 69 dynamic-power-coefficient: 70 $ref: /schemas/types.yaml#/definitions/uin 70 $ref: /schemas/types.yaml#/definitions/uint32 71 description: 71 description: 72 A u32 value that represents the running 72 A u32 value that represents the running time dynamic 73 power coefficient in units of uW/MHz/V^2 73 power coefficient in units of uW/MHz/V^2. The 74 coefficient can either be calculated fro 74 coefficient can either be calculated from power 75 measurements or derived by analysis. 75 measurements or derived by analysis. 76 76 77 The dynamic power consumption of the GPU 77 The dynamic power consumption of the GPU is 78 proportional to the square of the Voltag 78 proportional to the square of the Voltage (V) and 79 the clock frequency (f). The coefficient 79 the clock frequency (f). The coefficient is used to 80 calculate the dynamic power as below - 80 calculate the dynamic power as below - 81 81 82 Pdyn = dynamic-power-coefficient * V^2 * 82 Pdyn = dynamic-power-coefficient * V^2 * f 83 83 84 where voltage is in V, frequency is in M 84 where voltage is in V, frequency is in MHz. 85 85 86 dma-coherent: true 86 dma-coherent: true 87 87 88 required: 88 required: 89 - compatible 89 - compatible 90 - reg 90 - reg 91 - interrupts 91 - interrupts 92 - interrupt-names 92 - interrupt-names 93 - clocks 93 - clocks 94 - mali-supply 94 - mali-supply 95 95 96 additionalProperties: false 96 additionalProperties: false 97 97 98 allOf: 98 allOf: 99 - if: 99 - if: 100 properties: 100 properties: 101 compatible: 101 compatible: 102 contains: 102 contains: 103 const: rockchip,rk3588-mali 103 const: rockchip,rk3588-mali 104 then: 104 then: 105 properties: 105 properties: 106 clocks: 106 clocks: 107 minItems: 3 107 minItems: 3 108 power-domains: 108 power-domains: 109 maxItems: 1 109 maxItems: 1 110 power-domain-names: false 110 power-domain-names: false 111 111 112 examples: 112 examples: 113 - | 113 - | 114 #include <dt-bindings/clock/rockchip,rk358 114 #include <dt-bindings/clock/rockchip,rk3588-cru.h> 115 #include <dt-bindings/interrupt-controller 115 #include <dt-bindings/interrupt-controller/irq.h> 116 #include <dt-bindings/interrupt-controller 116 #include <dt-bindings/interrupt-controller/arm-gic.h> 117 #include <dt-bindings/power/rk3588-power.h 117 #include <dt-bindings/power/rk3588-power.h> 118 118 119 gpu: gpu@fb000000 { 119 gpu: gpu@fb000000 { 120 compatible = "rockchip,rk3588-mali", " 120 compatible = "rockchip,rk3588-mali", "arm,mali-valhall-csf"; 121 reg = <0xfb000000 0x200000>; 121 reg = <0xfb000000 0x200000>; 122 interrupts = <GIC_SPI 92 IRQ_TYPE_LEVE 122 interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH 0>, 123 <GIC_SPI 93 IRQ_TYPE_LEVE 123 <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH 0>, 124 <GIC_SPI 94 IRQ_TYPE_LEVE 124 <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH 0>; 125 interrupt-names = "job", "mmu", "gpu"; 125 interrupt-names = "job", "mmu", "gpu"; 126 clock-names = "core", "coregroup", "st 126 clock-names = "core", "coregroup", "stacks"; 127 clocks = <&cru CLK_GPU>, <&cru CLK_GPU 127 clocks = <&cru CLK_GPU>, <&cru CLK_GPU_COREGROUP>, 128 <&cru CLK_GPU_STACKS>; 128 <&cru CLK_GPU_STACKS>; 129 power-domains = <&power RK3588_PD_GPU> 129 power-domains = <&power RK3588_PD_GPU>; 130 operating-points-v2 = <&gpu_opp_table> 130 operating-points-v2 = <&gpu_opp_table>; 131 mali-supply = <&vdd_gpu_s0>; 131 mali-supply = <&vdd_gpu_s0>; 132 sram-supply = <&vdd_gpu_mem_s0>; 132 sram-supply = <&vdd_gpu_mem_s0>; 133 133 134 gpu_opp_table: opp-table { 134 gpu_opp_table: opp-table { 135 compatible = "operating-points-v2" 135 compatible = "operating-points-v2"; 136 opp-300000000 { 136 opp-300000000 { 137 opp-hz = /bits/ 64 <300000000> 137 opp-hz = /bits/ 64 <300000000>; 138 opp-microvolt = <675000 675000 138 opp-microvolt = <675000 675000 850000>; 139 }; 139 }; 140 opp-400000000 { 140 opp-400000000 { 141 opp-hz = /bits/ 64 <400000000> 141 opp-hz = /bits/ 64 <400000000>; 142 opp-microvolt = <675000 675000 142 opp-microvolt = <675000 675000 850000>; 143 }; 143 }; 144 }; 144 }; 145 }; 145 }; 146 146 147 ... 147 ...
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.