12 #include <linux/kernel.h>
19 #include <plat/clock.h>
26 #include <mach/hardware.h>
28 #include <mach/regs-clock.h>
34 #ifdef CONFIG_PM_SLEEP
35 static struct sleep_save exynos4212_clock_save[] = {
43 static int exynos4212_clk_ip_isp0_ctrl(
struct clk *
clk,
int enable)
48 static int exynos4212_clk_ip_isp1_ctrl(
struct clk *
clk,
int enable)
53 static struct clk *clk_src_mpll_user_list[] = {
59 .sources = clk_src_mpll_user_list,
60 .nr_sources =
ARRAY_SIZE(clk_src_mpll_user_list),
63 static struct clksrc_clk clk_mout_mpll_user = {
65 .name =
"mout_mpll_user",
67 .sources = &clk_src_mpll_user,
71 static struct clksrc_clk exynos4x12_clk_mout_g2d0 = {
79 static struct clksrc_clk exynos4x12_clk_mout_g2d1 = {
87 static struct clk *exynos4x12_clkset_mout_g2d_list[] = {
88 [0] = &exynos4x12_clk_mout_g2d0.
clk,
89 [1] = &exynos4x12_clk_mout_g2d1.
clk,
93 .sources = exynos4x12_clkset_mout_g2d_list,
94 .nr_sources =
ARRAY_SIZE(exynos4x12_clkset_mout_g2d_list),
104 .name =
"sclk_fimg2d",
106 .sources = &exynos4x12_clkset_mout_g2d,
112 static struct clk init_clocks_off[] = {
117 .ctrlbit = (1 << 24),
121 .enable = exynos4212_clk_ip_isp0_ctrl,
126 .enable = exynos4212_clk_ip_isp1_ctrl,
130 .devname =
"exynos-fimc-lite.0",
131 .enable = exynos4212_clk_ip_isp0_ctrl,
135 .devname =
"exynos-fimc-lite.1",
136 .enable = exynos4212_clk_ip_isp0_ctrl,
141 .ctrlbit = (1 << 23),
145 #ifdef CONFIG_PM_SLEEP
159 #define exynos4212_clock_suspend NULL
160 #define exynos4212_clock_resume NULL
163 static struct syscore_ops exynos4212_clock_syscore_ops = {
183 for (ptr = 0; ptr <
ARRAY_SIZE(sysclks); ptr++)