1842b4aecSRob Herring# SPDX-License-Identifier: GPL-2.0-only
2842b4aecSRob Herring%YAML 1.2
3842b4aecSRob Herring---
4842b4aecSRob Herring$id: http://devicetree.org/schemas/gpu/arm,mali-bifrost.yaml#
5842b4aecSRob Herring$schema: http://devicetree.org/meta-schemas/core.yaml#
6842b4aecSRob Herring
7842b4aecSRob Herringtitle: ARM Mali Bifrost GPU
8842b4aecSRob Herring
9842b4aecSRob Herringmaintainers:
10842b4aecSRob Herring  - Rob Herring <robh@kernel.org>
11842b4aecSRob Herring
12842b4aecSRob Herringproperties:
13842b4aecSRob Herring  $nodename:
14842b4aecSRob Herring    pattern: '^gpu@[a-f0-9]+$'
15842b4aecSRob Herring
16842b4aecSRob Herring  compatible:
17842b4aecSRob Herring    items:
18842b4aecSRob Herring      - enum:
19842b4aecSRob Herring          - amlogic,meson-g12a-mali
200211b71cSAndreas Färber          - realtek,rtd1619-mali
21ad848dd5SHeiko Stuebner          - rockchip,px30-mali
22842b4aecSRob Herring      - const: arm,mali-bifrost # Mali Bifrost GPU model/revision is fully discoverable
23842b4aecSRob Herring
24842b4aecSRob Herring  reg:
25842b4aecSRob Herring    maxItems: 1
26842b4aecSRob Herring
27842b4aecSRob Herring  interrupts:
28842b4aecSRob Herring    items:
29842b4aecSRob Herring      - description: Job interrupt
30842b4aecSRob Herring      - description: MMU interrupt
31842b4aecSRob Herring      - description: GPU interrupt
32842b4aecSRob Herring
33842b4aecSRob Herring  interrupt-names:
34842b4aecSRob Herring    items:
35842b4aecSRob Herring      - const: job
36842b4aecSRob Herring      - const: mmu
37842b4aecSRob Herring      - const: gpu
38842b4aecSRob Herring
39842b4aecSRob Herring  clocks:
40842b4aecSRob Herring    maxItems: 1
41842b4aecSRob Herring
42f3dde260SRob Herring  mali-supply: true
43842b4aecSRob Herring
44842b4aecSRob Herring  operating-points-v2: true
45842b4aecSRob Herring
462c905f6cSJohan Jonker  power-domains:
472c905f6cSJohan Jonker    maxItems: 1
482c905f6cSJohan Jonker
490d9a302dSRob Herring  resets:
500d9a302dSRob Herring    maxItems: 2
510d9a302dSRob Herring
522c905f6cSJohan Jonker  "#cooling-cells":
532c905f6cSJohan Jonker    const: 2
542c905f6cSJohan Jonker
55*e33dc2f3SLukasz Luba  dynamic-power-coefficient:
56*e33dc2f3SLukasz Luba    $ref: '/schemas/types.yaml#/definitions/uint32'
57*e33dc2f3SLukasz Luba    description:
58*e33dc2f3SLukasz Luba      A u32 value that represents the running time dynamic
59*e33dc2f3SLukasz Luba      power coefficient in units of uW/MHz/V^2. The
60*e33dc2f3SLukasz Luba      coefficient can either be calculated from power
61*e33dc2f3SLukasz Luba      measurements or derived by analysis.
62*e33dc2f3SLukasz Luba
63*e33dc2f3SLukasz Luba      The dynamic power consumption of the GPU is
64*e33dc2f3SLukasz Luba      proportional to the square of the Voltage (V) and
65*e33dc2f3SLukasz Luba      the clock frequency (f). The coefficient is used to
66*e33dc2f3SLukasz Luba      calculate the dynamic power as below -
67*e33dc2f3SLukasz Luba
68*e33dc2f3SLukasz Luba      Pdyn = dynamic-power-coefficient * V^2 * f
69*e33dc2f3SLukasz Luba
70*e33dc2f3SLukasz Luba      where voltage is in V, frequency is in MHz.
71*e33dc2f3SLukasz Luba
72842b4aecSRob Herringrequired:
73842b4aecSRob Herring  - compatible
74842b4aecSRob Herring  - reg
75842b4aecSRob Herring  - interrupts
76842b4aecSRob Herring  - interrupt-names
77842b4aecSRob Herring  - clocks
78842b4aecSRob Herring
797f464532SRob HerringadditionalProperties: false
807f464532SRob Herring
81842b4aecSRob HerringallOf:
82842b4aecSRob Herring  - if:
83842b4aecSRob Herring      properties:
84842b4aecSRob Herring        compatible:
85842b4aecSRob Herring          contains:
86842b4aecSRob Herring            const: amlogic,meson-g12a-mali
87842b4aecSRob Herring    then:
88842b4aecSRob Herring      required:
89842b4aecSRob Herring        - resets
90842b4aecSRob Herring
91842b4aecSRob Herringexamples:
92842b4aecSRob Herring  - |
93842b4aecSRob Herring    #include <dt-bindings/interrupt-controller/irq.h>
94842b4aecSRob Herring    #include <dt-bindings/interrupt-controller/arm-gic.h>
95842b4aecSRob Herring
96842b4aecSRob Herring    gpu@ffe40000 {
97842b4aecSRob Herring      compatible = "amlogic,meson-g12a-mali", "arm,mali-bifrost";
98842b4aecSRob Herring      reg = <0xffe40000 0x10000>;
99842b4aecSRob Herring      interrupts = <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>,
100842b4aecSRob Herring             <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>,
101842b4aecSRob Herring             <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>;
102842b4aecSRob Herring      interrupt-names = "job", "mmu", "gpu";
103842b4aecSRob Herring      clocks = <&clk 1>;
104842b4aecSRob Herring      mali-supply = <&vdd_gpu>;
105842b4aecSRob Herring      operating-points-v2 = <&gpu_opp_table>;
106842b4aecSRob Herring      resets = <&reset 0>, <&reset 1>;
107842b4aecSRob Herring    };
108842b4aecSRob Herring
109842b4aecSRob Herring    gpu_opp_table: opp_table0 {
110842b4aecSRob Herring      compatible = "operating-points-v2";
111842b4aecSRob Herring
11251a21e0eSRob Herring      opp-533000000 {
113842b4aecSRob Herring        opp-hz = /bits/ 64 <533000000>;
114842b4aecSRob Herring        opp-microvolt = <1250000>;
115842b4aecSRob Herring      };
11651a21e0eSRob Herring      opp-450000000 {
117842b4aecSRob Herring        opp-hz = /bits/ 64 <450000000>;
118842b4aecSRob Herring        opp-microvolt = <1150000>;
119842b4aecSRob Herring      };
12051a21e0eSRob Herring      opp-400000000 {
121842b4aecSRob Herring        opp-hz = /bits/ 64 <400000000>;
122842b4aecSRob Herring        opp-microvolt = <1125000>;
123842b4aecSRob Herring      };
12451a21e0eSRob Herring      opp-350000000 {
125842b4aecSRob Herring        opp-hz = /bits/ 64 <350000000>;
126842b4aecSRob Herring        opp-microvolt = <1075000>;
127842b4aecSRob Herring      };
12851a21e0eSRob Herring      opp-266000000 {
129842b4aecSRob Herring        opp-hz = /bits/ 64 <266000000>;
130842b4aecSRob Herring        opp-microvolt = <1025000>;
131842b4aecSRob Herring      };
13251a21e0eSRob Herring      opp-160000000 {
133842b4aecSRob Herring        opp-hz = /bits/ 64 <160000000>;
134842b4aecSRob Herring        opp-microvolt = <925000>;
135842b4aecSRob Herring      };
13651a21e0eSRob Herring      opp-100000000 {
137842b4aecSRob Herring        opp-hz = /bits/ 64 <100000000>;
138842b4aecSRob Herring        opp-microvolt = <912500>;
139842b4aecSRob Herring      };
140842b4aecSRob Herring    };
141842b4aecSRob Herring
142842b4aecSRob Herring...
143