162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only 262306a36Sopenharmony_ci%YAML 1.2 362306a36Sopenharmony_ci--- 462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/gpu/arm,mali-midgard.yaml# 562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml# 662306a36Sopenharmony_ci 762306a36Sopenharmony_cititle: ARM Mali Midgard GPU 862306a36Sopenharmony_ci 962306a36Sopenharmony_cimaintainers: 1062306a36Sopenharmony_ci - Rob Herring <robh@kernel.org> 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_ciproperties: 1362306a36Sopenharmony_ci $nodename: 1462306a36Sopenharmony_ci pattern: '^gpu@[a-f0-9]+$' 1562306a36Sopenharmony_ci compatible: 1662306a36Sopenharmony_ci oneOf: 1762306a36Sopenharmony_ci - items: 1862306a36Sopenharmony_ci - enum: 1962306a36Sopenharmony_ci - samsung,exynos5250-mali 2062306a36Sopenharmony_ci - const: arm,mali-t604 2162306a36Sopenharmony_ci - items: 2262306a36Sopenharmony_ci - enum: 2362306a36Sopenharmony_ci - samsung,exynos5420-mali 2462306a36Sopenharmony_ci - const: arm,mali-t628 2562306a36Sopenharmony_ci - items: 2662306a36Sopenharmony_ci - enum: 2762306a36Sopenharmony_ci - allwinner,sun50i-h6-mali 2862306a36Sopenharmony_ci - const: arm,mali-t720 2962306a36Sopenharmony_ci - items: 3062306a36Sopenharmony_ci - enum: 3162306a36Sopenharmony_ci - amlogic,meson-gxm-mali 3262306a36Sopenharmony_ci - realtek,rtd1295-mali 3362306a36Sopenharmony_ci - const: arm,mali-t820 3462306a36Sopenharmony_ci - items: 3562306a36Sopenharmony_ci - enum: 3662306a36Sopenharmony_ci - arm,juno-mali 3762306a36Sopenharmony_ci - const: arm,mali-t624 3862306a36Sopenharmony_ci - items: 3962306a36Sopenharmony_ci - enum: 4062306a36Sopenharmony_ci - rockchip,rk3288-mali 4162306a36Sopenharmony_ci - samsung,exynos5433-mali 4262306a36Sopenharmony_ci - const: arm,mali-t760 4362306a36Sopenharmony_ci - items: 4462306a36Sopenharmony_ci - enum: 4562306a36Sopenharmony_ci - rockchip,rk3399-mali 4662306a36Sopenharmony_ci - const: arm,mali-t860 4762306a36Sopenharmony_ci 4862306a36Sopenharmony_ci # "arm,mali-t830" 4962306a36Sopenharmony_ci # "arm,mali-t880" 5062306a36Sopenharmony_ci 5162306a36Sopenharmony_ci reg: 5262306a36Sopenharmony_ci maxItems: 1 5362306a36Sopenharmony_ci 5462306a36Sopenharmony_ci interrupts: 5562306a36Sopenharmony_ci items: 5662306a36Sopenharmony_ci - description: Job interrupt 5762306a36Sopenharmony_ci - description: MMU interrupt 5862306a36Sopenharmony_ci - description: GPU interrupt 5962306a36Sopenharmony_ci 6062306a36Sopenharmony_ci interrupt-names: 6162306a36Sopenharmony_ci items: 6262306a36Sopenharmony_ci - const: job 6362306a36Sopenharmony_ci - const: mmu 6462306a36Sopenharmony_ci - const: gpu 6562306a36Sopenharmony_ci 6662306a36Sopenharmony_ci clocks: 6762306a36Sopenharmony_ci minItems: 1 6862306a36Sopenharmony_ci maxItems: 2 6962306a36Sopenharmony_ci 7062306a36Sopenharmony_ci clock-names: 7162306a36Sopenharmony_ci minItems: 1 7262306a36Sopenharmony_ci items: 7362306a36Sopenharmony_ci - const: core 7462306a36Sopenharmony_ci - const: bus 7562306a36Sopenharmony_ci 7662306a36Sopenharmony_ci mali-supply: true 7762306a36Sopenharmony_ci opp-table: 7862306a36Sopenharmony_ci type: object 7962306a36Sopenharmony_ci 8062306a36Sopenharmony_ci power-domains: 8162306a36Sopenharmony_ci maxItems: 1 8262306a36Sopenharmony_ci 8362306a36Sopenharmony_ci resets: 8462306a36Sopenharmony_ci minItems: 1 8562306a36Sopenharmony_ci maxItems: 2 8662306a36Sopenharmony_ci 8762306a36Sopenharmony_ci operating-points-v2: true 8862306a36Sopenharmony_ci 8962306a36Sopenharmony_ci "#cooling-cells": 9062306a36Sopenharmony_ci const: 2 9162306a36Sopenharmony_ci 9262306a36Sopenharmony_ci dma-coherent: true 9362306a36Sopenharmony_ci 9462306a36Sopenharmony_ci dynamic-power-coefficient: 9562306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 9662306a36Sopenharmony_ci description: 9762306a36Sopenharmony_ci A u32 value that represents the running time dynamic 9862306a36Sopenharmony_ci power coefficient in units of uW/MHz/V^2. The 9962306a36Sopenharmony_ci coefficient can either be calculated from power 10062306a36Sopenharmony_ci measurements or derived by analysis. 10162306a36Sopenharmony_ci 10262306a36Sopenharmony_ci The dynamic power consumption of the GPU is 10362306a36Sopenharmony_ci proportional to the square of the Voltage (V) and 10462306a36Sopenharmony_ci the clock frequency (f). The coefficient is used to 10562306a36Sopenharmony_ci calculate the dynamic power as below - 10662306a36Sopenharmony_ci 10762306a36Sopenharmony_ci Pdyn = dynamic-power-coefficient * V^2 * f 10862306a36Sopenharmony_ci 10962306a36Sopenharmony_ci where voltage is in V, frequency is in MHz. 11062306a36Sopenharmony_ci 11162306a36Sopenharmony_cirequired: 11262306a36Sopenharmony_ci - compatible 11362306a36Sopenharmony_ci - reg 11462306a36Sopenharmony_ci - interrupts 11562306a36Sopenharmony_ci - interrupt-names 11662306a36Sopenharmony_ci - clocks 11762306a36Sopenharmony_ci 11862306a36Sopenharmony_ciadditionalProperties: false 11962306a36Sopenharmony_ci 12062306a36Sopenharmony_ciallOf: 12162306a36Sopenharmony_ci - if: 12262306a36Sopenharmony_ci properties: 12362306a36Sopenharmony_ci compatible: 12462306a36Sopenharmony_ci contains: 12562306a36Sopenharmony_ci const: allwinner,sun50i-h6-mali 12662306a36Sopenharmony_ci then: 12762306a36Sopenharmony_ci properties: 12862306a36Sopenharmony_ci clocks: 12962306a36Sopenharmony_ci minItems: 2 13062306a36Sopenharmony_ci required: 13162306a36Sopenharmony_ci - clock-names 13262306a36Sopenharmony_ci - resets 13362306a36Sopenharmony_ci - if: 13462306a36Sopenharmony_ci properties: 13562306a36Sopenharmony_ci compatible: 13662306a36Sopenharmony_ci contains: 13762306a36Sopenharmony_ci const: amlogic,meson-gxm-mali 13862306a36Sopenharmony_ci then: 13962306a36Sopenharmony_ci properties: 14062306a36Sopenharmony_ci resets: 14162306a36Sopenharmony_ci minItems: 2 14262306a36Sopenharmony_ci required: 14362306a36Sopenharmony_ci - resets 14462306a36Sopenharmony_ci 14562306a36Sopenharmony_ciexamples: 14662306a36Sopenharmony_ci - | 14762306a36Sopenharmony_ci #include <dt-bindings/interrupt-controller/irq.h> 14862306a36Sopenharmony_ci #include <dt-bindings/interrupt-controller/arm-gic.h> 14962306a36Sopenharmony_ci 15062306a36Sopenharmony_ci gpu@ffa30000 { 15162306a36Sopenharmony_ci compatible = "rockchip,rk3288-mali", "arm,mali-t760"; 15262306a36Sopenharmony_ci reg = <0xffa30000 0x10000>; 15362306a36Sopenharmony_ci interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>, 15462306a36Sopenharmony_ci <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>, 15562306a36Sopenharmony_ci <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>; 15662306a36Sopenharmony_ci interrupt-names = "job", "mmu", "gpu"; 15762306a36Sopenharmony_ci clocks = <&cru 0>; 15862306a36Sopenharmony_ci mali-supply = <&vdd_gpu>; 15962306a36Sopenharmony_ci operating-points-v2 = <&gpu_opp_table>; 16062306a36Sopenharmony_ci power-domains = <&power 0>; 16162306a36Sopenharmony_ci #cooling-cells = <2>; 16262306a36Sopenharmony_ci }; 16362306a36Sopenharmony_ci 16462306a36Sopenharmony_ci gpu_opp_table: opp-table { 16562306a36Sopenharmony_ci compatible = "operating-points-v2"; 16662306a36Sopenharmony_ci 16762306a36Sopenharmony_ci opp-533000000 { 16862306a36Sopenharmony_ci opp-hz = /bits/ 64 <533000000>; 16962306a36Sopenharmony_ci opp-microvolt = <1250000>; 17062306a36Sopenharmony_ci }; 17162306a36Sopenharmony_ci opp-450000000 { 17262306a36Sopenharmony_ci opp-hz = /bits/ 64 <450000000>; 17362306a36Sopenharmony_ci opp-microvolt = <1150000>; 17462306a36Sopenharmony_ci }; 17562306a36Sopenharmony_ci opp-400000000 { 17662306a36Sopenharmony_ci opp-hz = /bits/ 64 <400000000>; 17762306a36Sopenharmony_ci opp-microvolt = <1125000>; 17862306a36Sopenharmony_ci }; 17962306a36Sopenharmony_ci opp-350000000 { 18062306a36Sopenharmony_ci opp-hz = /bits/ 64 <350000000>; 18162306a36Sopenharmony_ci opp-microvolt = <1075000>; 18262306a36Sopenharmony_ci }; 18362306a36Sopenharmony_ci opp-266000000 { 18462306a36Sopenharmony_ci opp-hz = /bits/ 64 <266000000>; 18562306a36Sopenharmony_ci opp-microvolt = <1025000>; 18662306a36Sopenharmony_ci }; 18762306a36Sopenharmony_ci opp-160000000 { 18862306a36Sopenharmony_ci opp-hz = /bits/ 64 <160000000>; 18962306a36Sopenharmony_ci opp-microvolt = <925000>; 19062306a36Sopenharmony_ci }; 19162306a36Sopenharmony_ci opp-100000000 { 19262306a36Sopenharmony_ci opp-hz = /bits/ 64 <100000000>; 19362306a36Sopenharmony_ci opp-microvolt = <912500>; 19462306a36Sopenharmony_ci }; 19562306a36Sopenharmony_ci }; 19662306a36Sopenharmony_ci 19762306a36Sopenharmony_ci... 198