xref: /openbmc/linux/Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml (revision f3dde260bb0ed197dd85809f8281eb5a552e8594)
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
20842b4aecSRob Herring      - const: arm,mali-bifrost # Mali Bifrost GPU model/revision is fully discoverable
21842b4aecSRob Herring
22842b4aecSRob Herring  reg:
23842b4aecSRob Herring    maxItems: 1
24842b4aecSRob Herring
25842b4aecSRob Herring  interrupts:
26842b4aecSRob Herring    items:
27842b4aecSRob Herring      - description: Job interrupt
28842b4aecSRob Herring      - description: MMU interrupt
29842b4aecSRob Herring      - description: GPU interrupt
30842b4aecSRob Herring
31842b4aecSRob Herring  interrupt-names:
32842b4aecSRob Herring    items:
33842b4aecSRob Herring      - const: job
34842b4aecSRob Herring      - const: mmu
35842b4aecSRob Herring      - const: gpu
36842b4aecSRob Herring
37842b4aecSRob Herring  clocks:
38842b4aecSRob Herring    maxItems: 1
39842b4aecSRob Herring
40*f3dde260SRob Herring  mali-supply: true
41842b4aecSRob Herring
42842b4aecSRob Herring  operating-points-v2: true
43842b4aecSRob Herring
44842b4aecSRob Herringrequired:
45842b4aecSRob Herring  - compatible
46842b4aecSRob Herring  - reg
47842b4aecSRob Herring  - interrupts
48842b4aecSRob Herring  - interrupt-names
49842b4aecSRob Herring  - clocks
50842b4aecSRob Herring
51842b4aecSRob HerringallOf:
52842b4aecSRob Herring  - if:
53842b4aecSRob Herring      properties:
54842b4aecSRob Herring        compatible:
55842b4aecSRob Herring          contains:
56842b4aecSRob Herring            const: amlogic,meson-g12a-mali
57842b4aecSRob Herring    then:
58842b4aecSRob Herring      properties:
59842b4aecSRob Herring        resets:
60842b4aecSRob Herring          minItems: 2
61842b4aecSRob Herring      required:
62842b4aecSRob Herring        - resets
63842b4aecSRob Herring
64842b4aecSRob Herringexamples:
65842b4aecSRob Herring  - |
66842b4aecSRob Herring    #include <dt-bindings/interrupt-controller/irq.h>
67842b4aecSRob Herring    #include <dt-bindings/interrupt-controller/arm-gic.h>
68842b4aecSRob Herring
69842b4aecSRob Herring    gpu@ffe40000 {
70842b4aecSRob Herring      compatible = "amlogic,meson-g12a-mali", "arm,mali-bifrost";
71842b4aecSRob Herring      reg = <0xffe40000 0x10000>;
72842b4aecSRob Herring      interrupts = <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>,
73842b4aecSRob Herring             <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>,
74842b4aecSRob Herring             <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>;
75842b4aecSRob Herring      interrupt-names = "job", "mmu", "gpu";
76842b4aecSRob Herring      clocks = <&clk 1>;
77842b4aecSRob Herring      mali-supply = <&vdd_gpu>;
78842b4aecSRob Herring      operating-points-v2 = <&gpu_opp_table>;
79842b4aecSRob Herring      resets = <&reset 0>, <&reset 1>;
80842b4aecSRob Herring    };
81842b4aecSRob Herring
82842b4aecSRob Herring    gpu_opp_table: opp_table0 {
83842b4aecSRob Herring      compatible = "operating-points-v2";
84842b4aecSRob Herring
85842b4aecSRob Herring      opp@533000000 {
86842b4aecSRob Herring        opp-hz = /bits/ 64 <533000000>;
87842b4aecSRob Herring        opp-microvolt = <1250000>;
88842b4aecSRob Herring      };
89842b4aecSRob Herring      opp@450000000 {
90842b4aecSRob Herring        opp-hz = /bits/ 64 <450000000>;
91842b4aecSRob Herring        opp-microvolt = <1150000>;
92842b4aecSRob Herring      };
93842b4aecSRob Herring      opp@400000000 {
94842b4aecSRob Herring        opp-hz = /bits/ 64 <400000000>;
95842b4aecSRob Herring        opp-microvolt = <1125000>;
96842b4aecSRob Herring      };
97842b4aecSRob Herring      opp@350000000 {
98842b4aecSRob Herring        opp-hz = /bits/ 64 <350000000>;
99842b4aecSRob Herring        opp-microvolt = <1075000>;
100842b4aecSRob Herring      };
101842b4aecSRob Herring      opp@266000000 {
102842b4aecSRob Herring        opp-hz = /bits/ 64 <266000000>;
103842b4aecSRob Herring        opp-microvolt = <1025000>;
104842b4aecSRob Herring      };
105842b4aecSRob Herring      opp@160000000 {
106842b4aecSRob Herring        opp-hz = /bits/ 64 <160000000>;
107842b4aecSRob Herring        opp-microvolt = <925000>;
108842b4aecSRob Herring      };
109842b4aecSRob Herring      opp@100000000 {
110842b4aecSRob Herring        opp-hz = /bits/ 64 <100000000>;
111842b4aecSRob Herring        opp-microvolt = <912500>;
112842b4aecSRob Herring      };
113842b4aecSRob Herring    };
114842b4aecSRob Herring
115842b4aecSRob Herring...
116