aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTomasz Figa <t.figa@samsung.com>2013-04-04 00:32:37 -0400
committerKukjin Kim <kgene.kim@samsung.com>2013-04-04 02:51:08 -0400
commit74f7f8ba5092a76da1e9d07f245575cef86f15ab (patch)
treeee960840ee8829cedb53d6a083a5a836666c3398
parent36fc09722d49077c6a602e8c07b06d21e798b75a (diff)
clk: exynos4: Use mout_mpll_user_* on Exynos4x12
Many clock muxes of Exynos 4x12 uses mout_mpll_user_* clocks instead of sclk_mpll as one of their parents. This patch moves such clocks from common array into SoC-specific arrays and adjusts their parent lists respectively. Signed-off-by: Tomasz Figa <t.figa@samsung.com> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> Reviewed-by: Thomas Abraham <thomas.abraham@linaro.org> Acked-by: Mike Turquette <mturquette@linaro.org> Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
-rw-r--r--Documentation/devicetree/bindings/clock/exynos4-clock.txt2
-rw-r--r--drivers/clk/samsung/clk-exynos4.c172
2 files changed, 113 insertions, 61 deletions
diff --git a/Documentation/devicetree/bindings/clock/exynos4-clock.txt b/Documentation/devicetree/bindings/clock/exynos4-clock.txt
index 8b58232f3fb5..d029605b9874 100644
--- a/Documentation/devicetree/bindings/clock/exynos4-clock.txt
+++ b/Documentation/devicetree/bindings/clock/exynos4-clock.txt
@@ -42,6 +42,8 @@ Exynos4 SoC and this is specified where applicable.
42 aclk100 14 42 aclk100 14
43 aclk160 15 43 aclk160 15
44 aclk133 16 44 aclk133 16
45 mout_mpll_user_t 17 Exynos4x12
46 mout_mpll_user_c 18 Exynos4x12
45 47
46 48
47 [Clock Gate for Special Clocks] 49 [Clock Gate for Special Clocks]
diff --git a/drivers/clk/samsung/clk-exynos4.c b/drivers/clk/samsung/clk-exynos4.c
index 44a99b58c981..8edd64cb18a8 100644
--- a/drivers/clk/samsung/clk-exynos4.c
+++ b/drivers/clk/samsung/clk-exynos4.c
@@ -112,7 +112,7 @@ enum exynos4_clks {
112 /* core clocks */ 112 /* core clocks */
113 xxti, xusbxti, fin_pll, fout_apll, fout_mpll, fout_epll, fout_vpll, 113 xxti, xusbxti, fin_pll, fout_apll, fout_mpll, fout_epll, fout_vpll,
114 sclk_apll, sclk_mpll, sclk_epll, sclk_vpll, arm_clk, aclk200, aclk100, 114 sclk_apll, sclk_mpll, sclk_epll, sclk_vpll, arm_clk, aclk200, aclk100,
115 aclk160, aclk133, 115 aclk160, aclk133, mout_mpll_user_t, mout_mpll_user_c, /* 18 */
116 116
117 /* gate for special clocks (sclk) */ 117 /* gate for special clocks (sclk) */
118 sclk_fimc0 = 128, sclk_fimc1, sclk_fimc2, sclk_fimc3, sclk_cam0, 118 sclk_fimc0 = 128, sclk_fimc1, sclk_fimc2, sclk_fimc3, sclk_cam0,
@@ -218,35 +218,53 @@ PNAME(mout_apll_p) = { "fin_pll", "fout_apll", };
218PNAME(mout_mpll_p) = { "fin_pll", "fout_mpll", }; 218PNAME(mout_mpll_p) = { "fin_pll", "fout_mpll", };
219PNAME(mout_epll_p) = { "fin_pll", "fout_epll", }; 219PNAME(mout_epll_p) = { "fin_pll", "fout_epll", };
220PNAME(mout_vpllsrc_p) = { "fin_pll", "sclk_hdmi24m", }; 220PNAME(mout_vpllsrc_p) = { "fin_pll", "sclk_hdmi24m", };
221PNAME(sclk_vpll_p4210) = { "mout_vpllsrc", "fout_vpll", };
222PNAME(mout_vpll_p) = { "fin_pll", "fout_vpll", }; 221PNAME(mout_vpll_p) = { "fin_pll", "fout_vpll", };
223PNAME(mout_core_p) = { "mout_apll", "sclk_mpll", };
224PNAME(sclk_ampll_p) = { "sclk_mpll", "sclk_apll", };
225PNAME(mout_mpll_user_p) = { "fin_pll", "sclk_mpll", };
226PNAME(aclk_p4412) = { "mout_mpll_user", "sclk_apll", };
227PNAME(sclk_evpll_p) = { "sclk_epll", "sclk_vpll", }; 222PNAME(sclk_evpll_p) = { "sclk_epll", "sclk_vpll", };
228PNAME(mout_mfc_p) = { "mout_mfc0", "mout_mfc1", }; 223PNAME(mout_mfc_p) = { "mout_mfc0", "mout_mfc1", };
229PNAME(mout_g3d_p) = { "mout_g3d0", "mout_g3d1", }; 224PNAME(mout_g3d_p) = { "mout_g3d0", "mout_g3d1", };
230PNAME(mout_g2d_p) = { "mout_g2d0", "mout_g2d1", }; 225PNAME(mout_g2d_p) = { "mout_g2d0", "mout_g2d1", };
231PNAME(mout_mixer_p4210) = { "sclk_dac", "sclk_hdmi", };
232PNAME(mout_dac_p4210) = { "sclk_vpll", "sclk_hdmiphy", };
233PNAME(mout_hdmi_p) = { "sclk_pixel", "sclk_hdmiphy", }; 226PNAME(mout_hdmi_p) = { "sclk_pixel", "sclk_hdmiphy", };
234PNAME(mout_jpeg_p) = { "mout_jpeg0", "mout_jpeg1", }; 227PNAME(mout_jpeg_p) = { "mout_jpeg0", "mout_jpeg1", };
235PNAME(group1_p) = { "xxti", "xusbxti", "sclk_hdmi24m", "sclk_usbphy0",
236 "none", "sclk_hdmiphy", "sclk_mpll",
237 "sclk_epll", "sclk_vpll", };
238PNAME(mout_audio0_p) = { "cdclk0", "none", "sclk_hdmi24m", "sclk_usbphy0",
239 "xxti", "xusbxti", "sclk_mpll", "sclk_epll",
240 "sclk_vpll" };
241PNAME(mout_audio1_p) = { "cdclk1", "none", "sclk_hdmi24m", "sclk_usbphy0",
242 "xxti", "xusbxti", "sclk_mpll", "sclk_epll",
243 "sclk_vpll", };
244PNAME(mout_audio2_p) = { "cdclk2", "none", "sclk_hdmi24m", "sclk_usbphy0",
245 "xxti", "xusbxti", "sclk_mpll", "sclk_epll",
246 "sclk_vpll", };
247PNAME(mout_spdif_p) = { "sclk_audio0", "sclk_audio1", "sclk_audio2", 228PNAME(mout_spdif_p) = { "sclk_audio0", "sclk_audio1", "sclk_audio2",
248 "spdif_extclk", }; 229 "spdif_extclk", };
249 230
231/* Exynos 4210-specific parent groups */
232PNAME(sclk_vpll_p4210) = { "mout_vpllsrc", "fout_vpll", };
233PNAME(mout_core_p4210) = { "mout_apll", "sclk_mpll", };
234PNAME(sclk_ampll_p4210) = { "sclk_mpll", "sclk_apll", };
235PNAME(group1_p4210) = { "xxti", "xusbxti", "sclk_hdmi24m",
236 "sclk_usbphy0", "none", "sclk_hdmiphy",
237 "sclk_mpll", "sclk_epll", "sclk_vpll", };
238PNAME(mout_audio0_p4210) = { "cdclk0", "none", "sclk_hdmi24m",
239 "sclk_usbphy0", "xxti", "xusbxti", "sclk_mpll",
240 "sclk_epll", "sclk_vpll" };
241PNAME(mout_audio1_p4210) = { "cdclk1", "none", "sclk_hdmi24m",
242 "sclk_usbphy0", "xxti", "xusbxti", "sclk_mpll",
243 "sclk_epll", "sclk_vpll", };
244PNAME(mout_audio2_p4210) = { "cdclk2", "none", "sclk_hdmi24m",
245 "sclk_usbphy0", "xxti", "xusbxti", "sclk_mpll",
246 "sclk_epll", "sclk_vpll", };
247PNAME(mout_mixer_p4210) = { "sclk_dac", "sclk_hdmi", };
248PNAME(mout_dac_p4210) = { "sclk_vpll", "sclk_hdmiphy", };
249
250/* Exynos 4x12-specific parent groups */
251PNAME(mout_mpll_user_p4x12) = { "fin_pll", "sclk_mpll", };
252PNAME(mout_core_p4x12) = { "mout_apll", "mout_mpll_user_c", };
253PNAME(sclk_ampll_p4x12) = { "mout_mpll_user_t", "sclk_apll", };
254PNAME(group1_p4x12) = { "xxti", "xusbxti", "sclk_hdmi24m", "sclk_usbphy0",
255 "none", "sclk_hdmiphy", "mout_mpll_user_t",
256 "sclk_epll", "sclk_vpll", };
257PNAME(mout_audio0_p4x12) = { "cdclk0", "none", "sclk_hdmi24m",
258 "sclk_usbphy0", "xxti", "xusbxti",
259 "mout_mpll_user_t", "sclk_epll", "sclk_vpll" };
260PNAME(mout_audio1_p4x12) = { "cdclk1", "none", "sclk_hdmi24m",
261 "sclk_usbphy0", "xxti", "xusbxti",
262 "mout_mpll_user_t", "sclk_epll", "sclk_vpll", };
263PNAME(mout_audio2_p4x12) = { "cdclk2", "none", "sclk_hdmi24m",
264 "sclk_usbphy0", "xxti", "xusbxti",
265 "mout_mpll_user_t", "sclk_epll", "sclk_vpll", };
266PNAME(aclk_p4412) = { "mout_mpll_user_t", "sclk_apll", };
267
250/* fixed rate clocks generated outside the soc */ 268/* fixed rate clocks generated outside the soc */
251struct samsung_fixed_rate_clock exynos4_fixed_rate_ext_clks[] __initdata = { 269struct samsung_fixed_rate_clock exynos4_fixed_rate_ext_clks[] __initdata = {
252 FRATE(xxti, "xxti", NULL, CLK_IS_ROOT, 0), 270 FRATE(xxti, "xxti", NULL, CLK_IS_ROOT, 0),
@@ -267,80 +285,112 @@ struct samsung_fixed_rate_clock exynos4210_fixed_rate_clks[] __initdata = {
267/* list of mux clocks supported in all exynos4 soc's */ 285/* list of mux clocks supported in all exynos4 soc's */
268struct samsung_mux_clock exynos4_mux_clks[] __initdata = { 286struct samsung_mux_clock exynos4_mux_clks[] __initdata = {
269 MUX(none, "mout_apll", mout_apll_p, SRC_CPU, 0, 1), 287 MUX(none, "mout_apll", mout_apll_p, SRC_CPU, 0, 1),
270 MUX(none, "mout_core", mout_core_p, SRC_CPU, 16, 1),
271 MUX(none, "mout_fimc0", group1_p, SRC_CAM, 0, 4),
272 MUX(none, "mout_fimc1", group1_p, SRC_CAM, 4, 4),
273 MUX(none, "mout_fimc2", group1_p, SRC_CAM, 8, 4),
274 MUX(none, "mout_fimc3", group1_p, SRC_CAM, 12, 4),
275 MUX(none, "mout_cam0", group1_p, SRC_CAM, 16, 4),
276 MUX(none, "mout_cam1", group1_p, SRC_CAM, 20, 4),
277 MUX(none, "mout_csis0", group1_p, SRC_CAM, 24, 4),
278 MUX(none, "mout_csis1", group1_p, SRC_CAM, 28, 4),
279 MUX(none, "mout_hdmi", mout_hdmi_p, SRC_TV, 0, 1), 288 MUX(none, "mout_hdmi", mout_hdmi_p, SRC_TV, 0, 1),
280 MUX(none, "mout_mfc0", sclk_ampll_p, SRC_MFC, 0, 1),
281 MUX(none, "mout_mfc1", sclk_evpll_p, SRC_MFC, 4, 1), 289 MUX(none, "mout_mfc1", sclk_evpll_p, SRC_MFC, 4, 1),
282 MUX(none, "mout_mfc", mout_mfc_p, SRC_MFC, 8, 1), 290 MUX(none, "mout_mfc", mout_mfc_p, SRC_MFC, 8, 1),
283 MUX(none, "mout_g3d0", sclk_ampll_p, SRC_G3D, 0, 1),
284 MUX(none, "mout_g3d1", sclk_evpll_p, SRC_G3D, 4, 1), 291 MUX(none, "mout_g3d1", sclk_evpll_p, SRC_G3D, 4, 1),
285 MUX(none, "mout_g3d", mout_g3d_p, SRC_G3D, 8, 1), 292 MUX(none, "mout_g3d", mout_g3d_p, SRC_G3D, 8, 1),
286 MUX(none, "mout_fimd0", group1_p, SRC_LCD0, 0, 4),
287 MUX(none, "mout_mipi0", group1_p, SRC_LCD0, 12, 4),
288 MUX(none, "mout_audio0", mout_audio0_p, SRC_MAUDIO, 0, 4),
289 MUX(none, "mout_mmc0", group1_p, SRC_FSYS, 0, 4),
290 MUX(none, "mout_mmc1", group1_p, SRC_FSYS, 4, 4),
291 MUX(none, "mout_mmc2", group1_p, SRC_FSYS, 8, 4),
292 MUX(none, "mout_mmc3", group1_p, SRC_FSYS, 12, 4),
293 MUX(none, "mout_mmc4", group1_p, SRC_FSYS, 16, 4),
294 MUX(none, "mout_uart0", group1_p, SRC_PERIL0, 0, 4),
295 MUX(none, "mout_uart1", group1_p, SRC_PERIL0, 4, 4),
296 MUX(none, "mout_uart2", group1_p, SRC_PERIL0, 8, 4),
297 MUX(none, "mout_uart3", group1_p, SRC_PERIL0, 12, 4),
298 MUX(none, "mout_uart4", group1_p, SRC_PERIL0, 16, 4),
299 MUX(none, "mout_audio1", mout_audio1_p, SRC_PERIL1, 0, 4),
300 MUX(none, "mout_audio2", mout_audio2_p, SRC_PERIL1, 4, 4),
301 MUX(none, "mout_spdif", mout_spdif_p, SRC_PERIL1, 8, 2), 293 MUX(none, "mout_spdif", mout_spdif_p, SRC_PERIL1, 8, 2),
302 MUX(none, "mout_spi0", group1_p, SRC_PERIL1, 16, 4),
303 MUX(none, "mout_spi1", group1_p, SRC_PERIL1, 20, 4),
304 MUX(none, "mout_spi2", group1_p, SRC_PERIL1, 24, 4),
305 MUX_A(sclk_epll, "sclk_epll", mout_epll_p, SRC_TOP0, 4, 1, "sclk_epll"), 294 MUX_A(sclk_epll, "sclk_epll", mout_epll_p, SRC_TOP0, 4, 1, "sclk_epll"),
306}; 295};
307 296
308/* list of mux clocks supported in exynos4210 soc */ 297/* list of mux clocks supported in exynos4210 soc */
309struct samsung_mux_clock exynos4210_mux_clks[] __initdata = { 298struct samsung_mux_clock exynos4210_mux_clks[] __initdata = {
310 MUX(none, "mout_aclk200", sclk_ampll_p, SRC_TOP0, 12, 1), 299 MUX(none, "mout_aclk200", sclk_ampll_p4210, SRC_TOP0, 12, 1),
311 MUX(none, "mout_aclk100", sclk_ampll_p, SRC_TOP0, 16, 1), 300 MUX(none, "mout_aclk100", sclk_ampll_p4210, SRC_TOP0, 16, 1),
312 MUX(none, "mout_aclk160", sclk_ampll_p, SRC_TOP0, 20, 1), 301 MUX(none, "mout_aclk160", sclk_ampll_p4210, SRC_TOP0, 20, 1),
313 MUX(none, "mout_aclk133", sclk_ampll_p, SRC_TOP0, 24, 1), 302 MUX(none, "mout_aclk133", sclk_ampll_p4210, SRC_TOP0, 24, 1),
314 MUX(none, "mout_vpllsrc", mout_vpllsrc_p, SRC_TOP1, 0, 1), 303 MUX(none, "mout_vpllsrc", mout_vpllsrc_p, SRC_TOP1, 0, 1),
315 MUX(none, "mout_mixer", mout_mixer_p4210, SRC_TV, 4, 1), 304 MUX(none, "mout_mixer", mout_mixer_p4210, SRC_TV, 4, 1),
316 MUX(none, "mout_dac", mout_dac_p4210, SRC_TV, 8, 1), 305 MUX(none, "mout_dac", mout_dac_p4210, SRC_TV, 8, 1),
317 MUX(none, "mout_g2d0", sclk_ampll_p, E4210_SRC_IMAGE, 0, 1), 306 MUX(none, "mout_g2d0", sclk_ampll_p4210, E4210_SRC_IMAGE, 0, 1),
318 MUX(none, "mout_g2d1", sclk_evpll_p, E4210_SRC_IMAGE, 4, 1), 307 MUX(none, "mout_g2d1", sclk_evpll_p, E4210_SRC_IMAGE, 4, 1),
319 MUX(none, "mout_g2d", mout_g2d_p, E4210_SRC_IMAGE, 8, 1), 308 MUX(none, "mout_g2d", mout_g2d_p, E4210_SRC_IMAGE, 8, 1),
320 MUX(none, "mout_fimd1", group1_p, SRC_LCD1, 0, 4), 309 MUX(none, "mout_fimd1", group1_p4210, SRC_LCD1, 0, 4),
321 MUX(none, "mout_mipi1", group1_p, SRC_LCD1, 12, 4), 310 MUX(none, "mout_mipi1", group1_p4210, SRC_LCD1, 12, 4),
322 MUX_A(sclk_mpll, "sclk_mpll", mout_mpll_p, SRC_CPU, 8, 1, "sclk_mpll"), 311 MUX_A(sclk_mpll, "sclk_mpll", mout_mpll_p, SRC_CPU, 8, 1, "sclk_mpll"),
312 MUX(none, "mout_core", mout_core_p4210, SRC_CPU, 16, 1),
323 MUX_A(sclk_vpll, "sclk_vpll", sclk_vpll_p4210, 313 MUX_A(sclk_vpll, "sclk_vpll", sclk_vpll_p4210,
324 SRC_TOP0, 8, 1, "sclk_vpll"), 314 SRC_TOP0, 8, 1, "sclk_vpll"),
315 MUX(none, "mout_fimc0", group1_p4210, SRC_CAM, 0, 4),
316 MUX(none, "mout_fimc1", group1_p4210, SRC_CAM, 4, 4),
317 MUX(none, "mout_fimc2", group1_p4210, SRC_CAM, 8, 4),
318 MUX(none, "mout_fimc3", group1_p4210, SRC_CAM, 12, 4),
319 MUX(none, "mout_cam0", group1_p4210, SRC_CAM, 16, 4),
320 MUX(none, "mout_cam1", group1_p4210, SRC_CAM, 20, 4),
321 MUX(none, "mout_csis0", group1_p4210, SRC_CAM, 24, 4),
322 MUX(none, "mout_csis1", group1_p4210, SRC_CAM, 28, 4),
323 MUX(none, "mout_mfc0", sclk_ampll_p4210, SRC_MFC, 0, 1),
324 MUX(none, "mout_g3d0", sclk_ampll_p4210, SRC_G3D, 0, 1),
325 MUX(none, "mout_fimd0", group1_p4210, SRC_LCD0, 0, 4),
326 MUX(none, "mout_mipi0", group1_p4210, SRC_LCD0, 12, 4),
327 MUX(none, "mout_audio0", mout_audio0_p4210, SRC_MAUDIO, 0, 4),
328 MUX(none, "mout_mmc0", group1_p4210, SRC_FSYS, 0, 4),
329 MUX(none, "mout_mmc1", group1_p4210, SRC_FSYS, 4, 4),
330 MUX(none, "mout_mmc2", group1_p4210, SRC_FSYS, 8, 4),
331 MUX(none, "mout_mmc3", group1_p4210, SRC_FSYS, 12, 4),
332 MUX(none, "mout_mmc4", group1_p4210, SRC_FSYS, 16, 4),
333 MUX(none, "mout_uart0", group1_p4210, SRC_PERIL0, 0, 4),
334 MUX(none, "mout_uart1", group1_p4210, SRC_PERIL0, 4, 4),
335 MUX(none, "mout_uart2", group1_p4210, SRC_PERIL0, 8, 4),
336 MUX(none, "mout_uart3", group1_p4210, SRC_PERIL0, 12, 4),
337 MUX(none, "mout_uart4", group1_p4210, SRC_PERIL0, 16, 4),
338 MUX(none, "mout_audio1", mout_audio1_p4210, SRC_PERIL1, 0, 4),
339 MUX(none, "mout_audio2", mout_audio2_p4210, SRC_PERIL1, 4, 4),
340 MUX(none, "mout_spi0", group1_p4210, SRC_PERIL1, 16, 4),
341 MUX(none, "mout_spi1", group1_p4210, SRC_PERIL1, 20, 4),
342 MUX(none, "mout_spi2", group1_p4210, SRC_PERIL1, 24, 4),
325}; 343};
326 344
327/* list of mux clocks supported in exynos4x12 soc */ 345/* list of mux clocks supported in exynos4x12 soc */
328struct samsung_mux_clock exynos4x12_mux_clks[] __initdata = { 346struct samsung_mux_clock exynos4x12_mux_clks[] __initdata = {
329 MUX(none, "mout_mpll_user", mout_mpll_user_p, SRC_LEFTBUS, 4, 1), 347 MUX(mout_mpll_user_c, "mout_mpll_user_c", mout_mpll_user_p4x12,
348 SRC_CPU, 24, 1),
349 MUX(mout_mpll_user_t, "mout_mpll_user_t", mout_mpll_user_p4x12,
350 SRC_TOP1, 12, 1),
330 MUX(none, "mout_aclk200", aclk_p4412, SRC_TOP0, 12, 1), 351 MUX(none, "mout_aclk200", aclk_p4412, SRC_TOP0, 12, 1),
331 MUX(none, "mout_aclk100", aclk_p4412, SRC_TOP0, 16, 1), 352 MUX(none, "mout_aclk100", aclk_p4412, SRC_TOP0, 16, 1),
332 MUX(none, "mout_aclk160", aclk_p4412, SRC_TOP0, 20, 1), 353 MUX(none, "mout_aclk160", aclk_p4412, SRC_TOP0, 20, 1),
333 MUX(none, "mout_aclk133", aclk_p4412, SRC_TOP0, 24, 1), 354 MUX(none, "mout_aclk133", aclk_p4412, SRC_TOP0, 24, 1),
334 MUX(none, "mout_mdnie0", group1_p, SRC_LCD0, 4, 4), 355 MUX(none, "mout_mdnie0", group1_p4x12, SRC_LCD0, 4, 4),
335 MUX(none, "mout_mdnie_pwm0", group1_p, SRC_LCD0, 8, 4), 356 MUX(none, "mout_mdnie_pwm0", group1_p4x12, SRC_LCD0, 8, 4),
336 MUX(none, "mout_sata", sclk_ampll_p, SRC_FSYS, 24, 1), 357 MUX(none, "mout_sata", sclk_ampll_p4x12, SRC_FSYS, 24, 1),
337 MUX(none, "mout_jpeg0", sclk_ampll_p, E4X12_SRC_CAM1, 0, 1), 358 MUX(none, "mout_jpeg0", sclk_ampll_p4x12, E4X12_SRC_CAM1, 0, 1),
338 MUX(none, "mout_jpeg1", sclk_evpll_p, E4X12_SRC_CAM1, 4, 1), 359 MUX(none, "mout_jpeg1", sclk_evpll_p, E4X12_SRC_CAM1, 4, 1),
339 MUX(none, "mout_jpeg", mout_jpeg_p, E4X12_SRC_CAM1, 8, 1), 360 MUX(none, "mout_jpeg", mout_jpeg_p, E4X12_SRC_CAM1, 8, 1),
340 MUX_A(sclk_mpll, "sclk_mpll", mout_mpll_p, 361 MUX_A(sclk_mpll, "sclk_mpll", mout_mpll_p,
341 E4X12_SRC_DMC, 12, 1, "sclk_mpll"), 362 E4X12_SRC_DMC, 12, 1, "sclk_mpll"),
342 MUX_A(sclk_vpll, "sclk_vpll", mout_vpll_p, 363 MUX_A(sclk_vpll, "sclk_vpll", mout_vpll_p,
343 SRC_TOP0, 8, 1, "sclk_vpll"), 364 SRC_TOP0, 8, 1, "sclk_vpll"),
365 MUX(none, "mout_core", mout_core_p4x12, SRC_CPU, 16, 1),
366 MUX(none, "mout_fimc0", group1_p4x12, SRC_CAM, 0, 4),
367 MUX(none, "mout_fimc1", group1_p4x12, SRC_CAM, 4, 4),
368 MUX(none, "mout_fimc2", group1_p4x12, SRC_CAM, 8, 4),
369 MUX(none, "mout_fimc3", group1_p4x12, SRC_CAM, 12, 4),
370 MUX(none, "mout_cam0", group1_p4x12, SRC_CAM, 16, 4),
371 MUX(none, "mout_cam1", group1_p4x12, SRC_CAM, 20, 4),
372 MUX(none, "mout_csis0", group1_p4x12, SRC_CAM, 24, 4),
373 MUX(none, "mout_csis1", group1_p4x12, SRC_CAM, 28, 4),
374 MUX(none, "mout_mfc0", sclk_ampll_p4x12, SRC_MFC, 0, 1),
375 MUX(none, "mout_g3d0", sclk_ampll_p4x12, SRC_G3D, 0, 1),
376 MUX(none, "mout_fimd0", group1_p4x12, SRC_LCD0, 0, 4),
377 MUX(none, "mout_mipi0", group1_p4x12, SRC_LCD0, 12, 4),
378 MUX(none, "mout_audio0", mout_audio0_p4x12, SRC_MAUDIO, 0, 4),
379 MUX(none, "mout_mmc0", group1_p4x12, SRC_FSYS, 0, 4),
380 MUX(none, "mout_mmc1", group1_p4x12, SRC_FSYS, 4, 4),
381 MUX(none, "mout_mmc2", group1_p4x12, SRC_FSYS, 8, 4),
382 MUX(none, "mout_mmc3", group1_p4x12, SRC_FSYS, 12, 4),
383 MUX(none, "mout_mmc4", group1_p4x12, SRC_FSYS, 16, 4),
384 MUX(none, "mout_uart0", group1_p4x12, SRC_PERIL0, 0, 4),
385 MUX(none, "mout_uart1", group1_p4x12, SRC_PERIL0, 4, 4),
386 MUX(none, "mout_uart2", group1_p4x12, SRC_PERIL0, 8, 4),
387 MUX(none, "mout_uart3", group1_p4x12, SRC_PERIL0, 12, 4),
388 MUX(none, "mout_uart4", group1_p4x12, SRC_PERIL0, 16, 4),
389 MUX(none, "mout_audio1", mout_audio1_p4x12, SRC_PERIL1, 0, 4),
390 MUX(none, "mout_audio2", mout_audio2_p4x12, SRC_PERIL1, 4, 4),
391 MUX(none, "mout_spi0", group1_p4x12, SRC_PERIL1, 16, 4),
392 MUX(none, "mout_spi1", group1_p4x12, SRC_PERIL1, 20, 4),
393 MUX(none, "mout_spi2", group1_p4x12, SRC_PERIL1, 24, 4),
344}; 394};
345 395
346/* list of divider clocks supported in all exynos4 soc's */ 396/* list of divider clocks supported in all exynos4 soc's */