xref: /freebsd/sys/contrib/device-tree/Bindings/clock/mediatek,mt8195-sys-clock.yaml (revision b2d2a78ad80ec68d4a17f5aef97d21686cb1e29b)
1*b2d2a78aSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2*b2d2a78aSEmmanuel Vadot%YAML 1.2
3*b2d2a78aSEmmanuel Vadot---
4*b2d2a78aSEmmanuel Vadot$id: http://devicetree.org/schemas/clock/mediatek,mt8195-sys-clock.yaml#
5*b2d2a78aSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*b2d2a78aSEmmanuel Vadot
7*b2d2a78aSEmmanuel Vadottitle: MediaTek System Clock Controller for MT8195
8*b2d2a78aSEmmanuel Vadot
9*b2d2a78aSEmmanuel Vadotmaintainers:
10*b2d2a78aSEmmanuel Vadot  - Chun-Jie Chen <chun-jie.chen@mediatek.com>
11*b2d2a78aSEmmanuel Vadot
12*b2d2a78aSEmmanuel Vadotdescription:
13*b2d2a78aSEmmanuel Vadot  The clock architecture in Mediatek like below
14*b2d2a78aSEmmanuel Vadot  PLLs -->
15*b2d2a78aSEmmanuel Vadot          dividers -->
16*b2d2a78aSEmmanuel Vadot                      muxes
17*b2d2a78aSEmmanuel Vadot                           -->
18*b2d2a78aSEmmanuel Vadot                              clock gate
19*b2d2a78aSEmmanuel Vadot
20*b2d2a78aSEmmanuel Vadot  The apmixedsys provides most of PLLs which generated from SoC 26m.
21*b2d2a78aSEmmanuel Vadot  The topckgen provides dividers and muxes which provide the clock source to other IP blocks.
22*b2d2a78aSEmmanuel Vadot  The infracfg_ao and pericfg_ao provides clock gate in peripheral and infrastructure IP blocks.
23*b2d2a78aSEmmanuel Vadot
24*b2d2a78aSEmmanuel Vadotproperties:
25*b2d2a78aSEmmanuel Vadot  compatible:
26*b2d2a78aSEmmanuel Vadot    items:
27*b2d2a78aSEmmanuel Vadot      - enum:
28*b2d2a78aSEmmanuel Vadot          - mediatek,mt8195-topckgen
29*b2d2a78aSEmmanuel Vadot          - mediatek,mt8195-infracfg_ao
30*b2d2a78aSEmmanuel Vadot          - mediatek,mt8195-apmixedsys
31*b2d2a78aSEmmanuel Vadot          - mediatek,mt8195-pericfg_ao
32*b2d2a78aSEmmanuel Vadot      - const: syscon
33*b2d2a78aSEmmanuel Vadot
34*b2d2a78aSEmmanuel Vadot  reg:
35*b2d2a78aSEmmanuel Vadot    maxItems: 1
36*b2d2a78aSEmmanuel Vadot
37*b2d2a78aSEmmanuel Vadot  '#clock-cells':
38*b2d2a78aSEmmanuel Vadot    const: 1
39*b2d2a78aSEmmanuel Vadot
40*b2d2a78aSEmmanuel Vadot  '#reset-cells':
41*b2d2a78aSEmmanuel Vadot    const: 1
42*b2d2a78aSEmmanuel Vadot
43*b2d2a78aSEmmanuel Vadotrequired:
44*b2d2a78aSEmmanuel Vadot  - compatible
45*b2d2a78aSEmmanuel Vadot  - reg
46*b2d2a78aSEmmanuel Vadot
47*b2d2a78aSEmmanuel VadotadditionalProperties: false
48*b2d2a78aSEmmanuel Vadot
49*b2d2a78aSEmmanuel Vadotexamples:
50*b2d2a78aSEmmanuel Vadot  - |
51*b2d2a78aSEmmanuel Vadot    topckgen: syscon@10000000 {
52*b2d2a78aSEmmanuel Vadot        compatible = "mediatek,mt8195-topckgen", "syscon";
53*b2d2a78aSEmmanuel Vadot        reg = <0x10000000 0x1000>;
54*b2d2a78aSEmmanuel Vadot        #clock-cells = <1>;
55*b2d2a78aSEmmanuel Vadot    };
56*b2d2a78aSEmmanuel Vadot
57*b2d2a78aSEmmanuel Vadot  - |
58*b2d2a78aSEmmanuel Vadot    infracfg_ao: syscon@10001000 {
59*b2d2a78aSEmmanuel Vadot        compatible = "mediatek,mt8195-infracfg_ao", "syscon";
60*b2d2a78aSEmmanuel Vadot        reg = <0x10001000 0x1000>;
61*b2d2a78aSEmmanuel Vadot        #clock-cells = <1>;
62*b2d2a78aSEmmanuel Vadot    };
63*b2d2a78aSEmmanuel Vadot
64*b2d2a78aSEmmanuel Vadot  - |
65*b2d2a78aSEmmanuel Vadot    apmixedsys: syscon@1000c000 {
66*b2d2a78aSEmmanuel Vadot        compatible = "mediatek,mt8195-apmixedsys", "syscon";
67*b2d2a78aSEmmanuel Vadot        reg = <0x1000c000 0x1000>;
68*b2d2a78aSEmmanuel Vadot        #clock-cells = <1>;
69*b2d2a78aSEmmanuel Vadot    };
70*b2d2a78aSEmmanuel Vadot
71*b2d2a78aSEmmanuel Vadot  - |
72*b2d2a78aSEmmanuel Vadot    pericfg_ao: syscon@11003000 {
73*b2d2a78aSEmmanuel Vadot        compatible = "mediatek,mt8195-pericfg_ao", "syscon";
74*b2d2a78aSEmmanuel Vadot        reg = <0x11003000 0x1000>;
75*b2d2a78aSEmmanuel Vadot        #clock-cells = <1>;
76*b2d2a78aSEmmanuel Vadot    };
77