xref: /linux/Documentation/devicetree/bindings/clock/renesas,cpg-mstp-clocks.yaml (revision 4b4193256c8d3bc3a5397b5cd9494c2ad386317d)
1*9b9df63bSGeert Uytterhoeven# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*9b9df63bSGeert Uytterhoeven%YAML 1.2
3*9b9df63bSGeert Uytterhoeven---
4*9b9df63bSGeert Uytterhoeven$id: http://devicetree.org/schemas/clock/renesas,cpg-mstp-clocks.yaml#
5*9b9df63bSGeert Uytterhoeven$schema: http://devicetree.org/meta-schemas/core.yaml#
6*9b9df63bSGeert Uytterhoeven
7*9b9df63bSGeert Uytterhoeventitle: Renesas Clock Pulse Generator (CPG) Module Stop (MSTP) Clocks
8*9b9df63bSGeert Uytterhoeven
9*9b9df63bSGeert Uytterhoevenmaintainers:
10*9b9df63bSGeert Uytterhoeven  - Geert Uytterhoeven <geert+renesas@glider.be>
11*9b9df63bSGeert Uytterhoeven
12*9b9df63bSGeert Uytterhoevendescription:
13*9b9df63bSGeert Uytterhoeven  The Clock Pulse Generator (CPG) can gate SoC device clocks. The gates are
14*9b9df63bSGeert Uytterhoeven  organized in groups of up to 32 gates.
15*9b9df63bSGeert Uytterhoeven
16*9b9df63bSGeert Uytterhoeven  This device tree binding describes a single 32 gate clocks group per node.
17*9b9df63bSGeert Uytterhoeven  Clocks are referenced by user nodes by the Module Stop (MSTP) node phandle
18*9b9df63bSGeert Uytterhoeven  and the clock index in the group, from 0 to 31.
19*9b9df63bSGeert Uytterhoeven
20*9b9df63bSGeert Uytterhoevenproperties:
21*9b9df63bSGeert Uytterhoeven  compatible:
22*9b9df63bSGeert Uytterhoeven    items:
23*9b9df63bSGeert Uytterhoeven      - enum:
24*9b9df63bSGeert Uytterhoeven          - renesas,r7s72100-mstp-clocks # RZ/A1
25*9b9df63bSGeert Uytterhoeven          - renesas,r8a73a4-mstp-clocks  # R-Mobile APE6
26*9b9df63bSGeert Uytterhoeven          - renesas,r8a7740-mstp-clocks  # R-Mobile A1
27*9b9df63bSGeert Uytterhoeven          - renesas,r8a7778-mstp-clocks  # R-Car M1
28*9b9df63bSGeert Uytterhoeven          - renesas,r8a7779-mstp-clocks  # R-Car H1
29*9b9df63bSGeert Uytterhoeven          - renesas,sh73a0-mstp-clocks   # SH-Mobile AG5
30*9b9df63bSGeert Uytterhoeven      - const: renesas,cpg-mstp-clocks
31*9b9df63bSGeert Uytterhoeven
32*9b9df63bSGeert Uytterhoeven  reg:
33*9b9df63bSGeert Uytterhoeven    minItems: 1
34*9b9df63bSGeert Uytterhoeven    items:
35*9b9df63bSGeert Uytterhoeven      - description: Module Stop Control Register (MSTPCR)
36*9b9df63bSGeert Uytterhoeven      - description: Module Stop Status Register (MSTPSR)
37*9b9df63bSGeert Uytterhoeven
38*9b9df63bSGeert Uytterhoeven  clocks:
39*9b9df63bSGeert Uytterhoeven    minItems: 1
40*9b9df63bSGeert Uytterhoeven    maxItems: 32
41*9b9df63bSGeert Uytterhoeven
42*9b9df63bSGeert Uytterhoeven  '#clock-cells':
43*9b9df63bSGeert Uytterhoeven    const: 1
44*9b9df63bSGeert Uytterhoeven
45*9b9df63bSGeert Uytterhoeven  clock-indices:
46*9b9df63bSGeert Uytterhoeven    minItems: 1
47*9b9df63bSGeert Uytterhoeven    maxItems: 32
48*9b9df63bSGeert Uytterhoeven
49*9b9df63bSGeert Uytterhoeven  clock-output-names:
50*9b9df63bSGeert Uytterhoeven    minItems: 1
51*9b9df63bSGeert Uytterhoeven    maxItems: 32
52*9b9df63bSGeert Uytterhoeven
53*9b9df63bSGeert Uytterhoevenrequired:
54*9b9df63bSGeert Uytterhoeven  - compatible
55*9b9df63bSGeert Uytterhoeven  - reg
56*9b9df63bSGeert Uytterhoeven  - clocks
57*9b9df63bSGeert Uytterhoeven  - '#clock-cells'
58*9b9df63bSGeert Uytterhoeven  - clock-indices
59*9b9df63bSGeert Uytterhoeven  - clock-output-names
60*9b9df63bSGeert Uytterhoeven
61*9b9df63bSGeert UytterhoevenadditionalProperties: false
62*9b9df63bSGeert Uytterhoeven
63*9b9df63bSGeert Uytterhoevenexamples:
64*9b9df63bSGeert Uytterhoeven  - |
65*9b9df63bSGeert Uytterhoeven    #include <dt-bindings/clock/r8a73a4-clock.h>
66*9b9df63bSGeert Uytterhoeven    mstp2_clks: mstp2_clks@e6150138 {
67*9b9df63bSGeert Uytterhoeven            compatible = "renesas,r8a73a4-mstp-clocks",
68*9b9df63bSGeert Uytterhoeven                         "renesas,cpg-mstp-clocks";
69*9b9df63bSGeert Uytterhoeven            reg = <0xe6150138 4>, <0xe6150040 4>;
70*9b9df63bSGeert Uytterhoeven            clocks = <&mp_clk>, <&mp_clk>, <&mp_clk>, <&mp_clk>, <&mp_clk>,
71*9b9df63bSGeert Uytterhoeven                     <&mp_clk>, <&cpg_clocks R8A73A4_CLK_HP>;
72*9b9df63bSGeert Uytterhoeven            #clock-cells = <1>;
73*9b9df63bSGeert Uytterhoeven            clock-indices = <
74*9b9df63bSGeert Uytterhoeven                    R8A73A4_CLK_SCIFA0 R8A73A4_CLK_SCIFA1
75*9b9df63bSGeert Uytterhoeven                    R8A73A4_CLK_SCIFB0 R8A73A4_CLK_SCIFB1
76*9b9df63bSGeert Uytterhoeven                    R8A73A4_CLK_SCIFB2 R8A73A4_CLK_SCIFB3
77*9b9df63bSGeert Uytterhoeven                    R8A73A4_CLK_DMAC
78*9b9df63bSGeert Uytterhoeven            >;
79*9b9df63bSGeert Uytterhoeven            clock-output-names =
80*9b9df63bSGeert Uytterhoeven                    "scifa0", "scifa1", "scifb0", "scifb1", "scifb2", "scifb3",
81*9b9df63bSGeert Uytterhoeven                    "dmac";
82*9b9df63bSGeert Uytterhoeven    };
83