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