xref: /freebsd-src/sys/contrib/device-tree/src/arm/st/stih418-clock.dtsi (revision f126890ac5386406dadf7c4cfa9566cbb56537c5)
1*f126890aSEmmanuel Vadot// SPDX-License-Identifier: GPL-2.0-only
2*f126890aSEmmanuel Vadot/*
3*f126890aSEmmanuel Vadot * Copyright (C) 2015 STMicroelectronics R&D Limited
4*f126890aSEmmanuel Vadot */
5*f126890aSEmmanuel Vadot#include <dt-bindings/clock/stih418-clks.h>
6*f126890aSEmmanuel Vadot/ {
7*f126890aSEmmanuel Vadot	/*
8*f126890aSEmmanuel Vadot	 * Fixed 30MHz oscillator inputs to SoC
9*f126890aSEmmanuel Vadot	 */
10*f126890aSEmmanuel Vadot	clk_sysin: clk-sysin {
11*f126890aSEmmanuel Vadot		#clock-cells = <0>;
12*f126890aSEmmanuel Vadot		compatible = "fixed-clock";
13*f126890aSEmmanuel Vadot		clock-frequency = <30000000>;
14*f126890aSEmmanuel Vadot		clock-output-names = "CLK_SYSIN";
15*f126890aSEmmanuel Vadot	};
16*f126890aSEmmanuel Vadot
17*f126890aSEmmanuel Vadot	clk_tmdsout_hdmi: clk-tmdsout-hdmi {
18*f126890aSEmmanuel Vadot		#clock-cells = <0>;
19*f126890aSEmmanuel Vadot		compatible = "fixed-clock";
20*f126890aSEmmanuel Vadot		clock-frequency = <0>;
21*f126890aSEmmanuel Vadot	};
22*f126890aSEmmanuel Vadot
23*f126890aSEmmanuel Vadot	clocks {
24*f126890aSEmmanuel Vadot		#address-cells = <1>;
25*f126890aSEmmanuel Vadot		#size-cells = <1>;
26*f126890aSEmmanuel Vadot		ranges;
27*f126890aSEmmanuel Vadot
28*f126890aSEmmanuel Vadot		compatible = "st,stih418-clk", "simple-bus";
29*f126890aSEmmanuel Vadot
30*f126890aSEmmanuel Vadot		/*
31*f126890aSEmmanuel Vadot		 * A9 PLL.
32*f126890aSEmmanuel Vadot		 */
33*f126890aSEmmanuel Vadot		clockgen-a9@92b0000 {
34*f126890aSEmmanuel Vadot			compatible = "st,clkgen-c32";
35*f126890aSEmmanuel Vadot			reg = <0x92b0000 0x10000>;
36*f126890aSEmmanuel Vadot
37*f126890aSEmmanuel Vadot			clockgen_a9_pll: clockgen-a9-pll {
38*f126890aSEmmanuel Vadot				#clock-cells = <1>;
39*f126890aSEmmanuel Vadot				compatible = "st,stih418-clkgen-plla9";
40*f126890aSEmmanuel Vadot
41*f126890aSEmmanuel Vadot				clocks = <&clk_sysin>;
42*f126890aSEmmanuel Vadot			};
43*f126890aSEmmanuel Vadot
44*f126890aSEmmanuel Vadot			/*
45*f126890aSEmmanuel Vadot			 * ARM CPU related clocks.
46*f126890aSEmmanuel Vadot			 */
47*f126890aSEmmanuel Vadot			clk_m_a9: clk-m-a9 {
48*f126890aSEmmanuel Vadot				#clock-cells = <0>;
49*f126890aSEmmanuel Vadot				compatible = "st,stih407-clkgen-a9-mux", "st,clkgen-mux";
50*f126890aSEmmanuel Vadot
51*f126890aSEmmanuel Vadot				clocks = <&clockgen_a9_pll 0>,
52*f126890aSEmmanuel Vadot					 <&clockgen_a9_pll 0>,
53*f126890aSEmmanuel Vadot					 <&clk_s_c0_flexgen 13>,
54*f126890aSEmmanuel Vadot					 <&clk_m_a9_ext2f_div2>;
55*f126890aSEmmanuel Vadot
56*f126890aSEmmanuel Vadot				/*
57*f126890aSEmmanuel Vadot				 * ARM Peripheral clock for timers
58*f126890aSEmmanuel Vadot				 */
59*f126890aSEmmanuel Vadot				arm_periph_clk: clk-m-a9-periphs {
60*f126890aSEmmanuel Vadot					#clock-cells = <0>;
61*f126890aSEmmanuel Vadot					compatible = "fixed-factor-clock";
62*f126890aSEmmanuel Vadot					clocks = <&clk_m_a9>;
63*f126890aSEmmanuel Vadot					clock-div = <2>;
64*f126890aSEmmanuel Vadot					clock-mult = <1>;
65*f126890aSEmmanuel Vadot				};
66*f126890aSEmmanuel Vadot			};
67*f126890aSEmmanuel Vadot		};
68*f126890aSEmmanuel Vadot
69*f126890aSEmmanuel Vadot		clockgen-a@90ff000 {
70*f126890aSEmmanuel Vadot			compatible = "st,clkgen-c32";
71*f126890aSEmmanuel Vadot			reg = <0x90ff000 0x1000>;
72*f126890aSEmmanuel Vadot
73*f126890aSEmmanuel Vadot			clk_s_a0_pll: clk-s-a0-pll {
74*f126890aSEmmanuel Vadot				#clock-cells = <1>;
75*f126890aSEmmanuel Vadot				compatible = "st,clkgen-pll0-a0";
76*f126890aSEmmanuel Vadot
77*f126890aSEmmanuel Vadot				clocks = <&clk_sysin>;
78*f126890aSEmmanuel Vadot			};
79*f126890aSEmmanuel Vadot
80*f126890aSEmmanuel Vadot			clk_s_a0_flexgen: clk-s-a0-flexgen {
81*f126890aSEmmanuel Vadot				compatible = "st,flexgen", "st,flexgen-stih410-a0";
82*f126890aSEmmanuel Vadot
83*f126890aSEmmanuel Vadot				#clock-cells = <1>;
84*f126890aSEmmanuel Vadot
85*f126890aSEmmanuel Vadot				clocks = <&clk_s_a0_pll 0>,
86*f126890aSEmmanuel Vadot					 <&clk_sysin>;
87*f126890aSEmmanuel Vadot			};
88*f126890aSEmmanuel Vadot		};
89*f126890aSEmmanuel Vadot
90*f126890aSEmmanuel Vadot		clk_s_c0: clockgen-c@9103000 {
91*f126890aSEmmanuel Vadot			compatible = "st,clkgen-c32";
92*f126890aSEmmanuel Vadot			reg = <0x9103000 0x1000>;
93*f126890aSEmmanuel Vadot
94*f126890aSEmmanuel Vadot			clk_s_c0_pll0: clk-s-c0-pll0 {
95*f126890aSEmmanuel Vadot				#clock-cells = <1>;
96*f126890aSEmmanuel Vadot				compatible = "st,clkgen-pll0-c0";
97*f126890aSEmmanuel Vadot
98*f126890aSEmmanuel Vadot				clocks = <&clk_sysin>;
99*f126890aSEmmanuel Vadot			};
100*f126890aSEmmanuel Vadot
101*f126890aSEmmanuel Vadot			clk_s_c0_pll1: clk-s-c0-pll1 {
102*f126890aSEmmanuel Vadot				#clock-cells = <1>;
103*f126890aSEmmanuel Vadot				compatible = "st,clkgen-pll1-c0";
104*f126890aSEmmanuel Vadot
105*f126890aSEmmanuel Vadot				clocks = <&clk_sysin>;
106*f126890aSEmmanuel Vadot			};
107*f126890aSEmmanuel Vadot
108*f126890aSEmmanuel Vadot			clk_s_c0_quadfs: clk-s-c0-quadfs {
109*f126890aSEmmanuel Vadot				#clock-cells = <1>;
110*f126890aSEmmanuel Vadot				compatible = "st,quadfs-pll";
111*f126890aSEmmanuel Vadot
112*f126890aSEmmanuel Vadot				clocks = <&clk_sysin>;
113*f126890aSEmmanuel Vadot			};
114*f126890aSEmmanuel Vadot
115*f126890aSEmmanuel Vadot			clk_s_c0_flexgen: clk-s-c0-flexgen {
116*f126890aSEmmanuel Vadot				#clock-cells = <1>;
117*f126890aSEmmanuel Vadot				compatible = "st,flexgen", "st,flexgen-stih418-c0";
118*f126890aSEmmanuel Vadot
119*f126890aSEmmanuel Vadot				clocks = <&clk_s_c0_pll0 0>,
120*f126890aSEmmanuel Vadot					 <&clk_s_c0_pll1 0>,
121*f126890aSEmmanuel Vadot					 <&clk_s_c0_quadfs 0>,
122*f126890aSEmmanuel Vadot					 <&clk_s_c0_quadfs 1>,
123*f126890aSEmmanuel Vadot					 <&clk_s_c0_quadfs 2>,
124*f126890aSEmmanuel Vadot					 <&clk_s_c0_quadfs 3>,
125*f126890aSEmmanuel Vadot					 <&clk_sysin>;
126*f126890aSEmmanuel Vadot
127*f126890aSEmmanuel Vadot				/*
128*f126890aSEmmanuel Vadot				 * ARM Peripheral clock for timers
129*f126890aSEmmanuel Vadot				 */
130*f126890aSEmmanuel Vadot				clk_m_a9_ext2f_div2: clk-m-a9-ext2f-div2s {
131*f126890aSEmmanuel Vadot					#clock-cells = <0>;
132*f126890aSEmmanuel Vadot					compatible = "fixed-factor-clock";
133*f126890aSEmmanuel Vadot
134*f126890aSEmmanuel Vadot					clocks = <&clk_s_c0_flexgen 13>;
135*f126890aSEmmanuel Vadot
136*f126890aSEmmanuel Vadot					clock-output-names = "clk-m-a9-ext2f-div2";
137*f126890aSEmmanuel Vadot
138*f126890aSEmmanuel Vadot					clock-div = <2>;
139*f126890aSEmmanuel Vadot					clock-mult = <1>;
140*f126890aSEmmanuel Vadot				};
141*f126890aSEmmanuel Vadot			};
142*f126890aSEmmanuel Vadot		};
143*f126890aSEmmanuel Vadot
144*f126890aSEmmanuel Vadot		clockgen-d0@9104000 {
145*f126890aSEmmanuel Vadot			compatible = "st,clkgen-c32";
146*f126890aSEmmanuel Vadot			reg = <0x9104000 0x1000>;
147*f126890aSEmmanuel Vadot
148*f126890aSEmmanuel Vadot			clk_s_d0_quadfs: clk-s-d0-quadfs {
149*f126890aSEmmanuel Vadot				#clock-cells = <1>;
150*f126890aSEmmanuel Vadot				compatible = "st,quadfs-d0";
151*f126890aSEmmanuel Vadot
152*f126890aSEmmanuel Vadot				clocks = <&clk_sysin>;
153*f126890aSEmmanuel Vadot			};
154*f126890aSEmmanuel Vadot
155*f126890aSEmmanuel Vadot			clk_s_d0_flexgen: clk-s-d0-flexgen {
156*f126890aSEmmanuel Vadot				#clock-cells = <1>;
157*f126890aSEmmanuel Vadot				compatible = "st,flexgen", "st,flexgen-stih410-d0";
158*f126890aSEmmanuel Vadot
159*f126890aSEmmanuel Vadot				clocks = <&clk_s_d0_quadfs 0>,
160*f126890aSEmmanuel Vadot					 <&clk_s_d0_quadfs 1>,
161*f126890aSEmmanuel Vadot					 <&clk_s_d0_quadfs 2>,
162*f126890aSEmmanuel Vadot					 <&clk_s_d0_quadfs 3>,
163*f126890aSEmmanuel Vadot					 <&clk_sysin>;
164*f126890aSEmmanuel Vadot			};
165*f126890aSEmmanuel Vadot		};
166*f126890aSEmmanuel Vadot
167*f126890aSEmmanuel Vadot		clockgen-d2@9106000 {
168*f126890aSEmmanuel Vadot			compatible = "st,clkgen-c32";
169*f126890aSEmmanuel Vadot			reg = <0x9106000 0x1000>;
170*f126890aSEmmanuel Vadot
171*f126890aSEmmanuel Vadot			clk_s_d2_quadfs: clk-s-d2-quadfs {
172*f126890aSEmmanuel Vadot				#clock-cells = <1>;
173*f126890aSEmmanuel Vadot				compatible = "st,quadfs-d2";
174*f126890aSEmmanuel Vadot
175*f126890aSEmmanuel Vadot				clocks = <&clk_sysin>;
176*f126890aSEmmanuel Vadot			};
177*f126890aSEmmanuel Vadot
178*f126890aSEmmanuel Vadot			clk_s_d2_flexgen: clk-s-d2-flexgen {
179*f126890aSEmmanuel Vadot				#clock-cells = <1>;
180*f126890aSEmmanuel Vadot				compatible = "st,flexgen", "st,flexgen-stih418-d2";
181*f126890aSEmmanuel Vadot
182*f126890aSEmmanuel Vadot				clocks = <&clk_s_d2_quadfs 0>,
183*f126890aSEmmanuel Vadot					 <&clk_s_d2_quadfs 1>,
184*f126890aSEmmanuel Vadot					 <&clk_s_d2_quadfs 2>,
185*f126890aSEmmanuel Vadot					 <&clk_s_d2_quadfs 3>,
186*f126890aSEmmanuel Vadot					 <&clk_sysin>,
187*f126890aSEmmanuel Vadot					 <&clk_sysin>,
188*f126890aSEmmanuel Vadot					 <&clk_tmdsout_hdmi>;
189*f126890aSEmmanuel Vadot			};
190*f126890aSEmmanuel Vadot		};
191*f126890aSEmmanuel Vadot
192*f126890aSEmmanuel Vadot		clockgen-d3@9107000 {
193*f126890aSEmmanuel Vadot			compatible = "st,clkgen-c32";
194*f126890aSEmmanuel Vadot			reg = <0x9107000 0x1000>;
195*f126890aSEmmanuel Vadot
196*f126890aSEmmanuel Vadot			clk_s_d3_quadfs: clk-s-d3-quadfs {
197*f126890aSEmmanuel Vadot				#clock-cells = <1>;
198*f126890aSEmmanuel Vadot				compatible = "st,quadfs-d3";
199*f126890aSEmmanuel Vadot
200*f126890aSEmmanuel Vadot				clocks = <&clk_sysin>;
201*f126890aSEmmanuel Vadot			};
202*f126890aSEmmanuel Vadot
203*f126890aSEmmanuel Vadot			clk_s_d3_flexgen: clk-s-d3-flexgen {
204*f126890aSEmmanuel Vadot				#clock-cells = <1>;
205*f126890aSEmmanuel Vadot				compatible = "st,flexgen", "st,flexgen-stih407-d3";
206*f126890aSEmmanuel Vadot
207*f126890aSEmmanuel Vadot				clocks = <&clk_s_d3_quadfs 0>,
208*f126890aSEmmanuel Vadot					 <&clk_s_d3_quadfs 1>,
209*f126890aSEmmanuel Vadot					 <&clk_s_d3_quadfs 2>,
210*f126890aSEmmanuel Vadot					 <&clk_s_d3_quadfs 3>,
211*f126890aSEmmanuel Vadot					 <&clk_sysin>;
212*f126890aSEmmanuel Vadot			};
213*f126890aSEmmanuel Vadot		};
214*f126890aSEmmanuel Vadot	};
215*f126890aSEmmanuel Vadot};
216