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