diff options
author | Shaik Ameer Basha <shaik.ameer@samsung.com> | 2014-05-08 07:27:51 -0400 |
---|---|---|
committer | Tomasz Figa <t.figa@samsung.com> | 2014-05-14 13:40:17 -0400 |
commit | 3a767b35c6c2f2e5f75e22a429b4d6d8c6736626 (patch) | |
tree | 98517cb1751844910af47e5f9803c2d854ef95d4 /drivers/clk/samsung/clk-exynos5420.c | |
parent | dbd713bb907e83453b4811d585b96a4bc86df619 (diff) |
clk: samsung: exynos5420: add clocks for ISP block
This patch adds minimum set of clocks to gate ISP block for
power saving.
Signed-off-by: Rahul Sharma <rahul.sharma@samsung.com>
Signed-off-by: Shaik Ameer Basha <shaik.ameer@samsung.com>
Signed-off-by: Tomasz Figa <t.figa@samsung.com>
Diffstat (limited to 'drivers/clk/samsung/clk-exynos5420.c')
-rw-r--r-- | drivers/clk/samsung/clk-exynos5420.c | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/drivers/clk/samsung/clk-exynos5420.c b/drivers/clk/samsung/clk-exynos5420.c index 2ee7ef21909d..c7e66219434f 100644 --- a/drivers/clk/samsung/clk-exynos5420.c +++ b/drivers/clk/samsung/clk-exynos5420.c | |||
@@ -57,6 +57,7 @@ | |||
57 | #define SRC_FSYS 0x10244 | 57 | #define SRC_FSYS 0x10244 |
58 | #define SRC_PERIC0 0x10250 | 58 | #define SRC_PERIC0 0x10250 |
59 | #define SRC_PERIC1 0x10254 | 59 | #define SRC_PERIC1 0x10254 |
60 | #define SRC_ISP 0x10270 | ||
60 | #define SRC_TOP10 0x10280 | 61 | #define SRC_TOP10 0x10280 |
61 | #define SRC_TOP11 0x10284 | 62 | #define SRC_TOP11 0x10284 |
62 | #define SRC_TOP12 0x10288 | 63 | #define SRC_TOP12 0x10288 |
@@ -77,12 +78,15 @@ | |||
77 | #define DIV_PERIC2 0x10560 | 78 | #define DIV_PERIC2 0x10560 |
78 | #define DIV_PERIC3 0x10564 | 79 | #define DIV_PERIC3 0x10564 |
79 | #define DIV_PERIC4 0x10568 | 80 | #define DIV_PERIC4 0x10568 |
81 | #define SCLK_DIV_ISP0 0x10580 | ||
82 | #define SCLK_DIV_ISP1 0x10584 | ||
80 | #define GATE_BUS_TOP 0x10700 | 83 | #define GATE_BUS_TOP 0x10700 |
81 | #define GATE_BUS_FSYS0 0x10740 | 84 | #define GATE_BUS_FSYS0 0x10740 |
82 | #define GATE_BUS_PERIC 0x10750 | 85 | #define GATE_BUS_PERIC 0x10750 |
83 | #define GATE_BUS_PERIC1 0x10754 | 86 | #define GATE_BUS_PERIC1 0x10754 |
84 | #define GATE_BUS_PERIS0 0x10760 | 87 | #define GATE_BUS_PERIS0 0x10760 |
85 | #define GATE_BUS_PERIS1 0x10764 | 88 | #define GATE_BUS_PERIS1 0x10764 |
89 | #define GATE_TOP_SCLK_ISP 0x10870 | ||
86 | #define GATE_IP_GSCL0 0x10910 | 90 | #define GATE_IP_GSCL0 0x10910 |
87 | #define GATE_IP_GSCL1 0x10920 | 91 | #define GATE_IP_GSCL1 0x10920 |
88 | #define GATE_IP_MFC 0x1092c | 92 | #define GATE_IP_MFC 0x1092c |
@@ -145,6 +149,7 @@ static unsigned long exynos5420_clk_regs[] __initdata = { | |||
145 | SRC_MASK_FSYS, | 149 | SRC_MASK_FSYS, |
146 | SRC_MASK_PERIC0, | 150 | SRC_MASK_PERIC0, |
147 | SRC_MASK_PERIC1, | 151 | SRC_MASK_PERIC1, |
152 | SRC_ISP, | ||
148 | DIV_TOP0, | 153 | DIV_TOP0, |
149 | DIV_TOP1, | 154 | DIV_TOP1, |
150 | DIV_TOP2, | 155 | DIV_TOP2, |
@@ -158,12 +163,15 @@ static unsigned long exynos5420_clk_regs[] __initdata = { | |||
158 | DIV_PERIC2, | 163 | DIV_PERIC2, |
159 | DIV_PERIC3, | 164 | DIV_PERIC3, |
160 | DIV_PERIC4, | 165 | DIV_PERIC4, |
166 | SCLK_DIV_ISP0, | ||
167 | SCLK_DIV_ISP1, | ||
161 | GATE_BUS_TOP, | 168 | GATE_BUS_TOP, |
162 | GATE_BUS_FSYS0, | 169 | GATE_BUS_FSYS0, |
163 | GATE_BUS_PERIC, | 170 | GATE_BUS_PERIC, |
164 | GATE_BUS_PERIC1, | 171 | GATE_BUS_PERIC1, |
165 | GATE_BUS_PERIS0, | 172 | GATE_BUS_PERIS0, |
166 | GATE_BUS_PERIS1, | 173 | GATE_BUS_PERIS1, |
174 | GATE_TOP_SCLK_ISP, | ||
167 | GATE_IP_GSCL0, | 175 | GATE_IP_GSCL0, |
168 | GATE_IP_GSCL1, | 176 | GATE_IP_GSCL1, |
169 | GATE_IP_MFC, | 177 | GATE_IP_MFC, |
@@ -250,6 +258,15 @@ PNAME(mout_user_aclk200_fsys_p) = {"fin_pll", "mout_sw_aclk200_fsys"}; | |||
250 | 258 | ||
251 | PNAME(mout_sw_aclk200_fsys2_p) = {"dout_aclk200_fsys2", "mout_sclk_spll"}; | 259 | PNAME(mout_sw_aclk200_fsys2_p) = {"dout_aclk200_fsys2", "mout_sclk_spll"}; |
252 | PNAME(mout_user_aclk200_fsys2_p) = {"fin_pll", "mout_sw_aclk200_fsys2"}; | 260 | PNAME(mout_user_aclk200_fsys2_p) = {"fin_pll", "mout_sw_aclk200_fsys2"}; |
261 | PNAME(mout_sw_aclk400_isp_p) = {"dout_aclk400_isp", "mout_sclk_spll"}; | ||
262 | PNAME(mout_user_aclk400_isp_p) = {"fin_pll", "mout_sw_aclk400_isp"}; | ||
263 | |||
264 | PNAME(mout_sw_aclk333_432_isp0_p) = {"dout_aclk333_432_isp0", | ||
265 | "mout_sclk_spll"}; | ||
266 | PNAME(mout_user_aclk333_432_isp0_p) = {"fin_pll", "mout_sw_aclk333_432_isp0"}; | ||
267 | |||
268 | PNAME(mout_sw_aclk333_432_isp_p) = {"dout_aclk333_432_isp", "mout_sclk_spll"}; | ||
269 | PNAME(mout_user_aclk333_432_isp_p) = {"fin_pll", "mout_sw_aclk333_432_isp"}; | ||
253 | 270 | ||
254 | PNAME(mout_sw_aclk200_p) = {"dout_aclk200", "mout_sclk_spll"}; | 271 | PNAME(mout_sw_aclk200_p) = {"dout_aclk200", "mout_sclk_spll"}; |
255 | PNAME(mout_aclk200_disp1_p) = {"fin_pll", "mout_sw_aclk200"}; | 272 | PNAME(mout_aclk200_disp1_p) = {"fin_pll", "mout_sw_aclk200"}; |
@@ -265,6 +282,7 @@ PNAME(mout_user_aclk166_p) = {"fin_pll", "mout_sw_aclk166"}; | |||
265 | 282 | ||
266 | PNAME(mout_sw_aclk266_p) = {"dout_aclk266", "mout_sclk_spll"}; | 283 | PNAME(mout_sw_aclk266_p) = {"dout_aclk266", "mout_sclk_spll"}; |
267 | PNAME(mout_user_aclk266_p) = {"fin_pll", "mout_sw_aclk266"}; | 284 | PNAME(mout_user_aclk266_p) = {"fin_pll", "mout_sw_aclk266"}; |
285 | PNAME(mout_user_aclk266_isp_p) = {"fin_pll", "mout_sw_aclk266"}; | ||
268 | 286 | ||
269 | PNAME(mout_sw_aclk333_432_gscl_p) = {"dout_aclk333_432_gscl", "mout_sclk_spll"}; | 287 | PNAME(mout_sw_aclk333_432_gscl_p) = {"dout_aclk333_432_gscl", "mout_sclk_spll"}; |
270 | PNAME(mout_user_aclk333_432_gscl_p) = {"fin_pll", "mout_sw_aclk333_432_gscl"}; | 288 | PNAME(mout_user_aclk333_432_gscl_p) = {"fin_pll", "mout_sw_aclk333_432_gscl"}; |
@@ -332,6 +350,7 @@ static struct samsung_mux_clock exynos5420_mux_clks[] __initdata = { | |||
332 | 350 | ||
333 | MUX(0, "sclk_bpll", mout_bpll_p, SRC_CDREX, 0, 1), | 351 | MUX(0, "sclk_bpll", mout_bpll_p, SRC_CDREX, 0, 1), |
334 | 352 | ||
353 | MUX(0, "mout_aclk400_isp", mout_group1_p, SRC_TOP0, 0, 2), | ||
335 | MUX_A(0, "mout_aclk400_mscl", mout_group1_p, | 354 | MUX_A(0, "mout_aclk400_mscl", mout_group1_p, |
336 | SRC_TOP0, 4, 2, "aclk400_mscl"), | 355 | SRC_TOP0, 4, 2, "aclk400_mscl"), |
337 | MUX(0, "mout_aclk200", mout_group1_p, SRC_TOP0, 8, 2), | 356 | MUX(0, "mout_aclk200", mout_group1_p, SRC_TOP0, 8, 2), |
@@ -339,7 +358,10 @@ static struct samsung_mux_clock exynos5420_mux_clks[] __initdata = { | |||
339 | MUX(0, "mout_aclk200_fsys", mout_group1_p, SRC_TOP0, 28, 2), | 358 | MUX(0, "mout_aclk200_fsys", mout_group1_p, SRC_TOP0, 28, 2), |
340 | 359 | ||
341 | MUX(0, "mout_aclk333_432_gscl", mout_group4_p, SRC_TOP1, 0, 2), | 360 | MUX(0, "mout_aclk333_432_gscl", mout_group4_p, SRC_TOP1, 0, 2), |
361 | MUX(0, "mout_aclk333_432_isp", mout_group4_p, | ||
362 | SRC_TOP1, 4, 2), | ||
342 | MUX(0, "mout_aclk66", mout_group1_p, SRC_TOP1, 8, 2), | 363 | MUX(0, "mout_aclk66", mout_group1_p, SRC_TOP1, 8, 2), |
364 | MUX(0, "mout_aclk333_432_isp0", mout_group4_p, SRC_TOP1, 12, 2), | ||
343 | MUX(0, "mout_aclk266", mout_group1_p, SRC_TOP1, 20, 2), | 365 | MUX(0, "mout_aclk266", mout_group1_p, SRC_TOP1, 20, 2), |
344 | MUX(0, "mout_aclk166", mout_group1_p, SRC_TOP1, 24, 2), | 366 | MUX(0, "mout_aclk166", mout_group1_p, SRC_TOP1, 24, 2), |
345 | MUX(0, "mout_aclk333", mout_group1_p, SRC_TOP1, 28, 2), | 367 | MUX(0, "mout_aclk333", mout_group1_p, SRC_TOP1, 28, 2), |
@@ -351,6 +373,8 @@ static struct samsung_mux_clock exynos5420_mux_clks[] __initdata = { | |||
351 | MUX(0, "mout_aclk300_disp1", mout_group1_p, SRC_TOP2, 24, 2), | 373 | MUX(0, "mout_aclk300_disp1", mout_group1_p, SRC_TOP2, 24, 2), |
352 | MUX(0, "mout_aclk300_gscl", mout_group1_p, SRC_TOP2, 28, 2), | 374 | MUX(0, "mout_aclk300_gscl", mout_group1_p, SRC_TOP2, 28, 2), |
353 | 375 | ||
376 | MUX(0, "mout_user_aclk400_isp", mout_user_aclk400_isp_p, | ||
377 | SRC_TOP3, 0, 1), | ||
354 | MUX(0, "mout_user_aclk400_mscl", mout_user_aclk400_mscl_p, | 378 | MUX(0, "mout_user_aclk400_mscl", mout_user_aclk400_mscl_p, |
355 | SRC_TOP3, 4, 1), | 379 | SRC_TOP3, 4, 1), |
356 | MUX(0, "mout_aclk200_disp1", mout_aclk200_disp1_p, SRC_TOP3, 8, 1), | 380 | MUX(0, "mout_aclk200_disp1", mout_aclk200_disp1_p, SRC_TOP3, 8, 1), |
@@ -361,7 +385,13 @@ static struct samsung_mux_clock exynos5420_mux_clks[] __initdata = { | |||
361 | 385 | ||
362 | MUX(0, "mout_user_aclk333_432_gscl", mout_user_aclk333_432_gscl_p, | 386 | MUX(0, "mout_user_aclk333_432_gscl", mout_user_aclk333_432_gscl_p, |
363 | SRC_TOP4, 0, 1), | 387 | SRC_TOP4, 0, 1), |
388 | MUX(0, "mout_user_aclk333_432_isp", mout_user_aclk333_432_isp_p, | ||
389 | SRC_TOP4, 4, 1), | ||
364 | MUX(0, "mout_aclk66_peric", mout_aclk66_peric_p, SRC_TOP4, 8, 1), | 390 | MUX(0, "mout_aclk66_peric", mout_aclk66_peric_p, SRC_TOP4, 8, 1), |
391 | MUX(0, "mout_user_aclk333_432_isp0", mout_user_aclk333_432_isp0_p, | ||
392 | SRC_TOP4, 12, 1), | ||
393 | MUX(0, "mout_user_aclk266_isp", mout_user_aclk266_isp_p, | ||
394 | SRC_TOP4, 16, 1), | ||
365 | MUX(0, "mout_user_aclk266", mout_user_aclk266_p, SRC_TOP4, 20, 1), | 395 | MUX(0, "mout_user_aclk266", mout_user_aclk266_p, SRC_TOP4, 20, 1), |
366 | MUX(0, "mout_user_aclk166", mout_user_aclk166_p, SRC_TOP4, 24, 1), | 396 | MUX(0, "mout_user_aclk166", mout_user_aclk166_p, SRC_TOP4, 24, 1), |
367 | MUX(0, "mout_user_aclk333", mout_user_aclk333_p, SRC_TOP4, 28, 1), | 397 | MUX(0, "mout_user_aclk333", mout_user_aclk333_p, SRC_TOP4, 28, 1), |
@@ -389,6 +419,8 @@ static struct samsung_mux_clock exynos5420_mux_clks[] __initdata = { | |||
389 | MUX(0, "mout_sclk_dpll", mout_dpll_p, SRC_TOP6, 24, 1), | 419 | MUX(0, "mout_sclk_dpll", mout_dpll_p, SRC_TOP6, 24, 1), |
390 | MUX(0, "mout_sclk_cpll", mout_cpll_p, SRC_TOP6, 28, 1), | 420 | MUX(0, "mout_sclk_cpll", mout_cpll_p, SRC_TOP6, 28, 1), |
391 | 421 | ||
422 | MUX(0, "mout_sw_aclk400_isp", mout_sw_aclk400_isp_p, | ||
423 | SRC_TOP10, 0, 1), | ||
392 | MUX(0, "mout_sw_aclk400_mscl", mout_sw_aclk400_mscl_p, | 424 | MUX(0, "mout_sw_aclk400_mscl", mout_sw_aclk400_mscl_p, |
393 | SRC_TOP10, 4, 1), | 425 | SRC_TOP10, 4, 1), |
394 | MUX(0, "mout_sw_aclk200", mout_sw_aclk200_p, SRC_TOP10, 8, 1), | 426 | MUX(0, "mout_sw_aclk200", mout_sw_aclk200_p, SRC_TOP10, 8, 1), |
@@ -396,9 +428,14 @@ static struct samsung_mux_clock exynos5420_mux_clks[] __initdata = { | |||
396 | SRC_TOP10, 12, 1), | 428 | SRC_TOP10, 12, 1), |
397 | MUX(0, "mout_sw_aclk200_fsys", mout_sw_aclk200_fsys_p, | 429 | MUX(0, "mout_sw_aclk200_fsys", mout_sw_aclk200_fsys_p, |
398 | SRC_TOP10, 28, 1), | 430 | SRC_TOP10, 28, 1), |
431 | |||
399 | MUX(0, "mout_sw_aclk333_432_gscl", mout_sw_aclk333_432_gscl_p, | 432 | MUX(0, "mout_sw_aclk333_432_gscl", mout_sw_aclk333_432_gscl_p, |
400 | SRC_TOP11, 0, 1), | 433 | SRC_TOP11, 0, 1), |
434 | MUX(0, "mout_sw_aclk333_432_isp", mout_sw_aclk333_432_isp_p, | ||
435 | SRC_TOP11, 4, 1), | ||
401 | MUX(0, "mout_sw_aclk66", mout_sw_aclk66_p, SRC_TOP11, 8, 1), | 436 | MUX(0, "mout_sw_aclk66", mout_sw_aclk66_p, SRC_TOP11, 8, 1), |
437 | MUX(0, "mout_sw_aclk333_432_isp0", mout_sw_aclk333_432_isp0_p, | ||
438 | SRC_TOP11, 12, 1), | ||
402 | MUX(0, "mout_sw_aclk266", mout_sw_aclk266_p, SRC_TOP11, 20, 1), | 439 | MUX(0, "mout_sw_aclk266", mout_sw_aclk266_p, SRC_TOP11, 20, 1), |
403 | MUX(0, "mout_sw_aclk166", mout_sw_aclk166_p, SRC_TOP11, 24, 1), | 440 | MUX(0, "mout_sw_aclk166", mout_sw_aclk166_p, SRC_TOP11, 24, 1), |
404 | MUX(0, "mout_sw_aclk333", mout_sw_aclk333_p, SRC_TOP11, 28, 1), | 441 | MUX(0, "mout_sw_aclk333", mout_sw_aclk333_p, SRC_TOP11, 28, 1), |
@@ -446,6 +483,13 @@ static struct samsung_mux_clock exynos5420_mux_clks[] __initdata = { | |||
446 | MUX(0, "mout_spi0", mout_group2_p, SRC_PERIC1, 20, 3), | 483 | MUX(0, "mout_spi0", mout_group2_p, SRC_PERIC1, 20, 3), |
447 | MUX(0, "mout_spi1", mout_group2_p, SRC_PERIC1, 24, 3), | 484 | MUX(0, "mout_spi1", mout_group2_p, SRC_PERIC1, 24, 3), |
448 | MUX(0, "mout_spi2", mout_group2_p, SRC_PERIC1, 28, 3), | 485 | MUX(0, "mout_spi2", mout_group2_p, SRC_PERIC1, 28, 3), |
486 | |||
487 | /* ISP Block */ | ||
488 | MUX(0, "mout_pwm_isp", mout_group2_p, SRC_ISP, 24, 3), | ||
489 | MUX(0, "mout_uart_isp", mout_group2_p, SRC_ISP, 20, 3), | ||
490 | MUX(0, "mout_spi0_isp", mout_group2_p, SRC_ISP, 12, 3), | ||
491 | MUX(0, "mout_spi1_isp", mout_group2_p, SRC_ISP, 16, 3), | ||
492 | MUX(0, "mout_isp_sensor", mout_group2_p, SRC_ISP, 28, 3), | ||
449 | }; | 493 | }; |
450 | 494 | ||
451 | static struct samsung_div_clock exynos5420_div_clks[] __initdata = { | 495 | static struct samsung_div_clock exynos5420_div_clks[] __initdata = { |
@@ -455,6 +499,7 @@ static struct samsung_div_clock exynos5420_div_clks[] __initdata = { | |||
455 | DIV(0, "div_kfc", "mout_kfc", DIV_KFC0, 0, 3), | 499 | DIV(0, "div_kfc", "mout_kfc", DIV_KFC0, 0, 3), |
456 | DIV(0, "sclk_kpll", "mout_kpll", DIV_KFC0, 24, 3), | 500 | DIV(0, "sclk_kpll", "mout_kpll", DIV_KFC0, 24, 3), |
457 | 501 | ||
502 | DIV(0, "dout_aclk400_isp", "mout_aclk400_isp", DIV_TOP0, 0, 3), | ||
458 | DIV(0, "dout_aclk400_mscl", "mout_aclk400_mscl", DIV_TOP0, 4, 3), | 503 | DIV(0, "dout_aclk400_mscl", "mout_aclk400_mscl", DIV_TOP0, 4, 3), |
459 | DIV(0, "dout_aclk200", "mout_aclk200", DIV_TOP0, 8, 3), | 504 | DIV(0, "dout_aclk200", "mout_aclk200", DIV_TOP0, 8, 3), |
460 | DIV(0, "dout_aclk200_fsys2", "mout_aclk200_fsys2", DIV_TOP0, 12, 3), | 505 | DIV(0, "dout_aclk200_fsys2", "mout_aclk200_fsys2", DIV_TOP0, 12, 3), |
@@ -463,7 +508,11 @@ static struct samsung_div_clock exynos5420_div_clks[] __initdata = { | |||
463 | 508 | ||
464 | DIV(0, "dout_aclk333_432_gscl", "mout_aclk333_432_gscl", | 509 | DIV(0, "dout_aclk333_432_gscl", "mout_aclk333_432_gscl", |
465 | DIV_TOP1, 0, 3), | 510 | DIV_TOP1, 0, 3), |
511 | DIV(0, "dout_aclk333_432_isp", "mout_aclk333_432_isp", | ||
512 | DIV_TOP1, 4, 3), | ||
466 | DIV(0, "dout_aclk66", "mout_aclk66", DIV_TOP1, 8, 6), | 513 | DIV(0, "dout_aclk66", "mout_aclk66", DIV_TOP1, 8, 6), |
514 | DIV(0, "dout_aclk333_432_isp0", "mout_aclk333_432_isp0", | ||
515 | DIV_TOP1, 16, 3), | ||
467 | DIV(0, "dout_aclk266", "mout_aclk266", DIV_TOP1, 20, 3), | 516 | DIV(0, "dout_aclk266", "mout_aclk266", DIV_TOP1, 20, 3), |
468 | DIV(0, "dout_aclk166", "mout_aclk166", DIV_TOP1, 24, 3), | 517 | DIV(0, "dout_aclk166", "mout_aclk166", DIV_TOP1, 24, 3), |
469 | DIV(0, "dout_aclk333", "mout_aclk333", DIV_TOP1, 28, 3), | 518 | DIV(0, "dout_aclk333", "mout_aclk333", DIV_TOP1, 28, 3), |
@@ -526,6 +575,19 @@ static struct samsung_div_clock exynos5420_div_clks[] __initdata = { | |||
526 | DIV(0, "dout_pre_spi0", "dout_spi0", DIV_PERIC4, 8, 8), | 575 | DIV(0, "dout_pre_spi0", "dout_spi0", DIV_PERIC4, 8, 8), |
527 | DIV(0, "dout_pre_spi1", "dout_spi1", DIV_PERIC4, 16, 8), | 576 | DIV(0, "dout_pre_spi1", "dout_spi1", DIV_PERIC4, 16, 8), |
528 | DIV(0, "dout_pre_spi2", "dout_spi2", DIV_PERIC4, 24, 8), | 577 | DIV(0, "dout_pre_spi2", "dout_spi2", DIV_PERIC4, 24, 8), |
578 | |||
579 | /* ISP Block */ | ||
580 | DIV(0, "dout_isp_sensor0", "mout_isp_sensor", SCLK_DIV_ISP0, 8, 8), | ||
581 | DIV(0, "dout_isp_sensor1", "mout_isp_sensor", SCLK_DIV_ISP0, 16, 8), | ||
582 | DIV(0, "dout_isp_sensor2", "mout_isp_sensor", SCLK_DIV_ISP0, 24, 8), | ||
583 | DIV(0, "dout_pwm_isp", "mout_pwm_isp", SCLK_DIV_ISP1, 28, 4), | ||
584 | DIV(0, "dout_uart_isp", "mout_uart_isp", SCLK_DIV_ISP1, 24, 4), | ||
585 | DIV(0, "dout_spi0_isp", "mout_spi0_isp", SCLK_DIV_ISP1, 16, 4), | ||
586 | DIV(0, "dout_spi1_isp", "mout_spi1_isp", SCLK_DIV_ISP1, 20, 4), | ||
587 | DIV_F(0, "dout_spi0_isp_pre", "dout_spi0_isp", SCLK_DIV_ISP1, 0, 8, | ||
588 | CLK_SET_RATE_PARENT, 0), | ||
589 | DIV_F(0, "dout_spi1_isp_pre", "dout_spi1_isp", SCLK_DIV_ISP1, 8, 8, | ||
590 | CLK_SET_RATE_PARENT, 0), | ||
529 | }; | 591 | }; |
530 | 592 | ||
531 | static struct samsung_gate_clock exynos5420_gate_clks[] __initdata = { | 593 | static struct samsung_gate_clock exynos5420_gate_clks[] __initdata = { |
@@ -547,20 +609,28 @@ static struct samsung_gate_clock exynos5420_gate_clks[] __initdata = { | |||
547 | GATE_BUS_TOP, 1, CLK_IGNORE_UNUSED, 0), | 609 | GATE_BUS_TOP, 1, CLK_IGNORE_UNUSED, 0), |
548 | GATE(0, "aclk300_jpeg", "mout_user_aclk300_jpeg", | 610 | GATE(0, "aclk300_jpeg", "mout_user_aclk300_jpeg", |
549 | GATE_BUS_TOP, 4, CLK_IGNORE_UNUSED, 0), | 611 | GATE_BUS_TOP, 4, CLK_IGNORE_UNUSED, 0), |
612 | GATE(0, "aclk333_432_isp0", "mout_user_aclk333_432_isp0", | ||
613 | GATE_BUS_TOP, 5, 0, 0), | ||
550 | GATE(0, "aclk300_gscl", "mout_user_aclk300_gscl", | 614 | GATE(0, "aclk300_gscl", "mout_user_aclk300_gscl", |
551 | GATE_BUS_TOP, 6, CLK_IGNORE_UNUSED, 0), | 615 | GATE_BUS_TOP, 6, CLK_IGNORE_UNUSED, 0), |
552 | GATE(0, "aclk333_432_gscl", "mout_user_aclk333_432_gscl", | 616 | GATE(0, "aclk333_432_gscl", "mout_user_aclk333_432_gscl", |
553 | GATE_BUS_TOP, 7, CLK_IGNORE_UNUSED, 0), | 617 | GATE_BUS_TOP, 7, CLK_IGNORE_UNUSED, 0), |
618 | GATE(0, "aclk333_432_isp", "mout_user_aclk333_432_isp", | ||
619 | GATE_BUS_TOP, 8, 0, 0), | ||
554 | GATE(0, "pclk66_gpio", "mout_sw_aclk66", | 620 | GATE(0, "pclk66_gpio", "mout_sw_aclk66", |
555 | GATE_BUS_TOP, 9, CLK_IGNORE_UNUSED, 0), | 621 | GATE_BUS_TOP, 9, CLK_IGNORE_UNUSED, 0), |
556 | GATE(0, "aclk66_psgen", "mout_aclk66_psgen", | 622 | GATE(0, "aclk66_psgen", "mout_aclk66_psgen", |
557 | GATE_BUS_TOP, 10, CLK_IGNORE_UNUSED, 0), | 623 | GATE_BUS_TOP, 10, CLK_IGNORE_UNUSED, 0), |
558 | GATE(0, "aclk66_peric", "mout_aclk66_peric", | 624 | GATE(0, "aclk66_peric", "mout_aclk66_peric", |
559 | GATE_BUS_TOP, 11, 0, 0), | 625 | GATE_BUS_TOP, 11, 0, 0), |
626 | GATE(0, "aclk266_isp", "mout_user_aclk266_isp", | ||
627 | GATE_BUS_TOP, 13, 0, 0), | ||
560 | GATE(0, "aclk166", "mout_user_aclk166", | 628 | GATE(0, "aclk166", "mout_user_aclk166", |
561 | GATE_BUS_TOP, 14, CLK_IGNORE_UNUSED, 0), | 629 | GATE_BUS_TOP, 14, CLK_IGNORE_UNUSED, 0), |
562 | GATE(0, "aclk333", "mout_aclk333", | 630 | GATE(0, "aclk333", "mout_aclk333", |
563 | GATE_BUS_TOP, 15, CLK_IGNORE_UNUSED, 0), | 631 | GATE_BUS_TOP, 15, CLK_IGNORE_UNUSED, 0), |
632 | GATE(0, "aclk400_isp", "mout_user_aclk400_isp", | ||
633 | GATE_BUS_TOP, 16, 0, 0), | ||
564 | 634 | ||
565 | /* sclk */ | 635 | /* sclk */ |
566 | GATE(CLK_SCLK_UART0, "sclk_uart0", "dout_uart0", | 636 | GATE(CLK_SCLK_UART0, "sclk_uart0", "dout_uart0", |
@@ -735,6 +805,22 @@ static struct samsung_gate_clock exynos5420_gate_clks[] __initdata = { | |||
735 | GATE(CLK_SMMU_FIMD1, "smmu_fimd1", "aclk300_disp1", GATE_IP_DISP1, 8, 0, | 805 | GATE(CLK_SMMU_FIMD1, "smmu_fimd1", "aclk300_disp1", GATE_IP_DISP1, 8, 0, |
736 | 0), | 806 | 0), |
737 | 807 | ||
808 | /* ISP */ | ||
809 | GATE(CLK_SCLK_UART_ISP, "sclk_uart_isp", "dout_uart_isp", | ||
810 | GATE_TOP_SCLK_ISP, 0, CLK_SET_RATE_PARENT, 0), | ||
811 | GATE(CLK_SCLK_SPI0_ISP, "sclk_spi0_isp", "dout_spi0_isp_pre", | ||
812 | GATE_TOP_SCLK_ISP, 1, CLK_SET_RATE_PARENT, 0), | ||
813 | GATE(CLK_SCLK_SPI1_ISP, "sclk_spi1_isp", "dout_spi1_isp_pre", | ||
814 | GATE_TOP_SCLK_ISP, 2, CLK_SET_RATE_PARENT, 0), | ||
815 | GATE(CLK_SCLK_PWM_ISP, "sclk_pwm_isp", "dout_pwm_isp", | ||
816 | GATE_TOP_SCLK_ISP, 3, CLK_SET_RATE_PARENT, 0), | ||
817 | GATE(CLK_SCLK_ISP_SENSOR0, "sclk_isp_sensor0", "dout_isp_sensor0", | ||
818 | GATE_TOP_SCLK_ISP, 4, CLK_SET_RATE_PARENT, 0), | ||
819 | GATE(CLK_SCLK_ISP_SENSOR1, "sclk_isp_sensor1", "dout_isp_sensor1", | ||
820 | GATE_TOP_SCLK_ISP, 8, CLK_SET_RATE_PARENT, 0), | ||
821 | GATE(CLK_SCLK_ISP_SENSOR2, "sclk_isp_sensor2", "dout_isp_sensor2", | ||
822 | GATE_TOP_SCLK_ISP, 12, CLK_SET_RATE_PARENT, 0), | ||
823 | |||
738 | GATE(CLK_MFC, "mfc", "aclk333", GATE_IP_MFC, 0, 0, 0), | 824 | GATE(CLK_MFC, "mfc", "aclk333", GATE_IP_MFC, 0, 0, 0), |
739 | GATE(CLK_SMMU_MFCL, "smmu_mfcl", "aclk333", GATE_IP_MFC, 1, 0, 0), | 825 | GATE(CLK_SMMU_MFCL, "smmu_mfcl", "aclk333", GATE_IP_MFC, 1, 0, 0), |
740 | GATE(CLK_SMMU_MFCR, "smmu_mfcr", "aclk333", GATE_IP_MFC, 2, 0, 0), | 826 | GATE(CLK_SMMU_MFCR, "smmu_mfcr", "aclk333", GATE_IP_MFC, 2, 0, 0), |