| # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause |
| %YAML 1.2 |
| --- |
| $id: http://devicetree.org/schemas/gpu/arm,mali-valhall-csf.yaml# |
| $schema: http://devicetree.org/meta-schemas/core.yaml# |
| |
| title: ARM Mali Valhall GPU |
| |
| maintainers: |
| - Liviu Dudau <liviu.dudau@arm.com> |
| - Boris Brezillon <boris.brezillon@collabora.com> |
| |
| properties: |
| $nodename: |
| pattern: '^gpu@[a-f0-9]+$' |
| |
| compatible: |
| oneOf: |
| - items: |
| - enum: |
| - rockchip,rk3588-mali |
| - const: arm,mali-valhall-csf # Mali Valhall GPU model/revision is fully discoverable |
| |
| 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: 3 |
| |
| clock-names: |
| minItems: 1 |
| items: |
| - const: core |
| - const: coregroup |
| - const: stacks |
| |
| mali-supply: true |
| |
| operating-points-v2: true |
| opp-table: |
| type: object |
| |
| power-domains: |
| minItems: 1 |
| maxItems: 5 |
| |
| power-domain-names: |
| minItems: 1 |
| maxItems: 5 |
| |
| sram-supply: true |
| |
| "#cooling-cells": |
| const: 2 |
| |
| 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. |
| |
| dma-coherent: true |
| |
| required: |
| - compatible |
| - reg |
| - interrupts |
| - interrupt-names |
| - clocks |
| - mali-supply |
| |
| additionalProperties: false |
| |
| allOf: |
| - if: |
| properties: |
| compatible: |
| contains: |
| const: rockchip,rk3588-mali |
| then: |
| properties: |
| clocks: |
| minItems: 3 |
| power-domains: |
| maxItems: 1 |
| power-domain-names: false |
| |
| examples: |
| - | |
| #include <dt-bindings/clock/rockchip,rk3588-cru.h> |
| #include <dt-bindings/interrupt-controller/irq.h> |
| #include <dt-bindings/interrupt-controller/arm-gic.h> |
| #include <dt-bindings/power/rk3588-power.h> |
| |
| gpu: gpu@fb000000 { |
| compatible = "rockchip,rk3588-mali", "arm,mali-valhall-csf"; |
| reg = <0xfb000000 0x200000>; |
| interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH 0>, |
| <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH 0>, |
| <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH 0>; |
| interrupt-names = "job", "mmu", "gpu"; |
| clock-names = "core", "coregroup", "stacks"; |
| clocks = <&cru CLK_GPU>, <&cru CLK_GPU_COREGROUP>, |
| <&cru CLK_GPU_STACKS>; |
| power-domains = <&power RK3588_PD_GPU>; |
| operating-points-v2 = <&gpu_opp_table>; |
| mali-supply = <&vdd_gpu_s0>; |
| sram-supply = <&vdd_gpu_mem_s0>; |
| |
| gpu_opp_table: opp-table { |
| compatible = "operating-points-v2"; |
| opp-300000000 { |
| opp-hz = /bits/ 64 <300000000>; |
| opp-microvolt = <675000 675000 850000>; |
| }; |
| opp-400000000 { |
| opp-hz = /bits/ 64 <400000000>; |
| opp-microvolt = <675000 675000 850000>; |
| }; |
| }; |
| }; |
| |
| ... |