Linux 5.6.13
[linux/fpc-iii.git] / arch / arm / boot / dts / stih418-clock.dtsi
blob8fa0924621029c797f73b432783fc722de6b2629
1 // SPDX-License-Identifier: GPL-2.0-only
2 /*
3  * Copyright (C) 2015 STMicroelectronics R&D Limited
4  */
5 #include <dt-bindings/clock/stih418-clks.h>
6 / {
7         /*
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         };
17         clk_tmdsout_hdmi: clk-tmdsout-hdmi {
18                 #clock-cells = <0>;
19                 compatible = "fixed-clock";
20                 clock-frequency = <0>;
21         };
23         clocks {
24                 #address-cells = <1>;
25                 #size-cells = <1>;
26                 ranges;
28                 compatible = "st,stih418-clk", "simple-bus";
30                 /*
31                  * A9 PLL.
32                  */
33                 clockgen-a9@92b0000 {
34                         compatible = "st,clkgen-c32";
35                         reg = <0x92b0000 0xffff>;
37                         clockgen_a9_pll: clockgen-a9-pll {
38                                 #clock-cells = <1>;
39                                 compatible = "st,stih418-clkgen-plla9";
41                                 clocks = <&clk_sysin>;
43                                 clock-output-names = "clockgen-a9-pll-odf";
44                         };
45                 };
47                 /*
48                  * ARM CPU related clocks.
49                  */
50                 clk_m_a9: clk-m-a9@92b0000 {
51                         #clock-cells = <0>;
52                         compatible = "st,stih407-clkgen-a9-mux", "st,clkgen-mux";
53                         reg = <0x92b0000 0x10000>;
55                         clocks = <&clockgen_a9_pll 0>,
56                                  <&clockgen_a9_pll 0>,
57                                  <&clk_s_c0_flexgen 13>,
58                                  <&clk_m_a9_ext2f_div2>;
60                         /*
61                          * ARM Peripheral clock for timers
62                          */
63                         arm_periph_clk: clk-m-a9-periphs {
64                                 #clock-cells = <0>;
65                                 compatible = "fixed-factor-clock";
66                                 clocks = <&clk_m_a9>;
67                                 clock-div = <2>;
68                                 clock-mult = <1>;
69                         };
70                 };
72                 clockgen-a@90ff000 {
73                         compatible = "st,clkgen-c32";
74                         reg = <0x90ff000 0x1000>;
76                         clk_s_a0_pll: clk-s-a0-pll {
77                                 #clock-cells = <1>;
78                                 compatible = "st,clkgen-pll0";
80                                 clocks = <&clk_sysin>;
82                                 clock-output-names = "clk-s-a0-pll-ofd-0";
83                         };
85                         clk_s_a0_flexgen: clk-s-a0-flexgen {
86                                 compatible = "st,flexgen";
88                                 #clock-cells = <1>;
90                                 clocks = <&clk_s_a0_pll 0>,
91                                          <&clk_sysin>;
93                                 clock-output-names = "clk-ic-lmi0",
94                                                      "clk-ic-lmi1";
95                         };
96                 };
98                 clk_s_c0_quadfs: clk-s-c0-quadfs@9103000 {
99                         #clock-cells = <1>;
100                         compatible = "st,quadfs-pll";
101                         reg = <0x9103000 0x1000>;
103                         clocks = <&clk_sysin>;
105                         clock-output-names = "clk-s-c0-fs0-ch0",
106                                              "clk-s-c0-fs0-ch1",
107                                              "clk-s-c0-fs0-ch2",
108                                              "clk-s-c0-fs0-ch3";
109                 };
111                 clk_s_c0: clockgen-c@9103000 {
112                         compatible = "st,clkgen-c32";
113                         reg = <0x9103000 0x1000>;
115                         clk_s_c0_pll0: clk-s-c0-pll0 {
116                                 #clock-cells = <1>;
117                                 compatible = "st,clkgen-pll0";
119                                 clocks = <&clk_sysin>;
121                                 clock-output-names = "clk-s-c0-pll0-odf-0";
122                         };
124                         clk_s_c0_pll1: clk-s-c0-pll1 {
125                                 #clock-cells = <1>;
126                                 compatible = "st,clkgen-pll1";
128                                 clocks = <&clk_sysin>;
130                                 clock-output-names = "clk-s-c0-pll1-odf-0";
131                         };
133                         clk_s_c0_flexgen: clk-s-c0-flexgen {
134                                 #clock-cells = <1>;
135                                 compatible = "st,flexgen";
137                                 clocks = <&clk_s_c0_pll0 0>,
138                                          <&clk_s_c0_pll1 0>,
139                                          <&clk_s_c0_quadfs 0>,
140                                          <&clk_s_c0_quadfs 1>,
141                                          <&clk_s_c0_quadfs 2>,
142                                          <&clk_s_c0_quadfs 3>,
143                                          <&clk_sysin>;
145                                 clock-output-names = "clk-icn-gpu",
146                                                      "clk-fdma",
147                                                      "clk-nand",
148                                                      "clk-hva",
149                                                      "clk-proc-stfe",
150                                                      "clk-tp",
151                                                      "clk-rx-icn-dmu",
152                                                      "clk-rx-icn-hva",
153                                                      "clk-icn-cpu",
154                                                      "clk-tx-icn-dmu",
155                                                      "clk-mmc-0",
156                                                      "clk-mmc-1",
157                                                      "clk-jpegdec",
158                                                      "clk-icn-reg",
159                                                      "clk-proc-bdisp-0",
160                                                      "clk-proc-bdisp-1",
161                                                      "clk-pp-dmu",
162                                                      "clk-vid-dmu",
163                                                      "clk-dss-lpc",
164                                                      "clk-st231-aud-0",
165                                                      "clk-st231-gp-1",
166                                                      "clk-st231-dmu",
167                                                      "clk-icn-lmi",
168                                                      "clk-tx-icn-1",
169                                                      "clk-icn-sbc",
170                                                      "clk-stfe-frc2",
171                                                      "clk-eth-phyref",
172                                                      "clk-eth-ref-phyclk",
173                                                      "clk-flash-promip",
174                                                      "clk-main-disp",
175                                                      "clk-aux-disp",
176                                                      "clk-compo-dvp",
177                                                      "clk-tx-icn-hades",
178                                                      "clk-rx-icn-hades",
179                                                      "clk-icn-reg-16",
180                                                      "clk-pp-hevc",
181                                                      "clk-clust-hevc",
182                                                      "clk-hwpe-hevc",
183                                                      "clk-fc-hevc",
184                                                      "clk-proc-mixer",
185                                                      "clk-proc-sc",
186                                                      "clk-avsp-hevc";
188                                 /*
189                                  * ARM Peripheral clock for timers
190                                  */
191                                 clk_m_a9_ext2f_div2: clk-m-a9-ext2f-div2s {
192                                         #clock-cells = <0>;
193                                         compatible = "fixed-factor-clock";
195                                         clocks = <&clk_s_c0_flexgen 13>;
197                                         clock-output-names = "clk-m-a9-ext2f-div2";
199                                         clock-div = <2>;
200                                         clock-mult = <1>;
201                                 };
202                         };
203                 };
205                 clk_s_d0_quadfs: clk-s-d0-quadfs@9104000 {
206                         #clock-cells = <1>;
207                         compatible = "st,quadfs";
208                         reg = <0x9104000 0x1000>;
210                         clocks = <&clk_sysin>;
212                         clock-output-names = "clk-s-d0-fs0-ch0",
213                                              "clk-s-d0-fs0-ch1",
214                                              "clk-s-d0-fs0-ch2",
215                                              "clk-s-d0-fs0-ch3";
216                 };
218                 clockgen-d0@9104000 {
219                         compatible = "st,clkgen-c32";
220                         reg = <0x9104000 0x1000>;
222                         clk_s_d0_flexgen: clk-s-d0-flexgen {
223                                 #clock-cells = <1>;
224                                 compatible = "st,flexgen-audio", "st,flexgen";
226                                 clocks = <&clk_s_d0_quadfs 0>,
227                                          <&clk_s_d0_quadfs 1>,
228                                          <&clk_s_d0_quadfs 2>,
229                                          <&clk_s_d0_quadfs 3>,
230                                          <&clk_sysin>;
232                                 clock-output-names = "clk-pcm-0",
233                                                      "clk-pcm-1",
234                                                      "clk-pcm-2",
235                                                      "clk-spdiff",
236                                                      "clk-pcmr10-master",
237                                                      "clk-usb2-phy";
238                         };
239                 };
241                 clk_s_d2_quadfs: clk-s-d2-quadfs@9106000 {
242                         #clock-cells = <1>;
243                         compatible = "st,quadfs";
244                         reg = <0x9106000 0x1000>;
246                         clocks = <&clk_sysin>;
248                         clock-output-names = "clk-s-d2-fs0-ch0",
249                                              "clk-s-d2-fs0-ch1",
250                                              "clk-s-d2-fs0-ch2",
251                                              "clk-s-d2-fs0-ch3";
252                 };
254                 clockgen-d2@9106000 {
255                         compatible = "st,clkgen-c32";
256                         reg = <0x9106000 0x1000>;
258                         clk_s_d2_flexgen: clk-s-d2-flexgen {
259                                 #clock-cells = <1>;
260                                 compatible = "st,flexgen-video", "st,flexgen";
262                                 clocks = <&clk_s_d2_quadfs 0>,
263                                          <&clk_s_d2_quadfs 1>,
264                                          <&clk_s_d2_quadfs 2>,
265                                          <&clk_s_d2_quadfs 3>,
266                                          <&clk_sysin>,
267                                          <&clk_sysin>,
268                                          <&clk_tmdsout_hdmi>;
270                                 clock-output-names = "clk-pix-main-disp",
271                                                      "",
272                                                      "",
273                                                      "",
274                                                      "",
275                                                      "clk-tmds-hdmi-div2",
276                                                      "clk-pix-aux-disp",
277                                                      "clk-denc",
278                                                      "clk-pix-hddac",
279                                                      "clk-hddac",
280                                                      "clk-sddac",
281                                                      "clk-pix-dvo",
282                                                      "clk-dvo",
283                                                      "clk-pix-hdmi",
284                                                      "clk-tmds-hdmi",
285                                                      "clk-ref-hdmiphy",
286                                                      "", "", "", "", "",
287                                                      "", "", "", "", "",
288                                                      "", "", "", "", "",
289                                                      "", "", "", "", "",
290                                                      "", "", "", "", "",
291                                                      "", "", "", "", "",
292                                                      "", "clk-vp9";
293                         };
294                 };
296                 clk_s_d3_quadfs: clk-s-d3-quadfs@9107000 {
297                         #clock-cells = <1>;
298                         compatible = "st,quadfs";
299                         reg = <0x9107000 0x1000>;
301                         clocks = <&clk_sysin>;
303                         clock-output-names = "clk-s-d3-fs0-ch0",
304                                              "clk-s-d3-fs0-ch1",
305                                              "clk-s-d3-fs0-ch2",
306                                              "clk-s-d3-fs0-ch3";
307                 };
309                 clockgen-d3@9107000 {
310                         compatible = "st,clkgen-c32";
311                         reg = <0x9107000 0x1000>;
313                         clk_s_d3_flexgen: clk-s-d3-flexgen {
314                                 #clock-cells = <1>;
315                                 compatible = "st,flexgen";
317                                 clocks = <&clk_s_d3_quadfs 0>,
318                                          <&clk_s_d3_quadfs 1>,
319                                          <&clk_s_d3_quadfs 2>,
320                                          <&clk_s_d3_quadfs 3>,
321                                          <&clk_sysin>;
323                                 clock-output-names = "clk-stfe-frc1",
324                                                      "clk-tsout-0",
325                                                      "clk-tsout-1",
326                                                      "clk-mchi",
327                                                      "clk-vsens-compo",
328                                                      "clk-frc1-remote",
329                                                      "clk-lpc-0",
330                                                      "clk-lpc-1";
331                         };
332                 };
333         };