1/*
2 * This program is free software; you can redistribute it and/or modify
3 * it under the terms of the GNU General Public License version 2 as
4 * published by the Free Software Foundation.
5 */
6
7&scrm {
8	main_fapll: main_fapll {
9		#clock-cells = <1>;
10		compatible = "ti,dm816-fapll-clock";
11		reg = <0x400 0x40>;
12		clocks = <&sys_clkin_ck &sys_clkin_ck>;
13		clock-indices = <1>, <2>, <3>, <4>, <5>,
14				<6>, <7>;
15		clock-output-names = "main_pll_clk1",
16				     "main_pll_clk2",
17				     "main_pll_clk3",
18				     "main_pll_clk4",
19				     "main_pll_clk5",
20				     "main_pll_clk6",
21				     "main_pll_clk7";
22	};
23
24	ddr_fapll: ddr_fapll {
25		#clock-cells = <1>;
26		compatible = "ti,dm816-fapll-clock";
27		reg = <0x440 0x30>;
28		clocks = <&sys_clkin_ck &sys_clkin_ck>;
29		clock-indices = <1>, <2>, <3>, <4>;
30		clock-output-names = "ddr_pll_clk1",
31				     "ddr_pll_clk2",
32				     "ddr_pll_clk3",
33				     "ddr_pll_clk4";
34	};
35
36	video_fapll: video_fapll {
37		#clock-cells = <1>;
38		compatible = "ti,dm816-fapll-clock";
39		reg = <0x470 0x30>;
40		clocks = <&sys_clkin_ck &sys_clkin_ck>;
41		clock-indices = <1>, <2>, <3>;
42		clock-output-names = "video_pll_clk1",
43				     "video_pll_clk2",
44				     "video_pll_clk3";
45	};
46
47	audio_fapll: audio_fapll {
48		#clock-cells = <1>;
49		compatible = "ti,dm816-fapll-clock";
50		reg = <0x4a0 0x30>;
51		clocks = <&main_fapll 7>, < &sys_clkin_ck>;
52		clock-indices = <1>, <2>, <3>, <4>, <5>;
53		clock-output-names = "audio_pll_clk1",
54				     "audio_pll_clk2",
55				     "audio_pll_clk3",
56				     "audio_pll_clk4",
57				     "audio_pll_clk5";
58	};
59};
60
61&scrm_clocks {
62	secure_32k_ck: secure_32k_ck {
63		#clock-cells = <0>;
64		compatible = "fixed-clock";
65		clock-frequency = <32768>;
66	};
67
68	sys_32k_ck: sys_32k_ck {
69		#clock-cells = <0>;
70		compatible = "fixed-clock";
71		clock-frequency = <32768>;
72	};
73
74	tclkin_ck: tclkin_ck {
75		#clock-cells = <0>;
76		compatible = "fixed-clock";
77		clock-frequency = <32768>;
78	};
79
80	sys_clkin_ck: sys_clkin_ck {
81		#clock-cells = <0>;
82		compatible = "fixed-clock";
83		clock-frequency = <27000000>;
84	};
85};
86
87/* 0x48180000 */
88&prcm_clocks {
89	clkout_pre_ck: clkout_pre_ck {
90		#clock-cells = <0>;
91		compatible = "ti,mux-clock";
92		clocks = <&main_fapll 5 &ddr_fapll 1 &video_fapll 1
93			  &audio_fapll 1>;
94		reg = <0x100>;
95	};
96
97	clkout_div_ck: clkout_div_ck {
98		#clock-cells = <0>;
99		compatible = "ti,divider-clock";
100		clocks = <&clkout_pre_ck>;
101		ti,bit-shift = <3>;
102		ti,max-div = <8>;
103		reg = <0x100>;
104	};
105
106	clkout_ck: clkout_ck {
107		#clock-cells = <0>;
108		compatible = "ti,gate-clock";
109		clocks = <&clkout_div_ck>;
110		ti,bit-shift = <7>;
111		reg = <0x100>;
112	};
113
114	/* CM_DPLL clocks p1795 */
115	sysclk1_ck: sysclk1_ck {
116		#clock-cells = <0>;
117		compatible = "ti,divider-clock";
118		clocks = <&main_fapll 1>;
119		ti,max-div = <7>;
120		reg = <0x0300>;
121	};
122
123	sysclk2_ck: sysclk2_ck {
124		#clock-cells = <0>;
125		compatible = "ti,divider-clock";
126		clocks = <&main_fapll 2>;
127		ti,max-div = <7>;
128		reg = <0x0304>;
129	};
130
131	sysclk3_ck: sysclk3_ck {
132		#clock-cells = <0>;
133		compatible = "ti,divider-clock";
134		clocks = <&main_fapll 3>;
135		ti,max-div = <7>;
136		reg = <0x0308>;
137	};
138
139	sysclk4_ck: sysclk4_ck {
140		#clock-cells = <0>;
141		compatible = "ti,divider-clock";
142		clocks = <&main_fapll 4>;
143		ti,max-div = <1>;
144		reg = <0x030c>;
145	};
146
147	sysclk5_ck: sysclk5_ck {
148		#clock-cells = <0>;
149		compatible = "ti,divider-clock";
150		clocks = <&sysclk4_ck>;
151		ti,max-div = <1>;
152		reg = <0x0310>;
153	};
154
155	sysclk6_ck: sysclk6_ck {
156		#clock-cells = <0>;
157		compatible = "ti,divider-clock";
158		clocks = <&main_fapll 4>;
159		ti,dividers = <2>, <4>;
160		reg = <0x0314>;
161	};
162
163	sysclk10_ck: sysclk10_ck {
164		#clock-cells = <0>;
165		compatible = "ti,divider-clock";
166		clocks = <&ddr_fapll 2>;
167		ti,max-div = <7>;
168		reg = <0x0324>;
169	};
170
171	sysclk24_ck: sysclk24_ck {
172		#clock-cells = <0>;
173		compatible = "ti,divider-clock";
174		clocks = <&main_fapll 5>;
175		ti,max-div = <7>;
176		reg = <0x03b4>;
177	};
178
179	mpu_ck: mpu_ck {
180		#clock-cells = <0>;
181		compatible = "ti,gate-clock";
182		clocks = <&sysclk2_ck>;
183		ti,bit-shift = <1>;
184                reg = <0x15dc>;
185	};
186
187	audio_pll_a_ck: audio_pll_a_ck {
188		#clock-cells = <0>;
189		compatible = "ti,divider-clock";
190		clocks = <&audio_fapll 1>;
191		ti,max-div = <7>;
192		reg = <0x035c>;
193	};
194
195	sysclk18_ck: sysclk18_ck {
196		#clock-cells = <0>;
197		compatible = "ti,mux-clock";
198		clocks = <&sys_32k_ck>, <&audio_pll_a_ck>;
199		reg = <0x0378>;
200	};
201
202	timer1_fck: timer1_fck {
203		#clock-cells = <0>;
204		compatible = "ti,mux-clock";
205		clocks = <&tclkin_ck>, <&sysclk18_ck>, <&sys_clkin_ck>;
206		reg = <0x0390>;
207	};
208
209	timer2_fck: timer2_fck {
210		#clock-cells = <0>;
211		compatible = "ti,mux-clock";
212		clocks = <&tclkin_ck>, <&sysclk18_ck>, <&sys_clkin_ck>;
213		reg = <0x0394>;
214	};
215
216	timer3_fck: timer3_fck {
217		#clock-cells = <0>;
218		compatible = "ti,mux-clock";
219		clocks = <&tclkin_ck>, <&sysclk18_ck>, <&sys_clkin_ck>;
220		reg = <0x0398>;
221	};
222
223	timer4_fck: timer4_fck {
224		#clock-cells = <0>;
225		compatible = "ti,mux-clock";
226		clocks = <&tclkin_ck>, <&sysclk18_ck>, <&sys_clkin_ck>;
227		reg = <0x039c>;
228	};
229
230	timer5_fck: timer5_fck {
231		#clock-cells = <0>;
232		compatible = "ti,mux-clock";
233		clocks = <&tclkin_ck>, <&sysclk18_ck>, <&sys_clkin_ck>;
234		reg = <0x03a0>;
235	};
236
237	timer6_fck: timer6_fck {
238		#clock-cells = <0>;
239		compatible = "ti,mux-clock";
240		clocks = <&tclkin_ck>, <&sysclk18_ck>, <&sys_clkin_ck>;
241		reg = <0x03a4>;
242	};
243
244	timer7_fck: timer7_fck {
245		#clock-cells = <0>;
246		compatible = "ti,mux-clock";
247		clocks = <&tclkin_ck>, <&sysclk18_ck>, <&sys_clkin_ck>;
248		reg = <0x03a8>;
249	};
250};
251