aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/clk
diff options
context:
space:
mode:
authorGabriel FERNANDEZ <gabriel.fernandez@st.com>2014-07-15 11:20:28 -0400
committerMike Turquette <mturquette@linaro.org>2014-07-29 01:36:59 -0400
commit58de9b8e7fd463ad89dcc2c38f4c95f932d6797d (patch)
tree0f5616b02eb2903c3e6039f8fe49e646303beef4 /drivers/clk
parent51306d56ba81dc2bded042188706481f0c84d379 (diff)
clk: st: STiH407: Support for clockgenD0/D2/D3
The patch added support for ClockGenD0/D2/D3 It includes one 660 Quadfs. Signed-off-by: Gabriel Fernandez <gabriel.fernandez@linaro.org> Signed-off-by: Olivier Bideau <olivier.bideau@st.com> Acked-by: Peter Griffin <peter.griffin@linaro.org> Signed-off-by: Mike Turquette <mturquette@linaro.org>
Diffstat (limited to 'drivers/clk')
-rw-r--r--drivers/clk/st/clkgen-fsyn.c46
1 files changed, 46 insertions, 0 deletions
diff --git a/drivers/clk/st/clkgen-fsyn.c b/drivers/clk/st/clkgen-fsyn.c
index 84fcf715bf96..dc5bcb7cc6d7 100644
--- a/drivers/clk/st/clkgen-fsyn.c
+++ b/drivers/clk/st/clkgen-fsyn.c
@@ -298,6 +298,48 @@ static const struct clkgen_quadfs_data st_fs660c32_C_407 = {
298 .get_rate = clk_fs660c32_dig_get_rate, 298 .get_rate = clk_fs660c32_dig_get_rate,
299}; 299};
300 300
301static const struct clkgen_quadfs_data st_fs660c32_D_407 = {
302 .nrst_present = true,
303 .nrst = { CLKGEN_FIELD(0x2a0, 0x1, 0),
304 CLKGEN_FIELD(0x2a0, 0x1, 1),
305 CLKGEN_FIELD(0x2a0, 0x1, 2),
306 CLKGEN_FIELD(0x2a0, 0x1, 3) },
307 .ndiv = CLKGEN_FIELD(0x2a4, 0x7, 16),
308 .pe = { CLKGEN_FIELD(0x2b4, 0x7fff, 0),
309 CLKGEN_FIELD(0x2b8, 0x7fff, 0),
310 CLKGEN_FIELD(0x2bc, 0x7fff, 0),
311 CLKGEN_FIELD(0x2c0, 0x7fff, 0) },
312 .sdiv = { CLKGEN_FIELD(0x2b4, 0xf, 20),
313 CLKGEN_FIELD(0x2b8, 0xf, 20),
314 CLKGEN_FIELD(0x2bc, 0xf, 20),
315 CLKGEN_FIELD(0x2c0, 0xf, 20) },
316 .npda = CLKGEN_FIELD(0x2a0, 0x1, 12),
317 .nsb = { CLKGEN_FIELD(0x2a0, 0x1, 8),
318 CLKGEN_FIELD(0x2a0, 0x1, 9),
319 CLKGEN_FIELD(0x2a0, 0x1, 10),
320 CLKGEN_FIELD(0x2a0, 0x1, 11) },
321 .nsdiv_present = true,
322 .nsdiv = { CLKGEN_FIELD(0x2b4, 0x1, 24),
323 CLKGEN_FIELD(0x2b8, 0x1, 24),
324 CLKGEN_FIELD(0x2bc, 0x1, 24),
325 CLKGEN_FIELD(0x2c0, 0x1, 24) },
326 .mdiv = { CLKGEN_FIELD(0x2b4, 0x1f, 15),
327 CLKGEN_FIELD(0x2b8, 0x1f, 15),
328 CLKGEN_FIELD(0x2bc, 0x1f, 15),
329 CLKGEN_FIELD(0x2c0, 0x1f, 15) },
330 .en = { CLKGEN_FIELD(0x2ac, 0x1, 0),
331 CLKGEN_FIELD(0x2ac, 0x1, 1),
332 CLKGEN_FIELD(0x2ac, 0x1, 2),
333 CLKGEN_FIELD(0x2ac, 0x1, 3) },
334 .lockstatus_present = true,
335 .lock_status = CLKGEN_FIELD(0x2A0, 0x1, 24),
336 .powerup_polarity = 1,
337 .standby_polarity = 1,
338 .pll_ops = &st_quadfs_pll_c32_ops,
339 .rtbl = fs660c32_rtbl,
340 .rtbl_cnt = ARRAY_SIZE(fs660c32_rtbl),
341 .get_rate = clk_fs660c32_dig_get_rate,};
342
301/** 343/**
302 * DOC: A Frequency Synthesizer that multiples its input clock by a fixed factor 344 * DOC: A Frequency Synthesizer that multiples its input clock by a fixed factor
303 * 345 *
@@ -989,6 +1031,10 @@ static struct of_device_id quadfs_of_match[] = {
989 .compatible = "st,stih407-quadfs660-D", 1031 .compatible = "st,stih407-quadfs660-D",
990 .data = &st_fs660c32_D_407 1032 .data = &st_fs660c32_D_407
991 }, 1033 },
1034 {
1035 .compatible = "st,stih407-quadfs660-D",
1036 .data = (void *)&st_fs660c32_D_407
1037 },
992 {} 1038 {}
993}; 1039};
994 1040