aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/clk/samsung
diff options
context:
space:
mode:
authorCho KyongHo <pullip.cho@samsung.com>2014-05-21 18:23:19 -0400
committerKukjin Kim <kgene.kim@samsung.com>2014-05-25 17:48:10 -0400
commitbfed1074f213051e94648bfad0d0611a16d81366 (patch)
treef3ff4aaf55e0972d34a40de3a8773f2716689b70 /drivers/clk/samsung
parent6520e968eef4f88c076a84a80e026049d157132e (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.c35
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
150static int exynos5250_clk_suspend(void) 154static int exynos5250_clk_suspend(void)
@@ -202,6 +206,7 @@ PNAME(mout_aclk400_p) = { "mout_aclk400_g3d_mid", "mout_gpll" };
202PNAME(mout_aclk200_sub_p) = { "fin_pll", "div_aclk200" }; 206PNAME(mout_aclk200_sub_p) = { "fin_pll", "div_aclk200" };
203PNAME(mout_aclk266_sub_p) = { "fin_pll", "div_aclk266" }; 207PNAME(mout_aclk266_sub_p) = { "fin_pll", "div_aclk266" };
204PNAME(mout_aclk333_sub_p) = { "fin_pll", "div_aclk333" }; 208PNAME(mout_aclk333_sub_p) = { "fin_pll", "div_aclk333" };
209PNAME(mout_aclk400_isp_sub_p) = { "fin_pll", "div_aclk400_isp" };
205PNAME(mout_hdmi_p) = { "div_hdmi_pixel", "sclk_hdmiphy" }; 210PNAME(mout_hdmi_p) = { "div_hdmi_pixel", "sclk_hdmiphy" };
206PNAME(mout_usb3_p) = { "mout_mpll_user", "mout_cpll" }; 211PNAME(mout_usb3_p) = { "mout_mpll_user", "mout_cpll" };
207PNAME(mout_group1_p) = { "fin_pll", "fin_pll", "sclk_hdmi27m", 212PNAME(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
634static struct samsung_pll_rate_table vpll_24mhz_tbl[] __initdata = { 669static struct samsung_pll_rate_table vpll_24mhz_tbl[] __initdata = {