blob: 13fb8db52fc1b822b3275053ab42b82300aa5806 [file] [log] [blame]
Maxime COQUELIN63f31712015-01-09 16:11:00 +01001/*
2 * Copyright (C) 2015 STMicroelectronics R&D Limited
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation.
7 */
8#include <dt-bindings/clock/stih418-clks.h>
9/ {
Patrice Chotardcb10ca82018-02-13 12:59:51 +010010 /*
11 * Fixed 30MHz oscillator inputs to SoC
12 */
13 clk_sysin: clk-sysin {
14 #clock-cells = <0>;
15 compatible = "fixed-clock";
16 clock-frequency = <30000000>;
17 clock-output-names = "CLK_SYSIN";
18 };
19
20 clk_tmdsout_hdmi: clk-tmdsout-hdmi {
21 #clock-cells = <0>;
22 compatible = "fixed-clock";
23 clock-frequency = <0>;
24 };
25
Maxime COQUELIN63f31712015-01-09 16:11:00 +010026 clocks {
27 #address-cells = <1>;
28 #size-cells = <1>;
29 ranges;
30
31 compatible = "st,stih418-clk", "simple-bus";
32
33 /*
Maxime COQUELIN63f31712015-01-09 16:11:00 +010034 * A9 PLL.
35 */
36 clockgen-a9@92b0000 {
37 compatible = "st,clkgen-c32";
38 reg = <0x92b0000 0xffff>;
39
40 clockgen_a9_pll: clockgen-a9-pll {
41 #clock-cells = <1>;
Gabriel Fernandez665c8ec2016-08-29 14:26:00 +020042 compatible = "st,stih418-clkgen-plla9";
Maxime COQUELIN63f31712015-01-09 16:11:00 +010043
44 clocks = <&clk_sysin>;
45
46 clock-output-names = "clockgen-a9-pll-odf";
47 };
48 };
49
50 /*
51 * ARM CPU related clocks.
52 */
53 clk_m_a9: clk-m-a9@92b0000 {
54 #clock-cells = <0>;
55 compatible = "st,stih407-clkgen-a9-mux", "st,clkgen-mux";
56 reg = <0x92b0000 0x10000>;
57
58 clocks = <&clockgen_a9_pll 0>,
59 <&clockgen_a9_pll 0>,
60 <&clk_s_c0_flexgen 13>,
61 <&clk_m_a9_ext2f_div2>;
Maxime COQUELIN63f31712015-01-09 16:11:00 +010062
Patrice Chotardcb10ca82018-02-13 12:59:51 +010063 /*
64 * ARM Peripheral clock for timers
65 */
66 arm_periph_clk: clk-m-a9-periphs {
67 #clock-cells = <0>;
68 compatible = "fixed-factor-clock";
69 clocks = <&clk_m_a9>;
70 clock-div = <2>;
71 clock-mult = <1>;
72 };
Maxime COQUELIN63f31712015-01-09 16:11:00 +010073 };
74
Rob Herring8dccafa2017-10-13 12:54:51 -050075 clockgen-a@90ff000 {
Maxime COQUELIN63f31712015-01-09 16:11:00 +010076 compatible = "st,clkgen-c32";
77 reg = <0x90ff000 0x1000>;
78
79 clk_s_a0_pll: clk-s-a0-pll {
80 #clock-cells = <1>;
Gabriel Fernandez665c8ec2016-08-29 14:26:00 +020081 compatible = "st,clkgen-pll0";
Maxime COQUELIN63f31712015-01-09 16:11:00 +010082
83 clocks = <&clk_sysin>;
84
85 clock-output-names = "clk-s-a0-pll-ofd-0";
86 };
87
88 clk_s_a0_flexgen: clk-s-a0-flexgen {
89 compatible = "st,flexgen";
90
91 #clock-cells = <1>;
92
93 clocks = <&clk_s_a0_pll 0>,
94 <&clk_sysin>;
95
96 clock-output-names = "clk-ic-lmi0",
97 "clk-ic-lmi1";
98 };
99 };
100
101 clk_s_c0_quadfs: clk-s-c0-quadfs@9103000 {
102 #clock-cells = <1>;
Gabriel Fernandez665c8ec2016-08-29 14:26:00 +0200103 compatible = "st,quadfs-pll";
Maxime COQUELIN63f31712015-01-09 16:11:00 +0100104 reg = <0x9103000 0x1000>;
105
106 clocks = <&clk_sysin>;
107
108 clock-output-names = "clk-s-c0-fs0-ch0",
109 "clk-s-c0-fs0-ch1",
110 "clk-s-c0-fs0-ch2",
111 "clk-s-c0-fs0-ch3";
112 };
113
Rob Herring8dccafa2017-10-13 12:54:51 -0500114 clk_s_c0: clockgen-c@9103000 {
Maxime COQUELIN63f31712015-01-09 16:11:00 +0100115 compatible = "st,clkgen-c32";
116 reg = <0x9103000 0x1000>;
117
118 clk_s_c0_pll0: clk-s-c0-pll0 {
119 #clock-cells = <1>;
Gabriel Fernandez665c8ec2016-08-29 14:26:00 +0200120 compatible = "st,clkgen-pll0";
Maxime COQUELIN63f31712015-01-09 16:11:00 +0100121
122 clocks = <&clk_sysin>;
123
124 clock-output-names = "clk-s-c0-pll0-odf-0";
125 };
126
127 clk_s_c0_pll1: clk-s-c0-pll1 {
128 #clock-cells = <1>;
Gabriel Fernandez665c8ec2016-08-29 14:26:00 +0200129 compatible = "st,clkgen-pll1";
Maxime COQUELIN63f31712015-01-09 16:11:00 +0100130
131 clocks = <&clk_sysin>;
132
133 clock-output-names = "clk-s-c0-pll1-odf-0";
134 };
135
136 clk_s_c0_flexgen: clk-s-c0-flexgen {
137 #clock-cells = <1>;
138 compatible = "st,flexgen";
139
140 clocks = <&clk_s_c0_pll0 0>,
141 <&clk_s_c0_pll1 0>,
142 <&clk_s_c0_quadfs 0>,
143 <&clk_s_c0_quadfs 1>,
144 <&clk_s_c0_quadfs 2>,
145 <&clk_s_c0_quadfs 3>,
146 <&clk_sysin>;
147
148 clock-output-names = "clk-icn-gpu",
149 "clk-fdma",
150 "clk-nand",
151 "clk-hva",
152 "clk-proc-stfe",
153 "clk-tp",
154 "clk-rx-icn-dmu",
155 "clk-rx-icn-hva",
156 "clk-icn-cpu",
157 "clk-tx-icn-dmu",
158 "clk-mmc-0",
159 "clk-mmc-1",
160 "clk-jpegdec",
161 "clk-icn-reg",
162 "clk-proc-bdisp-0",
163 "clk-proc-bdisp-1",
164 "clk-pp-dmu",
165 "clk-vid-dmu",
166 "clk-dss-lpc",
167 "clk-st231-aud-0",
168 "clk-st231-gp-1",
169 "clk-st231-dmu",
170 "clk-icn-lmi",
171 "clk-tx-icn-1",
172 "clk-icn-sbc",
173 "clk-stfe-frc2",
174 "clk-eth-phyref",
175 "clk-eth-ref-phyclk",
176 "clk-flash-promip",
177 "clk-main-disp",
178 "clk-aux-disp",
179 "clk-compo-dvp",
180 "clk-tx-icn-hades",
181 "clk-rx-icn-hades",
182 "clk-icn-reg-16",
183 "clk-pp-hevc",
184 "clk-clust-hevc",
185 "clk-hwpe-hevc",
186 "clk-fc-hevc",
187 "clk-proc-mixer",
188 "clk-proc-sc",
189 "clk-avsp-hevc";
Patrice Chotardcb10ca82018-02-13 12:59:51 +0100190
191 /*
192 * ARM Peripheral clock for timers
193 */
194 clk_m_a9_ext2f_div2: clk-m-a9-ext2f-div2s {
195 #clock-cells = <0>;
196 compatible = "fixed-factor-clock";
197
198 clocks = <&clk_s_c0_flexgen 13>;
199
200 clock-output-names = "clk-m-a9-ext2f-div2";
201
202 clock-div = <2>;
203 clock-mult = <1>;
204 };
Maxime COQUELIN63f31712015-01-09 16:11:00 +0100205 };
206 };
207
208 clk_s_d0_quadfs: clk-s-d0-quadfs@9104000 {
209 #clock-cells = <1>;
Gabriel Fernandez665c8ec2016-08-29 14:26:00 +0200210 compatible = "st,quadfs";
Maxime COQUELIN63f31712015-01-09 16:11:00 +0100211 reg = <0x9104000 0x1000>;
212
213 clocks = <&clk_sysin>;
214
215 clock-output-names = "clk-s-d0-fs0-ch0",
216 "clk-s-d0-fs0-ch1",
217 "clk-s-d0-fs0-ch2",
218 "clk-s-d0-fs0-ch3";
219 };
220
Rob Herring8dccafa2017-10-13 12:54:51 -0500221 clockgen-d0@9104000 {
Maxime COQUELIN63f31712015-01-09 16:11:00 +0100222 compatible = "st,clkgen-c32";
223 reg = <0x9104000 0x1000>;
224
225 clk_s_d0_flexgen: clk-s-d0-flexgen {
226 #clock-cells = <1>;
Gabriel Fernandez97e7abd2016-08-29 14:27:00 +0200227 compatible = "st,flexgen-audio", "st,flexgen";
Maxime COQUELIN63f31712015-01-09 16:11:00 +0100228
229 clocks = <&clk_s_d0_quadfs 0>,
230 <&clk_s_d0_quadfs 1>,
231 <&clk_s_d0_quadfs 2>,
232 <&clk_s_d0_quadfs 3>,
233 <&clk_sysin>;
234
235 clock-output-names = "clk-pcm-0",
236 "clk-pcm-1",
237 "clk-pcm-2",
238 "clk-spdiff",
239 "clk-pcmr10-master",
240 "clk-usb2-phy";
241 };
242 };
243
244 clk_s_d2_quadfs: clk-s-d2-quadfs@9106000 {
245 #clock-cells = <1>;
Gabriel Fernandez665c8ec2016-08-29 14:26:00 +0200246 compatible = "st,quadfs";
Maxime COQUELIN63f31712015-01-09 16:11:00 +0100247 reg = <0x9106000 0x1000>;
248
249 clocks = <&clk_sysin>;
250
251 clock-output-names = "clk-s-d2-fs0-ch0",
252 "clk-s-d2-fs0-ch1",
253 "clk-s-d2-fs0-ch2",
254 "clk-s-d2-fs0-ch3";
255 };
256
Patrice Chotardd6d854c2018-01-08 11:20:42 +0100257 clockgen-d2@9106000 {
Maxime COQUELIN63f31712015-01-09 16:11:00 +0100258 compatible = "st,clkgen-c32";
259 reg = <0x9106000 0x1000>;
260
261 clk_s_d2_flexgen: clk-s-d2-flexgen {
262 #clock-cells = <1>;
Gabriel Fernandez3b8b9f72016-08-29 14:27:00 +0200263 compatible = "st,flexgen-video", "st,flexgen";
Maxime COQUELIN63f31712015-01-09 16:11:00 +0100264
265 clocks = <&clk_s_d2_quadfs 0>,
266 <&clk_s_d2_quadfs 1>,
267 <&clk_s_d2_quadfs 2>,
268 <&clk_s_d2_quadfs 3>,
269 <&clk_sysin>,
270 <&clk_sysin>,
271 <&clk_tmdsout_hdmi>;
272
273 clock-output-names = "clk-pix-main-disp",
274 "",
275 "",
276 "",
277 "",
278 "clk-tmds-hdmi-div2",
279 "clk-pix-aux-disp",
280 "clk-denc",
281 "clk-pix-hddac",
282 "clk-hddac",
283 "clk-sddac",
284 "clk-pix-dvo",
285 "clk-dvo",
286 "clk-pix-hdmi",
287 "clk-tmds-hdmi",
288 "clk-ref-hdmiphy",
289 "", "", "", "", "",
290 "", "", "", "", "",
291 "", "", "", "", "",
292 "", "", "", "", "",
293 "", "", "", "", "",
294 "", "", "", "", "",
295 "", "clk-vp9";
296 };
297 };
298
299 clk_s_d3_quadfs: clk-s-d3-quadfs@9107000 {
300 #clock-cells = <1>;
Gabriel Fernandez665c8ec2016-08-29 14:26:00 +0200301 compatible = "st,quadfs";
Maxime COQUELIN63f31712015-01-09 16:11:00 +0100302 reg = <0x9107000 0x1000>;
303
304 clocks = <&clk_sysin>;
305
306 clock-output-names = "clk-s-d3-fs0-ch0",
307 "clk-s-d3-fs0-ch1",
308 "clk-s-d3-fs0-ch2",
309 "clk-s-d3-fs0-ch3";
310 };
311
312 clockgen-d3@9107000 {
313 compatible = "st,clkgen-c32";
314 reg = <0x9107000 0x1000>;
315
316 clk_s_d3_flexgen: clk-s-d3-flexgen {
317 #clock-cells = <1>;
318 compatible = "st,flexgen";
319
320 clocks = <&clk_s_d3_quadfs 0>,
321 <&clk_s_d3_quadfs 1>,
322 <&clk_s_d3_quadfs 2>,
323 <&clk_s_d3_quadfs 3>,
324 <&clk_sysin>;
325
326 clock-output-names = "clk-stfe-frc1",
327 "clk-tsout-0",
328 "clk-tsout-1",
329 "clk-mchi",
330 "clk-vsens-compo",
331 "clk-frc1-remote",
332 "clk-lpc-0",
333 "clk-lpc-1";
334 };
335 };
336 };
337};