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