xref: /linux/Documentation/devicetree/bindings/power/mediatek,mt8196-gpufreq.yaml (revision 84318277d6334c6981ab326d4acc87c6a6ddc9b8)
1# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/power/mediatek,mt8196-gpufreq.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: MediaTek MFlexGraphics Power and Frequency Controller
8
9maintainers:
10  - Nicolas Frattaroli <nicolas.frattaroli@collabora.com>
11
12description:
13  A special-purpose embedded MCU to control power and frequency of GPU devices
14  using MediaTek Flexible Graphics integration hardware.
15
16properties:
17  $nodename:
18    pattern: '^power-controller@[a-f0-9]+$'
19
20  compatible:
21    enum:
22      - mediatek,mt8196-gpufreq
23
24  reg:
25    items:
26      - description: GPR memory area
27      - description: RPC memory area
28      - description: SoC variant ID register
29
30  reg-names:
31    items:
32      - const: gpr
33      - const: rpc
34      - const: hw-revision
35
36  clocks:
37    items:
38      - description: main clock of the embedded controller (EB)
39      - description: core PLL
40      - description: stack 0 PLL
41      - description: stack 1 PLL
42
43  clock-names:
44    items:
45      - const: eb
46      - const: core
47      - const: stack0
48      - const: stack1
49
50  mboxes:
51    items:
52      - description: FastDVFS events
53      - description: frequency control
54      - description: sleep control
55      - description: timer control
56      - description: frequency hopping control
57      - description: hardware voter control
58      - description: FastDVFS control
59
60  mbox-names:
61    items:
62      - const: fast-dvfs-event
63      - const: gpufreq
64      - const: sleep
65      - const: timer
66      - const: fhctl
67      - const: ccf
68      - const: fast-dvfs
69
70  memory-region:
71    items:
72      - description: phandle to the GPUEB shared memory
73
74  "#clock-cells":
75    const: 1
76
77  "#power-domain-cells":
78    const: 0
79
80required:
81  - compatible
82  - reg
83  - reg-names
84  - clocks
85  - clock-names
86  - mboxes
87  - mbox-names
88  - memory-region
89  - "#clock-cells"
90  - "#power-domain-cells"
91
92additionalProperties: false
93
94examples:
95  - |
96    #include <dt-bindings/clock/mediatek,mt8196-clock.h>
97
98    power-controller@4b09fd00 {
99        compatible = "mediatek,mt8196-gpufreq";
100        reg = <0x4b09fd00 0x80>,
101              <0x4b800000 0x1000>,
102              <0x4b860128 0x4>;
103        reg-names = "gpr", "rpc", "hw-revision";
104        clocks = <&topckgen CLK_TOP_MFG_EB>,
105                 <&mfgpll CLK_MFG_AO_MFGPLL>,
106                 <&mfgpll_sc0 CLK_MFGSC0_AO_MFGPLL_SC0>,
107                 <&mfgpll_sc1 CLK_MFGSC1_AO_MFGPLL_SC1>;
108        clock-names = "eb", "core", "stack0", "stack1";
109        mboxes = <&gpueb_mbox 0>, <&gpueb_mbox 1>, <&gpueb_mbox 2>,
110                 <&gpueb_mbox 3>, <&gpueb_mbox 4>, <&gpueb_mbox 5>,
111                 <&gpueb_mbox 7>;
112        mbox-names = "fast-dvfs-event", "gpufreq", "sleep", "timer", "fhctl",
113                     "ccf", "fast-dvfs";
114        memory-region = <&gpueb_shared_memory>;
115        #clock-cells = <1>;
116        #power-domain-cells = <0>;
117    };
118