xref: /linux/Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml (revision 191308bae4ef67df627158c7effb4f397fa992d4)
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:
175d82e74aSAlyssa Rosenzweig    oneOf:
185d82e74aSAlyssa Rosenzweig      - items:
19842b4aecSRob Herring          - enum:
20842b4aecSRob Herring              - amlogic,meson-g12a-mali
21a7a596cdSNicolas Boichat              - mediatek,mt8183-mali
221f03cb1bSAngeloGioacchino Del Regno              - mediatek,mt8183b-mali
230b2cf514SAngeloGioacchino Del Regno              - mediatek,mt8186-mali
240211b71cSAndreas Färber              - realtek,rtd1619-mali
25570df0a5SBiju Das              - renesas,r9a07g044-mali
265dc6ce76SLad Prabhakar              - renesas,r9a07g054-mali
27ad848dd5SHeiko Stuebner              - rockchip,px30-mali
2851ca8fcbSEzequiel Garcia              - rockchip,rk3568-mali
29842b4aecSRob Herring          - const: arm,mali-bifrost # Mali Bifrost GPU model/revision is fully discoverable
305d82e74aSAlyssa Rosenzweig      - items:
315d82e74aSAlyssa Rosenzweig          - enum:
322ade2830SAngeloGioacchino Del Regno              - mediatek,mt8195-mali
332ade2830SAngeloGioacchino Del Regno          - const: mediatek,mt8192-mali
342ade2830SAngeloGioacchino Del Regno          - const: arm,mali-valhall-jm # Mali Valhall GPU model/revision is fully discoverable
352ade2830SAngeloGioacchino Del Regno      - items:
362ade2830SAngeloGioacchino Del Regno          - enum:
375d82e74aSAlyssa Rosenzweig              - mediatek,mt8192-mali
385d82e74aSAlyssa Rosenzweig          - const: arm,mali-valhall-jm # Mali Valhall GPU model/revision is fully discoverable
39842b4aecSRob Herring
40842b4aecSRob Herring  reg:
41842b4aecSRob Herring    maxItems: 1
42842b4aecSRob Herring
43842b4aecSRob Herring  interrupts:
44570df0a5SBiju Das    minItems: 3
45842b4aecSRob Herring    items:
46842b4aecSRob Herring      - description: Job interrupt
47842b4aecSRob Herring      - description: MMU interrupt
48842b4aecSRob Herring      - description: GPU interrupt
49570df0a5SBiju Das      - description: Event interrupt
50842b4aecSRob Herring
51842b4aecSRob Herring  interrupt-names:
52570df0a5SBiju Das    minItems: 3
53842b4aecSRob Herring    items:
54842b4aecSRob Herring      - const: job
55842b4aecSRob Herring      - const: mmu
56842b4aecSRob Herring      - const: gpu
57570df0a5SBiju Das      - const: event
58842b4aecSRob Herring
59842b4aecSRob Herring  clocks:
60570df0a5SBiju Das    minItems: 1
61570df0a5SBiju Das    maxItems: 3
62570df0a5SBiju Das
63570df0a5SBiju Das  clock-names: true
64842b4aecSRob Herring
65f3dde260SRob Herring  mali-supply: true
66842b4aecSRob Herring
67a7a596cdSNicolas Boichat  sram-supply: true
68a7a596cdSNicolas Boichat
69842b4aecSRob Herring  operating-points-v2: true
70842b4aecSRob Herring
712c905f6cSJohan Jonker  power-domains:
72a7a596cdSNicolas Boichat    minItems: 1
73eccda274SAngeloGioacchino Del Regno    maxItems: 5
742c905f6cSJohan Jonker
75aeb73790SAngeloGioacchino Del Regno  power-domain-names:
76aeb73790SAngeloGioacchino Del Regno    minItems: 2
77aeb73790SAngeloGioacchino Del Regno    maxItems: 5
78aeb73790SAngeloGioacchino Del Regno
790d9a302dSRob Herring  resets:
80570df0a5SBiju Das    minItems: 1
81570df0a5SBiju Das    maxItems: 3
82570df0a5SBiju Das
83570df0a5SBiju Das  reset-names: true
840d9a302dSRob Herring
852c905f6cSJohan Jonker  "#cooling-cells":
862c905f6cSJohan Jonker    const: 2
872c905f6cSJohan Jonker
88e33dc2f3SLukasz Luba  dynamic-power-coefficient:
89e33dc2f3SLukasz Luba    $ref: '/schemas/types.yaml#/definitions/uint32'
90e33dc2f3SLukasz Luba    description:
91e33dc2f3SLukasz Luba      A u32 value that represents the running time dynamic
92e33dc2f3SLukasz Luba      power coefficient in units of uW/MHz/V^2. The
93e33dc2f3SLukasz Luba      coefficient can either be calculated from power
94e33dc2f3SLukasz Luba      measurements or derived by analysis.
95e33dc2f3SLukasz Luba
96e33dc2f3SLukasz Luba      The dynamic power consumption of the GPU is
97e33dc2f3SLukasz Luba      proportional to the square of the Voltage (V) and
98e33dc2f3SLukasz Luba      the clock frequency (f). The coefficient is used to
99e33dc2f3SLukasz Luba      calculate the dynamic power as below -
100e33dc2f3SLukasz Luba
101e33dc2f3SLukasz Luba      Pdyn = dynamic-power-coefficient * V^2 * f
102e33dc2f3SLukasz Luba
103e33dc2f3SLukasz Luba      where voltage is in V, frequency is in MHz.
104e33dc2f3SLukasz Luba
1053f9a3345SKevin Hilman  dma-coherent: true
1063f9a3345SKevin Hilman
107*191308baSAngeloGioacchino Del Regno  nvmem-cell-names:
108*191308baSAngeloGioacchino Del Regno    items:
109*191308baSAngeloGioacchino Del Regno      - const: speed-bin
110*191308baSAngeloGioacchino Del Regno
111*191308baSAngeloGioacchino Del Regno  nvmem-cells:
112*191308baSAngeloGioacchino Del Regno    maxItems: 1
113*191308baSAngeloGioacchino Del Regno
114842b4aecSRob Herringrequired:
115842b4aecSRob Herring  - compatible
116842b4aecSRob Herring  - reg
117842b4aecSRob Herring  - interrupts
118842b4aecSRob Herring  - interrupt-names
119842b4aecSRob Herring  - clocks
120842b4aecSRob Herring
1217f464532SRob HerringadditionalProperties: false
1227f464532SRob Herring
123842b4aecSRob HerringallOf:
124842b4aecSRob Herring  - if:
125842b4aecSRob Herring      properties:
126842b4aecSRob Herring        compatible:
127842b4aecSRob Herring          contains:
128842b4aecSRob Herring            const: amlogic,meson-g12a-mali
129842b4aecSRob Herring    then:
130e82b8453SAngeloGioacchino Del Regno      properties:
131e82b8453SAngeloGioacchino Del Regno        power-domains:
132e82b8453SAngeloGioacchino Del Regno          maxItems: 1
133aeb73790SAngeloGioacchino Del Regno        power-domain-names: false
134842b4aecSRob Herring      required:
135842b4aecSRob Herring        - resets
136a7a596cdSNicolas Boichat  - if:
137a7a596cdSNicolas Boichat      properties:
138a7a596cdSNicolas Boichat        compatible:
139a7a596cdSNicolas Boichat          contains:
1405dc6ce76SLad Prabhakar            enum:
1415dc6ce76SLad Prabhakar              - renesas,r9a07g044-mali
1425dc6ce76SLad Prabhakar              - renesas,r9a07g054-mali
143570df0a5SBiju Das    then:
144570df0a5SBiju Das      properties:
145570df0a5SBiju Das        interrupts:
146570df0a5SBiju Das          minItems: 4
147570df0a5SBiju Das        interrupt-names:
148570df0a5SBiju Das          minItems: 4
149570df0a5SBiju Das        clocks:
150570df0a5SBiju Das          minItems: 3
151570df0a5SBiju Das        clock-names:
152570df0a5SBiju Das          items:
153570df0a5SBiju Das            - const: gpu
154570df0a5SBiju Das            - const: bus
155570df0a5SBiju Das            - const: bus_ace
156e82b8453SAngeloGioacchino Del Regno        power-domains:
157e82b8453SAngeloGioacchino Del Regno          maxItems: 1
158aeb73790SAngeloGioacchino Del Regno        power-domain-names: false
159570df0a5SBiju Das        resets:
160570df0a5SBiju Das          minItems: 3
161570df0a5SBiju Das        reset-names:
162570df0a5SBiju Das          items:
163570df0a5SBiju Das            - const: rst
164570df0a5SBiju Das            - const: axi_rst
165570df0a5SBiju Das            - const: ace_rst
166570df0a5SBiju Das      required:
167570df0a5SBiju Das        - clock-names
168570df0a5SBiju Das        - power-domains
169570df0a5SBiju Das        - resets
170570df0a5SBiju Das        - reset-names
171570df0a5SBiju Das  - if:
172570df0a5SBiju Das      properties:
173570df0a5SBiju Das        compatible:
174570df0a5SBiju Das          contains:
175a7a596cdSNicolas Boichat            const: mediatek,mt8183-mali
176a7a596cdSNicolas Boichat    then:
177a7a596cdSNicolas Boichat      properties:
178a7a596cdSNicolas Boichat        power-domains:
179a7a596cdSNicolas Boichat          minItems: 3
180eccda274SAngeloGioacchino Del Regno          maxItems: 3
181a7a596cdSNicolas Boichat        power-domain-names:
182a7a596cdSNicolas Boichat          items:
183a7a596cdSNicolas Boichat            - const: core0
184a7a596cdSNicolas Boichat            - const: core1
185a7a596cdSNicolas Boichat            - const: core2
186a7a596cdSNicolas Boichat
187a7a596cdSNicolas Boichat      required:
188a7a596cdSNicolas Boichat        - sram-supply
189a7a596cdSNicolas Boichat        - power-domains
190a7a596cdSNicolas Boichat        - power-domain-names
191a7a596cdSNicolas Boichat    else:
192a7a596cdSNicolas Boichat      properties:
193a7a596cdSNicolas Boichat        sram-supply: false
194f1775c26SAlex Bee  - if:
195f1775c26SAlex Bee      properties:
196f1775c26SAlex Bee        compatible:
197f1775c26SAlex Bee          contains:
1981f03cb1bSAngeloGioacchino Del Regno            const: mediatek,mt8183b-mali
1991f03cb1bSAngeloGioacchino Del Regno    then:
2001f03cb1bSAngeloGioacchino Del Regno      properties:
2011f03cb1bSAngeloGioacchino Del Regno        power-domains:
2021f03cb1bSAngeloGioacchino Del Regno          minItems: 3
2031f03cb1bSAngeloGioacchino Del Regno          maxItems: 3
2041f03cb1bSAngeloGioacchino Del Regno        power-domain-names:
2051f03cb1bSAngeloGioacchino Del Regno          items:
2061f03cb1bSAngeloGioacchino Del Regno            - const: core0
2071f03cb1bSAngeloGioacchino Del Regno            - const: core1
2081f03cb1bSAngeloGioacchino Del Regno            - const: core2
2091f03cb1bSAngeloGioacchino Del Regno      required:
2101f03cb1bSAngeloGioacchino Del Regno        - power-domains
2111f03cb1bSAngeloGioacchino Del Regno        - power-domain-names
2121f03cb1bSAngeloGioacchino Del Regno  - if:
2131f03cb1bSAngeloGioacchino Del Regno      properties:
2141f03cb1bSAngeloGioacchino Del Regno        compatible:
2151f03cb1bSAngeloGioacchino Del Regno          contains:
2160b2cf514SAngeloGioacchino Del Regno            const: mediatek,mt8186-mali
2170b2cf514SAngeloGioacchino Del Regno    then:
2180b2cf514SAngeloGioacchino Del Regno      properties:
2190b2cf514SAngeloGioacchino Del Regno        power-domains:
2200b2cf514SAngeloGioacchino Del Regno          minItems: 2
2210b2cf514SAngeloGioacchino Del Regno          maxItems: 2
2220b2cf514SAngeloGioacchino Del Regno        power-domain-names:
2230b2cf514SAngeloGioacchino Del Regno          items:
2240b2cf514SAngeloGioacchino Del Regno            - const: core0
2250b2cf514SAngeloGioacchino Del Regno            - const: core1
2260b2cf514SAngeloGioacchino Del Regno      required:
2270b2cf514SAngeloGioacchino Del Regno        - power-domains
2280b2cf514SAngeloGioacchino Del Regno        - power-domain-names
2290b2cf514SAngeloGioacchino Del Regno  - if:
2300b2cf514SAngeloGioacchino Del Regno      properties:
2310b2cf514SAngeloGioacchino Del Regno        compatible:
2320b2cf514SAngeloGioacchino Del Regno          contains:
23313a8fc8aSAngeloGioacchino Del Regno            const: mediatek,mt8192-mali
23413a8fc8aSAngeloGioacchino Del Regno    then:
23513a8fc8aSAngeloGioacchino Del Regno      properties:
23613a8fc8aSAngeloGioacchino Del Regno        power-domains:
23713a8fc8aSAngeloGioacchino Del Regno          minItems: 5
23813a8fc8aSAngeloGioacchino Del Regno        power-domain-names:
23913a8fc8aSAngeloGioacchino Del Regno          items:
24013a8fc8aSAngeloGioacchino Del Regno            - const: core0
24113a8fc8aSAngeloGioacchino Del Regno            - const: core1
24213a8fc8aSAngeloGioacchino Del Regno            - const: core2
24313a8fc8aSAngeloGioacchino Del Regno            - const: core3
24413a8fc8aSAngeloGioacchino Del Regno            - const: core4
24513a8fc8aSAngeloGioacchino Del Regno      required:
24613a8fc8aSAngeloGioacchino Del Regno        - power-domains
24713a8fc8aSAngeloGioacchino Del Regno        - power-domain-names
24813a8fc8aSAngeloGioacchino Del Regno  - if:
24913a8fc8aSAngeloGioacchino Del Regno      properties:
25013a8fc8aSAngeloGioacchino Del Regno        compatible:
25113a8fc8aSAngeloGioacchino Del Regno          contains:
252f1775c26SAlex Bee            const: rockchip,rk3568-mali
253f1775c26SAlex Bee    then:
254f1775c26SAlex Bee      properties:
255f1775c26SAlex Bee        clocks:
256f1775c26SAlex Bee          minItems: 2
257f1775c26SAlex Bee        clock-names:
258f1775c26SAlex Bee          items:
259f1775c26SAlex Bee            - const: gpu
260f1775c26SAlex Bee            - const: bus
261e82b8453SAngeloGioacchino Del Regno        power-domains:
262e82b8453SAngeloGioacchino Del Regno          maxItems: 1
263aeb73790SAngeloGioacchino Del Regno        power-domain-names: false
264f1775c26SAlex Bee      required:
265f1775c26SAlex Bee        - clock-names
266842b4aecSRob Herring
267842b4aecSRob Herringexamples:
268842b4aecSRob Herring  - |
269842b4aecSRob Herring    #include <dt-bindings/interrupt-controller/irq.h>
270842b4aecSRob Herring    #include <dt-bindings/interrupt-controller/arm-gic.h>
271842b4aecSRob Herring
272842b4aecSRob Herring    gpu@ffe40000 {
273842b4aecSRob Herring      compatible = "amlogic,meson-g12a-mali", "arm,mali-bifrost";
274842b4aecSRob Herring      reg = <0xffe40000 0x10000>;
275842b4aecSRob Herring      interrupts = <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>,
276842b4aecSRob Herring             <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>,
277842b4aecSRob Herring             <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>;
278842b4aecSRob Herring      interrupt-names = "job", "mmu", "gpu";
279842b4aecSRob Herring      clocks = <&clk 1>;
280842b4aecSRob Herring      mali-supply = <&vdd_gpu>;
281842b4aecSRob Herring      operating-points-v2 = <&gpu_opp_table>;
282842b4aecSRob Herring      resets = <&reset 0>, <&reset 1>;
283842b4aecSRob Herring    };
284842b4aecSRob Herring
28529fc7695SRob Herring    gpu_opp_table: opp-table {
286842b4aecSRob Herring      compatible = "operating-points-v2";
287842b4aecSRob Herring
28851a21e0eSRob Herring      opp-533000000 {
289842b4aecSRob Herring        opp-hz = /bits/ 64 <533000000>;
290842b4aecSRob Herring        opp-microvolt = <1250000>;
291842b4aecSRob Herring      };
29251a21e0eSRob Herring      opp-450000000 {
293842b4aecSRob Herring        opp-hz = /bits/ 64 <450000000>;
294842b4aecSRob Herring        opp-microvolt = <1150000>;
295842b4aecSRob Herring      };
29651a21e0eSRob Herring      opp-400000000 {
297842b4aecSRob Herring        opp-hz = /bits/ 64 <400000000>;
298842b4aecSRob Herring        opp-microvolt = <1125000>;
299842b4aecSRob Herring      };
30051a21e0eSRob Herring      opp-350000000 {
301842b4aecSRob Herring        opp-hz = /bits/ 64 <350000000>;
302842b4aecSRob Herring        opp-microvolt = <1075000>;
303842b4aecSRob Herring      };
30451a21e0eSRob Herring      opp-266000000 {
305842b4aecSRob Herring        opp-hz = /bits/ 64 <266000000>;
306842b4aecSRob Herring        opp-microvolt = <1025000>;
307842b4aecSRob Herring      };
30851a21e0eSRob Herring      opp-160000000 {
309842b4aecSRob Herring        opp-hz = /bits/ 64 <160000000>;
310842b4aecSRob Herring        opp-microvolt = <925000>;
311842b4aecSRob Herring      };
31251a21e0eSRob Herring      opp-100000000 {
313842b4aecSRob Herring        opp-hz = /bits/ 64 <100000000>;
314842b4aecSRob Herring        opp-microvolt = <912500>;
315842b4aecSRob Herring      };
316842b4aecSRob Herring    };
317842b4aecSRob Herring
318842b4aecSRob Herring...
319