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