# SPDX-License-Identifier: GPL-2.0-only %YAML 1.2 --- $id: http://devicetree.org/schemas/gpu/arm,mali-midgard.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: ARM Mali Midgard GPU maintainers: - Rob Herring <robh@kernel.org> properties: $nodename: pattern: '^gpu@[a-f0-9]+$' compatible: oneOf: - items: - enum: - samsung,exynos5250-mali - const: arm,mali-t604 - items: - enum: - samsung,exynos5420-mali - const: arm,mali-t628 - items: - enum: - allwinner,sun50i-h6-mali - const: arm,mali-t720 - items: - enum: - amlogic,meson-gxm-mali - realtek,rtd1295-mali - const: arm,mali-t820 - items: - enum: - arm,juno-mali - const: arm,mali-t624 - items: - enum: - rockchip,rk3288-mali - samsung,exynos5433-mali - const: arm,mali-t760 - items: - enum: - rockchip,rk3399-mali - const: arm,mali-t860 # "arm,mali-t830" # "arm,mali-t880" reg: maxItems: 1 interrupts: items: - description: Job interrupt - description: MMU interrupt - description: GPU interrupt interrupt-names: items: - const: job - const: mmu - const: gpu clocks: minItems: 1 maxItems: 2 clock-names: minItems: 1 items: - const: core - const: bus mali-supply: true opp-table: type: object power-domains: maxItems: 1 resets: minItems: 1 maxItems: 2 operating-points-v2: true "#cooling-cells": const: 2 dma-coherent: true dynamic-power-coefficient: $ref: /schemas/types.yaml#/definitions/uint32 description: A u32 value that represents the running time dynamic power coefficient in units of uW/MHz/V^2. The coefficient can either be calculated from power measurements or derived by analysis. The dynamic power consumption of the GPU is proportional to the square of the Voltage (V) and the clock frequency (f). The coefficient is used to calculate the dynamic power as below - Pdyn = dynamic-power-coefficient * V^2 * f where voltage is in V, frequency is in MHz. required: - compatible - reg - interrupts - interrupt-names - clocks additionalProperties: false allOf: - if: properties: compatible: contains: const: allwinner,sun50i-h6-mali then: properties: clocks: minItems: 2 required: - clock-names - resets - if: properties: compatible: contains: const: amlogic,meson-gxm-mali then: properties: resets: minItems: 2 required: - resets examples: - | #include <dt-bindings/interrupt-controller/irq.h> #include <dt-bindings/interrupt-controller/arm-gic.h> gpu@ffa30000 { compatible = "rockchip,rk3288-mali", "arm,mali-t760"; reg = <0xffa30000 0x10000>; interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>; interrupt-names = "job", "mmu", "gpu"; clocks = <&cru 0>; mali-supply = <&vdd_gpu>; operating-points-v2 = <&gpu_opp_table>; power-domains = <&power 0>; #cooling-cells = <2>; }; gpu_opp_table: opp-table { compatible = "operating-points-v2"; opp-533000000 { opp-hz = /bits/ 64 <533000000>; opp-microvolt = <1250000>; }; opp-450000000 { opp-hz = /bits/ 64 <450000000>; opp-microvolt = <1150000>; }; opp-400000000 { opp-hz = /bits/ 64 <400000000>; opp-microvolt = <1125000>; }; opp-350000000 { opp-hz = /bits/ 64 <350000000>; opp-microvolt = <1075000>; }; opp-266000000 { opp-hz = /bits/ 64 <266000000>; opp-microvolt = <1025000>; }; opp-160000000 { opp-hz = /bits/ 64 <160000000>; opp-microvolt = <925000>; }; opp-100000000 { opp-hz = /bits/ 64 <100000000>; opp-microvolt = <912500>; }; }; ...