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 | |
| 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>
| -rw-r--r-- | drivers/clk/samsung/clk-exynos5250.c | 35 | ||||
| -rw-r--r-- | include/dt-bindings/clock/exynos5250.h | 16 |
2 files changed, 51 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 = { |
diff --git a/include/dt-bindings/clock/exynos5250.h b/include/dt-bindings/clock/exynos5250.h index 415d447e6e29..be6e97c54f54 100644 --- a/include/dt-bindings/clock/exynos5250.h +++ b/include/dt-bindings/clock/exynos5250.h | |||
| @@ -152,6 +152,22 @@ | |||
| 152 | #define CLK_SMMU_MDMA0 347 | 152 | #define CLK_SMMU_MDMA0 347 |
| 153 | #define CLK_SSS 348 | 153 | #define CLK_SSS 348 |
| 154 | #define CLK_G3D 349 | 154 | #define CLK_G3D 349 |
| 155 | #define CLK_SMMU_TV 350 | ||
| 156 | #define CLK_SMMU_FIMD1 351 | ||
| 157 | #define CLK_SMMU_2D 352 | ||
| 158 | #define CLK_SMMU_FIMC_ISP 353 | ||
| 159 | #define CLK_SMMU_FIMC_DRC 354 | ||
| 160 | #define CLK_SMMU_FIMC_SCC 355 | ||
| 161 | #define CLK_SMMU_FIMC_SCP 356 | ||
| 162 | #define CLK_SMMU_FIMC_FD 357 | ||
| 163 | #define CLK_SMMU_FIMC_MCU 358 | ||
| 164 | #define CLK_SMMU_FIMC_ODC 359 | ||
| 165 | #define CLK_SMMU_FIMC_DIS0 360 | ||
| 166 | #define CLK_SMMU_FIMC_DIS1 361 | ||
| 167 | #define CLK_SMMU_FIMC_3DNR 362 | ||
| 168 | #define CLK_SMMU_FIMC_LITE0 363 | ||
| 169 | #define CLK_SMMU_FIMC_LITE1 364 | ||
| 170 | #define CLK_CAMIF_TOP 365 | ||
| 155 | 171 | ||
| 156 | /* mux clocks */ | 172 | /* mux clocks */ |
| 157 | #define CLK_MOUT_HDMI 1024 | 173 | #define CLK_MOUT_HDMI 1024 |
