aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/clk/samsung
diff options
context:
space:
mode:
authorArun Kumar K <arun.kk@samsung.com>2014-04-28 05:37:01 -0400
committerTomasz Figa <t.figa@samsung.com>2014-05-14 13:40:15 -0400
commit20b82ae27e89739ed8740323913d58efe593ef91 (patch)
treef14d6b22d3b2a15e80c914720ce54384ffef4d7d /drivers/clk/samsung
parent04bc7d96fbbbd7c379a8351db9f2466b47c74ec2 (diff)
clk: samsung: exynos5250: Add clocks for G3D
This patch adds the required clocks for ARM Mali IP in Exynos5250. Signed-off-by: Arun Kumar K <arun.kk@samsung.com> [t.figa: Changed clock ID to avoid conflict with CLK_SSS] Signed-off-by: Tomasz Figa <t.figa@samsung.com>
Diffstat (limited to 'drivers/clk/samsung')
-rw-r--r--drivers/clk/samsung/clk-exynos5250.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/drivers/clk/samsung/clk-exynos5250.c b/drivers/clk/samsung/clk-exynos5250.c
index d1d53ca45e20..88488596c00b 100644
--- a/drivers/clk/samsung/clk-exynos5250.c
+++ b/drivers/clk/samsung/clk-exynos5250.c
@@ -37,6 +37,7 @@
37#define VPLL_CON0 0x10140 37#define VPLL_CON0 0x10140
38#define GPLL_CON0 0x10150 38#define GPLL_CON0 0x10150
39#define SRC_TOP0 0x10210 39#define SRC_TOP0 0x10210
40#define SRC_TOP1 0x10214
40#define SRC_TOP2 0x10218 41#define SRC_TOP2 0x10218
41#define SRC_TOP3 0x1021c 42#define SRC_TOP3 0x1021c
42#define SRC_GSCL 0x10220 43#define SRC_GSCL 0x10220
@@ -71,6 +72,7 @@
71#define GATE_IP_GSCL 0x10920 72#define GATE_IP_GSCL 0x10920
72#define GATE_IP_DISP1 0x10928 73#define GATE_IP_DISP1 0x10928
73#define GATE_IP_MFC 0x1092c 74#define GATE_IP_MFC 0x1092c
75#define GATE_IP_G3D 0x10930
74#define GATE_IP_GEN 0x10934 76#define GATE_IP_GEN 0x10934
75#define GATE_IP_FSYS 0x10944 77#define GATE_IP_FSYS 0x10944
76#define GATE_IP_PERIC 0x10950 78#define GATE_IP_PERIC 0x10950
@@ -100,6 +102,7 @@ static unsigned long exynos5250_clk_regs[] __initdata = {
100 DIV_CPU0, 102 DIV_CPU0,
101 SRC_CORE1, 103 SRC_CORE1,
102 SRC_TOP0, 104 SRC_TOP0,
105 SRC_TOP1,
103 SRC_TOP2, 106 SRC_TOP2,
104 SRC_TOP3, 107 SRC_TOP3,
105 SRC_GSCL, 108 SRC_GSCL,
@@ -133,6 +136,7 @@ static unsigned long exynos5250_clk_regs[] __initdata = {
133 DIV_PERIC5, 136 DIV_PERIC5,
134 GATE_IP_GSCL, 137 GATE_IP_GSCL,
135 GATE_IP_MFC, 138 GATE_IP_MFC,
139 GATE_IP_G3D,
136 GATE_IP_GEN, 140 GATE_IP_GEN,
137 GATE_IP_FSYS, 141 GATE_IP_FSYS,
138 GATE_IP_PERIC, 142 GATE_IP_PERIC,
@@ -189,10 +193,12 @@ PNAME(mout_vpllsrc_p) = { "fin_pll", "sclk_hdmi27m" };
189PNAME(mout_vpll_p) = { "mout_vpllsrc", "fout_vpll" }; 193PNAME(mout_vpll_p) = { "mout_vpllsrc", "fout_vpll" };
190PNAME(mout_cpll_p) = { "fin_pll", "fout_cpll" }; 194PNAME(mout_cpll_p) = { "fin_pll", "fout_cpll" };
191PNAME(mout_epll_p) = { "fin_pll", "fout_epll" }; 195PNAME(mout_epll_p) = { "fin_pll", "fout_epll" };
196PNAME(mout_gpll_p) = { "fin_pll", "fout_gpll" };
192PNAME(mout_mpll_user_p) = { "fin_pll", "mout_mpll" }; 197PNAME(mout_mpll_user_p) = { "fin_pll", "mout_mpll" };
193PNAME(mout_bpll_user_p) = { "fin_pll", "mout_bpll" }; 198PNAME(mout_bpll_user_p) = { "fin_pll", "mout_bpll" };
194PNAME(mout_aclk166_p) = { "mout_cpll", "mout_mpll_user" }; 199PNAME(mout_aclk166_p) = { "mout_cpll", "mout_mpll_user" };
195PNAME(mout_aclk200_p) = { "mout_mpll_user", "mout_bpll_user" }; 200PNAME(mout_aclk200_p) = { "mout_mpll_user", "mout_bpll_user" };
201PNAME(mout_aclk400_p) = { "mout_aclk400_g3d_mid", "mout_gpll" };
196PNAME(mout_aclk200_sub_p) = { "fin_pll", "div_aclk200" }; 202PNAME(mout_aclk200_sub_p) = { "fin_pll", "div_aclk200" };
197PNAME(mout_aclk266_sub_p) = { "fin_pll", "div_aclk266" }; 203PNAME(mout_aclk266_sub_p) = { "fin_pll", "div_aclk266" };
198PNAME(mout_aclk333_sub_p) = { "fin_pll", "div_aclk333" }; 204PNAME(mout_aclk333_sub_p) = { "fin_pll", "div_aclk333" };
@@ -273,12 +279,16 @@ static struct samsung_mux_clock exynos5250_mux_clks[] __initdata = {
273 MUX(0, "mout_aclk166", mout_aclk166_p, SRC_TOP0, 8, 1), 279 MUX(0, "mout_aclk166", mout_aclk166_p, SRC_TOP0, 8, 1),
274 MUX(0, "mout_aclk200", mout_aclk200_p, SRC_TOP0, 12, 1), 280 MUX(0, "mout_aclk200", mout_aclk200_p, SRC_TOP0, 12, 1),
275 MUX(0, "mout_aclk333", mout_aclk166_p, SRC_TOP0, 16, 1), 281 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),
283
284 MUX(0, "mout_aclk400_g3d", mout_aclk400_p, SRC_TOP1, 28, 1),
276 285
277 MUX(0, "mout_cpll", mout_cpll_p, SRC_TOP2, 8, 1), 286 MUX(0, "mout_cpll", mout_cpll_p, SRC_TOP2, 8, 1),
278 MUX(0, "mout_epll", mout_epll_p, SRC_TOP2, 12, 1), 287 MUX(0, "mout_epll", mout_epll_p, SRC_TOP2, 12, 1),
279 MUX(0, "mout_vpll", mout_vpll_p, SRC_TOP2, 16, 1), 288 MUX(0, "mout_vpll", mout_vpll_p, SRC_TOP2, 16, 1),
280 MUX(0, "mout_mpll_user", mout_mpll_user_p, SRC_TOP2, 20, 1), 289 MUX(0, "mout_mpll_user", mout_mpll_user_p, SRC_TOP2, 20, 1),
281 MUX(0, "mout_bpll_user", mout_bpll_user_p, SRC_TOP2, 24, 1), 290 MUX(0, "mout_bpll_user", mout_bpll_user_p, SRC_TOP2, 24, 1),
291 MUX(CLK_MOUT_GPLL, "mout_gpll", mout_gpll_p, SRC_TOP2, 28, 1),
282 292
283 MUX(0, "mout_aclk200_disp1_sub", mout_aclk200_sub_p, SRC_TOP3, 4, 1), 293 MUX(0, "mout_aclk200_disp1_sub", mout_aclk200_sub_p, SRC_TOP3, 4, 1),
284 MUX(0, "mout_aclk266_gscl_sub", mout_aclk266_sub_p, SRC_TOP3, 8, 1), 294 MUX(0, "mout_aclk266_gscl_sub", mout_aclk266_sub_p, SRC_TOP3, 8, 1),
@@ -351,6 +361,8 @@ static struct samsung_div_clock exynos5250_div_clks[] __initdata = {
351 DIV(0, "div_aclk200", "mout_aclk200", DIV_TOP0, 12, 3), 361 DIV(0, "div_aclk200", "mout_aclk200", DIV_TOP0, 12, 3),
352 DIV(0, "div_aclk266", "mout_mpll_user", DIV_TOP0, 16, 3), 362 DIV(0, "div_aclk266", "mout_mpll_user", DIV_TOP0, 16, 3),
353 DIV(0, "div_aclk333", "mout_aclk333", DIV_TOP0, 20, 3), 363 DIV(0, "div_aclk333", "mout_aclk333", DIV_TOP0, 20, 3),
364 DIV(0, "div_aclk400_g3d", "mout_aclk400_g3d", DIV_TOP0,
365 24, 3),
354 366
355 DIV(0, "div_aclk66_pre", "mout_mpll_user", DIV_TOP1, 24, 3), 367 DIV(0, "div_aclk66_pre", "mout_mpll_user", DIV_TOP1, 24, 3),
356 368
@@ -534,7 +546,8 @@ static struct samsung_gate_clock exynos5250_gate_clks[] __initdata = {
534 0), 546 0),
535 GATE(CLK_SMMU_MFCL, "smmu_mfcl", "mout_aclk333_sub", GATE_IP_MFC, 2, 0, 547 GATE(CLK_SMMU_MFCL, "smmu_mfcl", "mout_aclk333_sub", GATE_IP_MFC, 2, 0,
536 0), 548 0),
537 549 GATE(CLK_G3D, "g3d", "div_aclk400_g3d", GATE_IP_G3D, 0,
550 CLK_SET_RATE_PARENT, 0),
538 GATE(CLK_ROTATOR, "rotator", "div_aclk266", GATE_IP_GEN, 1, 0, 0), 551 GATE(CLK_ROTATOR, "rotator", "div_aclk266", GATE_IP_GEN, 1, 0, 0),
539 GATE(CLK_JPEG, "jpeg", "div_aclk166", GATE_IP_GEN, 2, 0, 0), 552 GATE(CLK_JPEG, "jpeg", "div_aclk166", GATE_IP_GEN, 2, 0, 0),
540 GATE(CLK_MDMA1, "mdma1", "div_aclk266", GATE_IP_GEN, 4, 0, 0), 553 GATE(CLK_MDMA1, "mdma1", "div_aclk266", GATE_IP_GEN, 4, 0, 0),