blob: e1749e92a2e79524fc1d242724e5de036f3b67aa [file] [log] [blame]
Thomas Gleixnerd2912cb2019-06-04 10:11:33 +02001// SPDX-License-Identifier: GPL-2.0-only
Maxime COQUELIN63f31712015-01-09 16:11:00 +01002/*
3 * Copyright (C) 2015 STMicroelectronics R&D Limited
Maxime COQUELIN63f31712015-01-09 16:11:00 +01004 */
5#include <dt-bindings/clock/stih418-clks.h>
6/ {
Patrice Chotardcb10ca82018-02-13 12:59:51 +01007 /*
8 * Fixed 30MHz oscillator inputs to SoC
9 */
10 clk_sysin: clk-sysin {
11 #clock-cells = <0>;
12 compatible = "fixed-clock";
13 clock-frequency = <30000000>;
14 clock-output-names = "CLK_SYSIN";
15 };
16
17 clk_tmdsout_hdmi: clk-tmdsout-hdmi {
18 #clock-cells = <0>;
19 compatible = "fixed-clock";
20 clock-frequency = <0>;
21 };
22
Maxime COQUELIN63f31712015-01-09 16:11:00 +010023 clocks {
24 #address-cells = <1>;
25 #size-cells = <1>;
26 ranges;
27
28 compatible = "st,stih418-clk", "simple-bus";
29
30 /*
Maxime COQUELIN63f31712015-01-09 16:11:00 +010031 * A9 PLL.
32 */
33 clockgen-a9@92b0000 {
34 compatible = "st,clkgen-c32";
Alain Volmatc0749d2d2022-02-11 19:16:10 +010035 reg = <0x92b0000 0x10000>;
Maxime COQUELIN63f31712015-01-09 16:11:00 +010036
37 clockgen_a9_pll: clockgen-a9-pll {
38 #clock-cells = <1>;
Gabriel Fernandez665c8ec2016-08-29 14:26:00 +020039 compatible = "st,stih418-clkgen-plla9";
Maxime COQUELIN63f31712015-01-09 16:11:00 +010040
41 clocks = <&clk_sysin>;
Maxime COQUELIN63f31712015-01-09 16:11:00 +010042 };
Maxime COQUELIN63f31712015-01-09 16:11:00 +010043
Patrice Chotardcb10ca82018-02-13 12:59:51 +010044 /*
Alain Volmatc0749d2d2022-02-11 19:16:10 +010045 * ARM CPU related clocks.
Patrice Chotardcb10ca82018-02-13 12:59:51 +010046 */
Alain Volmatc0749d2d2022-02-11 19:16:10 +010047 clk_m_a9: clk-m-a9 {
Patrice Chotardcb10ca82018-02-13 12:59:51 +010048 #clock-cells = <0>;
Alain Volmatc0749d2d2022-02-11 19:16:10 +010049 compatible = "st,stih407-clkgen-a9-mux", "st,clkgen-mux";
50
51 clocks = <&clockgen_a9_pll 0>,
52 <&clockgen_a9_pll 0>,
53 <&clk_s_c0_flexgen 13>,
54 <&clk_m_a9_ext2f_div2>;
55
56 /*
57 * ARM Peripheral clock for timers
58 */
59 arm_periph_clk: clk-m-a9-periphs {
60 #clock-cells = <0>;
61 compatible = "fixed-factor-clock";
62 clocks = <&clk_m_a9>;
63 clock-div = <2>;
64 clock-mult = <1>;
65 };
Patrice Chotardcb10ca82018-02-13 12:59:51 +010066 };
Maxime COQUELIN63f31712015-01-09 16:11:00 +010067 };
68
Rob Herring8dccafa2017-10-13 12:54:51 -050069 clockgen-a@90ff000 {
Maxime COQUELIN63f31712015-01-09 16:11:00 +010070 compatible = "st,clkgen-c32";
71 reg = <0x90ff000 0x1000>;
72
73 clk_s_a0_pll: clk-s-a0-pll {
74 #clock-cells = <1>;
Alain Volmat19007a652021-03-31 22:42:21 +020075 compatible = "st,clkgen-pll0-a0";
Maxime COQUELIN63f31712015-01-09 16:11:00 +010076
77 clocks = <&clk_sysin>;
Maxime COQUELIN63f31712015-01-09 16:11:00 +010078 };
79
80 clk_s_a0_flexgen: clk-s-a0-flexgen {
Alain Volmata7056e02021-03-31 22:42:16 +020081 compatible = "st,flexgen", "st,flexgen-stih410-a0";
Maxime COQUELIN63f31712015-01-09 16:11:00 +010082
83 #clock-cells = <1>;
84
85 clocks = <&clk_s_a0_pll 0>,
86 <&clk_sysin>;
Maxime COQUELIN63f31712015-01-09 16:11:00 +010087 };
88 };
89
Rob Herring8dccafa2017-10-13 12:54:51 -050090 clk_s_c0: clockgen-c@9103000 {
Maxime COQUELIN63f31712015-01-09 16:11:00 +010091 compatible = "st,clkgen-c32";
92 reg = <0x9103000 0x1000>;
93
94 clk_s_c0_pll0: clk-s-c0-pll0 {
95 #clock-cells = <1>;
Alain Volmat19007a652021-03-31 22:42:21 +020096 compatible = "st,clkgen-pll0-c0";
Maxime COQUELIN63f31712015-01-09 16:11:00 +010097
98 clocks = <&clk_sysin>;
Maxime COQUELIN63f31712015-01-09 16:11:00 +010099 };
100
101 clk_s_c0_pll1: clk-s-c0-pll1 {
102 #clock-cells = <1>;
Alain Volmat19007a652021-03-31 22:42:21 +0200103 compatible = "st,clkgen-pll1-c0";
Maxime COQUELIN63f31712015-01-09 16:11:00 +0100104
105 clocks = <&clk_sysin>;
Maxime COQUELIN63f31712015-01-09 16:11:00 +0100106 };
107
Alain Volmatc0749d2d2022-02-11 19:16:10 +0100108 clk_s_c0_quadfs: clk-s-c0-quadfs {
109 #clock-cells = <1>;
110 compatible = "st,quadfs-pll";
111
112 clocks = <&clk_sysin>;
113 };
114
Maxime COQUELIN63f31712015-01-09 16:11:00 +0100115 clk_s_c0_flexgen: clk-s-c0-flexgen {
116 #clock-cells = <1>;
Alain Volmata7056e02021-03-31 22:42:16 +0200117 compatible = "st,flexgen", "st,flexgen-stih418-c0";
Maxime COQUELIN63f31712015-01-09 16:11:00 +0100118
119 clocks = <&clk_s_c0_pll0 0>,
120 <&clk_s_c0_pll1 0>,
121 <&clk_s_c0_quadfs 0>,
122 <&clk_s_c0_quadfs 1>,
123 <&clk_s_c0_quadfs 2>,
124 <&clk_s_c0_quadfs 3>,
125 <&clk_sysin>;
126
Patrice Chotardcb10ca82018-02-13 12:59:51 +0100127 /*
128 * ARM Peripheral clock for timers
129 */
130 clk_m_a9_ext2f_div2: clk-m-a9-ext2f-div2s {
131 #clock-cells = <0>;
132 compatible = "fixed-factor-clock";
133
134 clocks = <&clk_s_c0_flexgen 13>;
135
136 clock-output-names = "clk-m-a9-ext2f-div2";
137
138 clock-div = <2>;
139 clock-mult = <1>;
140 };
Maxime COQUELIN63f31712015-01-09 16:11:00 +0100141 };
142 };
143
Rob Herring8dccafa2017-10-13 12:54:51 -0500144 clockgen-d0@9104000 {
Maxime COQUELIN63f31712015-01-09 16:11:00 +0100145 compatible = "st,clkgen-c32";
146 reg = <0x9104000 0x1000>;
147
Alain Volmatc0749d2d2022-02-11 19:16:10 +0100148 clk_s_d0_quadfs: clk-s-d0-quadfs {
149 #clock-cells = <1>;
150 compatible = "st,quadfs-d0";
151
152 clocks = <&clk_sysin>;
153 };
154
Maxime COQUELIN63f31712015-01-09 16:11:00 +0100155 clk_s_d0_flexgen: clk-s-d0-flexgen {
156 #clock-cells = <1>;
Alain Volmata7056e02021-03-31 22:42:16 +0200157 compatible = "st,flexgen", "st,flexgen-stih410-d0";
Maxime COQUELIN63f31712015-01-09 16:11:00 +0100158
159 clocks = <&clk_s_d0_quadfs 0>,
160 <&clk_s_d0_quadfs 1>,
161 <&clk_s_d0_quadfs 2>,
162 <&clk_s_d0_quadfs 3>,
163 <&clk_sysin>;
Maxime COQUELIN63f31712015-01-09 16:11:00 +0100164 };
165 };
166
Patrice Chotardd6d854c2018-01-08 11:20:42 +0100167 clockgen-d2@9106000 {
Maxime COQUELIN63f31712015-01-09 16:11:00 +0100168 compatible = "st,clkgen-c32";
169 reg = <0x9106000 0x1000>;
170
Alain Volmatc0749d2d2022-02-11 19:16:10 +0100171 clk_s_d2_quadfs: clk-s-d2-quadfs {
172 #clock-cells = <1>;
173 compatible = "st,quadfs-d2";
174
175 clocks = <&clk_sysin>;
176 };
177
Maxime COQUELIN63f31712015-01-09 16:11:00 +0100178 clk_s_d2_flexgen: clk-s-d2-flexgen {
179 #clock-cells = <1>;
Alain Volmata7056e02021-03-31 22:42:16 +0200180 compatible = "st,flexgen", "st,flexgen-stih418-d2";
Maxime COQUELIN63f31712015-01-09 16:11:00 +0100181
182 clocks = <&clk_s_d2_quadfs 0>,
183 <&clk_s_d2_quadfs 1>,
184 <&clk_s_d2_quadfs 2>,
185 <&clk_s_d2_quadfs 3>,
186 <&clk_sysin>,
187 <&clk_sysin>,
188 <&clk_tmdsout_hdmi>;
Maxime COQUELIN63f31712015-01-09 16:11:00 +0100189 };
190 };
191
Maxime COQUELIN63f31712015-01-09 16:11:00 +0100192 clockgen-d3@9107000 {
193 compatible = "st,clkgen-c32";
194 reg = <0x9107000 0x1000>;
195
Alain Volmatc0749d2d2022-02-11 19:16:10 +0100196 clk_s_d3_quadfs: clk-s-d3-quadfs {
197 #clock-cells = <1>;
198 compatible = "st,quadfs-d3";
199
200 clocks = <&clk_sysin>;
201 };
202
Maxime COQUELIN63f31712015-01-09 16:11:00 +0100203 clk_s_d3_flexgen: clk-s-d3-flexgen {
204 #clock-cells = <1>;
Alain Volmata7056e02021-03-31 22:42:16 +0200205 compatible = "st,flexgen", "st,flexgen-stih407-d3";
Maxime COQUELIN63f31712015-01-09 16:11:00 +0100206
207 clocks = <&clk_s_d3_quadfs 0>,
208 <&clk_s_d3_quadfs 1>,
209 <&clk_s_d3_quadfs 2>,
210 <&clk_s_d3_quadfs 3>,
211 <&clk_sysin>;
Maxime COQUELIN63f31712015-01-09 16:11:00 +0100212 };
213 };
214 };
215};