mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
synced 2025-09-01 15:14:52 +00:00

Exynos7870 SoC uses the ARM Mali T830 GPU, document its compatible string with the appropriate fallback. The T830 compatible is already defined in the panfrost driver, but was commented out as it was unused. Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Signed-off-by: Kaustabh Chakraborty <kauschluss@disroot.org> Link: https://lore.kernel.org/r/20250318-exynos7870-gpu-v2-1-58dc2094dc7f@disroot.org Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
206 lines
4.5 KiB
YAML
206 lines
4.5 KiB
YAML
# 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:
|
|
- samsung,exynos7-mali
|
|
- const: samsung,exynos5433-mali
|
|
- const: arm,mali-t760
|
|
- items:
|
|
- enum:
|
|
- samsung,exynos7870-mali
|
|
- const: arm,mali-t830
|
|
- items:
|
|
- enum:
|
|
- rockchip,rk3399-mali
|
|
- const: arm,mali-t860
|
|
|
|
# "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>;
|
|
};
|
|
};
|
|
|
|
...
|