diff options
author | Cho KyongHo <pullip.cho@samsung.com> | 2014-05-21 18:23:19 -0400 |
---|---|---|
committer | Kukjin Kim <kgene.kim@samsung.com> | 2014-05-25 17:48:10 -0400 |
commit | bfed1074f213051e94648bfad0d0611a16d81366 (patch) | |
tree | f3ff4aaf55e0972d34a40de3a8773f2716689b70 /drivers/clk/samsung | |
parent | 6520e968eef4f88c076a84a80e026049d157132e (diff) |
clk: exynos5250: Add missing sysmmu clocks for DISP and ISP blocks
This patch adds the missing sysmmu clocks for Display and
ISP blocks.
Signed-off-by: Cho KyongHo <pullip.cho@samsung.com>
Signed-off-by: Shaik Ameer Basha <shaik.ameer@samsung.com>
Acked-by: Tomasz Figa <t.figa@samsung.com>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
Diffstat (limited to 'drivers/clk/samsung')
-rw-r--r-- | drivers/clk/samsung/clk-exynos5250.c | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/drivers/clk/samsung/clk-exynos5250.c b/drivers/clk/samsung/clk-exynos5250.c index 88488596c00b..870e18b9a687 100644 --- a/drivers/clk/samsung/clk-exynos5250.c +++ b/drivers/clk/samsung/clk-exynos5250.c | |||
@@ -28,6 +28,8 @@ | |||
28 | #define MPLL_CON0 0x4100 | 28 | #define MPLL_CON0 0x4100 |
29 | #define SRC_CORE1 0x4204 | 29 | #define SRC_CORE1 0x4204 |
30 | #define GATE_IP_ACP 0x8800 | 30 | #define GATE_IP_ACP 0x8800 |
31 | #define GATE_IP_ISP0 0xc800 | ||
32 | #define GATE_IP_ISP1 0xc804 | ||
31 | #define CPLL_LOCK 0x10020 | 33 | #define CPLL_LOCK 0x10020 |
32 | #define EPLL_LOCK 0x10030 | 34 | #define EPLL_LOCK 0x10030 |
33 | #define VPLL_LOCK 0x10040 | 35 | #define VPLL_LOCK 0x10040 |
@@ -145,6 +147,8 @@ static unsigned long exynos5250_clk_regs[] __initdata = { | |||
145 | PLL_DIV2_SEL, | 147 | PLL_DIV2_SEL, |
146 | GATE_IP_DISP1, | 148 | GATE_IP_DISP1, |
147 | GATE_IP_ACP, | 149 | GATE_IP_ACP, |
150 | GATE_IP_ISP0, | ||
151 | GATE_IP_ISP1, | ||
148 | }; | 152 | }; |
149 | 153 | ||
150 | static int exynos5250_clk_suspend(void) | 154 | static int exynos5250_clk_suspend(void) |
@@ -202,6 +206,7 @@ PNAME(mout_aclk400_p) = { "mout_aclk400_g3d_mid", "mout_gpll" }; | |||
202 | PNAME(mout_aclk200_sub_p) = { "fin_pll", "div_aclk200" }; | 206 | PNAME(mout_aclk200_sub_p) = { "fin_pll", "div_aclk200" }; |
203 | PNAME(mout_aclk266_sub_p) = { "fin_pll", "div_aclk266" }; | 207 | PNAME(mout_aclk266_sub_p) = { "fin_pll", "div_aclk266" }; |
204 | PNAME(mout_aclk333_sub_p) = { "fin_pll", "div_aclk333" }; | 208 | PNAME(mout_aclk333_sub_p) = { "fin_pll", "div_aclk333" }; |
209 | PNAME(mout_aclk400_isp_sub_p) = { "fin_pll", "div_aclk400_isp" }; | ||
205 | PNAME(mout_hdmi_p) = { "div_hdmi_pixel", "sclk_hdmiphy" }; | 210 | PNAME(mout_hdmi_p) = { "div_hdmi_pixel", "sclk_hdmiphy" }; |
206 | PNAME(mout_usb3_p) = { "mout_mpll_user", "mout_cpll" }; | 211 | PNAME(mout_usb3_p) = { "mout_mpll_user", "mout_cpll" }; |
207 | PNAME(mout_group1_p) = { "fin_pll", "fin_pll", "sclk_hdmi27m", | 212 | PNAME(mout_group1_p) = { "fin_pll", "fin_pll", "sclk_hdmi27m", |
@@ -281,6 +286,7 @@ static struct samsung_mux_clock exynos5250_mux_clks[] __initdata = { | |||
281 | MUX(0, "mout_aclk333", mout_aclk166_p, SRC_TOP0, 16, 1), | 286 | MUX(0, "mout_aclk333", mout_aclk166_p, SRC_TOP0, 16, 1), |
282 | MUX(0, "mout_aclk400_g3d_mid", mout_aclk200_p, SRC_TOP0, 20, 1), | 287 | MUX(0, "mout_aclk400_g3d_mid", mout_aclk200_p, SRC_TOP0, 20, 1), |
283 | 288 | ||
289 | MUX(0, "mout_aclk400_isp", mout_aclk200_p, SRC_TOP1, 24, 1), | ||
284 | MUX(0, "mout_aclk400_g3d", mout_aclk400_p, SRC_TOP1, 28, 1), | 290 | MUX(0, "mout_aclk400_g3d", mout_aclk400_p, SRC_TOP1, 28, 1), |
285 | 291 | ||
286 | MUX(0, "mout_cpll", mout_cpll_p, SRC_TOP2, 8, 1), | 292 | MUX(0, "mout_cpll", mout_cpll_p, SRC_TOP2, 8, 1), |
@@ -292,6 +298,9 @@ static struct samsung_mux_clock exynos5250_mux_clks[] __initdata = { | |||
292 | 298 | ||
293 | MUX(0, "mout_aclk200_disp1_sub", mout_aclk200_sub_p, SRC_TOP3, 4, 1), | 299 | MUX(0, "mout_aclk200_disp1_sub", mout_aclk200_sub_p, SRC_TOP3, 4, 1), |
294 | MUX(0, "mout_aclk266_gscl_sub", mout_aclk266_sub_p, SRC_TOP3, 8, 1), | 300 | MUX(0, "mout_aclk266_gscl_sub", mout_aclk266_sub_p, SRC_TOP3, 8, 1), |
301 | MUX(0, "mout_aclk_266_isp_sub", mout_aclk266_sub_p, SRC_TOP3, 16, 1), | ||
302 | MUX(0, "mout_aclk_400_isp_sub", mout_aclk400_isp_sub_p, | ||
303 | SRC_TOP3, 20, 1), | ||
295 | MUX(0, "mout_aclk333_sub", mout_aclk333_sub_p, SRC_TOP3, 24, 1), | 304 | MUX(0, "mout_aclk333_sub", mout_aclk333_sub_p, SRC_TOP3, 24, 1), |
296 | 305 | ||
297 | MUX(0, "mout_cam_bayer", mout_group1_p, SRC_GSCL, 12, 4), | 306 | MUX(0, "mout_cam_bayer", mout_group1_p, SRC_GSCL, 12, 4), |
@@ -364,6 +373,7 @@ static struct samsung_div_clock exynos5250_div_clks[] __initdata = { | |||
364 | DIV(0, "div_aclk400_g3d", "mout_aclk400_g3d", DIV_TOP0, | 373 | DIV(0, "div_aclk400_g3d", "mout_aclk400_g3d", DIV_TOP0, |
365 | 24, 3), | 374 | 24, 3), |
366 | 375 | ||
376 | DIV(0, "div_aclk400_isp", "mout_aclk400_isp", DIV_TOP1, 20, 3), | ||
367 | DIV(0, "div_aclk66_pre", "mout_mpll_user", DIV_TOP1, 24, 3), | 377 | DIV(0, "div_aclk66_pre", "mout_mpll_user", DIV_TOP1, 24, 3), |
368 | 378 | ||
369 | DIV(0, "div_cam_bayer", "mout_cam_bayer", DIV_GSCL, 12, 4), | 379 | DIV(0, "div_cam_bayer", "mout_cam_bayer", DIV_GSCL, 12, 4), |
@@ -629,6 +639,31 @@ static struct samsung_gate_clock exynos5250_gate_clks[] __initdata = { | |||
629 | GATE(CLK_WDT, "wdt", "div_aclk66", GATE_IP_PERIS, 19, 0, 0), | 639 | GATE(CLK_WDT, "wdt", "div_aclk66", GATE_IP_PERIS, 19, 0, 0), |
630 | GATE(CLK_RTC, "rtc", "div_aclk66", GATE_IP_PERIS, 20, 0, 0), | 640 | GATE(CLK_RTC, "rtc", "div_aclk66", GATE_IP_PERIS, 20, 0, 0), |
631 | GATE(CLK_TMU, "tmu", "div_aclk66", GATE_IP_PERIS, 21, 0, 0), | 641 | GATE(CLK_TMU, "tmu", "div_aclk66", GATE_IP_PERIS, 21, 0, 0), |
642 | GATE(CLK_SMMU_TV, "smmu_tv", "mout_aclk200_disp1_sub", | ||
643 | GATE_IP_DISP1, 2, 0, 0), | ||
644 | GATE(CLK_SMMU_FIMD1, "smmu_fimd1", "mout_aclk200_disp1_sub", | ||
645 | GATE_IP_DISP1, 8, 0, 0), | ||
646 | GATE(CLK_SMMU_2D, "smmu_2d", "div_aclk200", GATE_IP_ACP, 7, 0, 0), | ||
647 | GATE(CLK_SMMU_FIMC_ISP, "smmu_fimc_isp", "mout_aclk_266_isp_sub", | ||
648 | GATE_IP_ISP0, 8, 0, 0), | ||
649 | GATE(CLK_SMMU_FIMC_DRC, "smmu_fimc_drc", "mout_aclk_266_isp_sub", | ||
650 | GATE_IP_ISP0, 9, 0, 0), | ||
651 | GATE(CLK_SMMU_FIMC_FD, "smmu_fimc_fd", "mout_aclk_266_isp_sub", | ||
652 | GATE_IP_ISP0, 10, 0, 0), | ||
653 | GATE(CLK_SMMU_FIMC_SCC, "smmu_fimc_scc", "mout_aclk_266_isp_sub", | ||
654 | GATE_IP_ISP0, 11, 0, 0), | ||
655 | GATE(CLK_SMMU_FIMC_SCP, "smmu_fimc_scp", "mout_aclk_266_isp_sub", | ||
656 | GATE_IP_ISP0, 12, 0, 0), | ||
657 | GATE(CLK_SMMU_FIMC_MCU, "smmu_fimc_mcu", "mout_aclk_400_isp_sub", | ||
658 | GATE_IP_ISP0, 13, 0, 0), | ||
659 | GATE(CLK_SMMU_FIMC_ODC, "smmu_fimc_odc", "mout_aclk_266_isp_sub", | ||
660 | GATE_IP_ISP1, 4, 0, 0), | ||
661 | GATE(CLK_SMMU_FIMC_DIS0, "smmu_fimc_dis0", "mout_aclk_266_isp_sub", | ||
662 | GATE_IP_ISP1, 5, 0, 0), | ||
663 | GATE(CLK_SMMU_FIMC_DIS1, "smmu_fimc_dis1", "mout_aclk_266_isp_sub", | ||
664 | GATE_IP_ISP1, 6, 0, 0), | ||
665 | GATE(CLK_SMMU_FIMC_3DNR, "smmu_fimc_3dnr", "mout_aclk_266_isp_sub", | ||
666 | GATE_IP_ISP1, 7, 0, 0), | ||
632 | }; | 667 | }; |
633 | 668 | ||
634 | static struct samsung_pll_rate_table vpll_24mhz_tbl[] __initdata = { | 669 | static struct samsung_pll_rate_table vpll_24mhz_tbl[] __initdata = { |