linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: gabriel.fernandez@st.com (Gabriel FERNANDEZ)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH RESEND 08/12] drivers: clk: st: STiH407: Support for clockgenC0
Date: Wed,  4 Jun 2014 16:31:56 +0200	[thread overview]
Message-ID: <1401892320-18211-9-git-send-email-gabriel.fernandez@linaro.org> (raw)
In-Reply-To: <1401892320-18211-1-git-send-email-gabriel.fernandez@linaro.org>

The patch added support for DT registration of ClockGenC0
It includes 2 c32 type PLL and a 660 Quadfs.

Signed-off-by: Gabriel Fernandez <gabriel.fernandez@linaro.org>
Signed-off-by: Olivier Bideau <olivier.bideau@st.com>
---
 drivers/clk/st/clkgen-fsyn.c | 47 ++++++++++++++++++++++++++++++++++++++++++++
 drivers/clk/st/clkgen-pll.c  | 32 ++++++++++++++++++++++++++++++
 2 files changed, 79 insertions(+)

diff --git a/drivers/clk/st/clkgen-fsyn.c b/drivers/clk/st/clkgen-fsyn.c
index 46b29c4..68c6786 100644
--- a/drivers/clk/st/clkgen-fsyn.c
+++ b/drivers/clk/st/clkgen-fsyn.c
@@ -255,6 +255,49 @@ static struct clkgen_quadfs_data st_fs660c32_F_416 = {
 	.get_rate	= clk_fs660c32_dig_get_rate,
 };
 
+static struct clkgen_quadfs_data st_fs660c32_C_407 = {
+	.nrst_present = true,
+	.nrst	= { CLKGEN_FIELD(0x2f0, 0x1, 0),
+		    CLKGEN_FIELD(0x2f0, 0x1, 1),
+		    CLKGEN_FIELD(0x2f0, 0x1, 2),
+		    CLKGEN_FIELD(0x2f0, 0x1, 3) },
+	.npda	= CLKGEN_FIELD(0x2f0, 0x1, 12),
+	.nsb	= { CLKGEN_FIELD(0x2f0, 0x1, 8),
+		    CLKGEN_FIELD(0x2f0, 0x1, 9),
+		    CLKGEN_FIELD(0x2f0, 0x1, 10),
+		    CLKGEN_FIELD(0x2f0, 0x1, 11) },
+	.nsdiv_present = true,
+	.nsdiv	= { CLKGEN_FIELD(0x304, 0x1, 24),
+		    CLKGEN_FIELD(0x308, 0x1, 24),
+		    CLKGEN_FIELD(0x30c, 0x1, 24),
+		    CLKGEN_FIELD(0x310, 0x1, 24) },
+	.mdiv	= { CLKGEN_FIELD(0x304, 0x1f, 15),
+		    CLKGEN_FIELD(0x308, 0x1f, 15),
+		    CLKGEN_FIELD(0x30c, 0x1f, 15),
+		    CLKGEN_FIELD(0x310, 0x1f, 15) },
+	.en	= { CLKGEN_FIELD(0x2fc, 0x1, 0),
+		    CLKGEN_FIELD(0x2fc, 0x1, 1),
+		    CLKGEN_FIELD(0x2fc, 0x1, 2),
+		    CLKGEN_FIELD(0x2fc, 0x1, 3) },
+	.ndiv	= CLKGEN_FIELD(0x2f4, 0x7, 16),
+	.pe	= { CLKGEN_FIELD(0x304, 0x7fff, 0),
+		    CLKGEN_FIELD(0x308, 0x7fff, 0),
+		    CLKGEN_FIELD(0x30c, 0x7fff, 0),
+		    CLKGEN_FIELD(0x310, 0x7fff, 0) },
+	.sdiv	= { CLKGEN_FIELD(0x304, 0xf, 20),
+		    CLKGEN_FIELD(0x308, 0xf, 20),
+		    CLKGEN_FIELD(0x30c, 0xf, 20),
+		    CLKGEN_FIELD(0x310, 0xf, 20) },
+	.lockstatus_present = true,
+	.lock_status = CLKGEN_FIELD(0x2A0, 0x1, 24),
+	.powerup_polarity = 1,
+	.standby_polarity = 1,
+	.pll_ops	= &st_quadfs_pll_c32_ops,
+	.rtbl		= fs660c32_rtbl,
+	.rtbl_cnt	= ARRAY_SIZE(fs660c32_rtbl),
+	.get_rate	= clk_fs660c32_dig_get_rate,
+};
+
 /**
  * DOC: A Frequency Synthesizer that multiples its input clock by a fixed factor
  *
@@ -938,6 +981,10 @@ static struct of_device_id quadfs_of_match[] = {
 		.compatible = "st,stih416-quadfs660-F",
 		.data = (void *)&st_fs660c32_F_416
 	},
+	{
+		.compatible = "st,stih407-quadfs660-C",
+		.data = (void *)&st_fs660c32_C_407
+	},
 	{}
 };
 
diff --git a/drivers/clk/st/clkgen-pll.c b/drivers/clk/st/clkgen-pll.c
index 6916cfa..8952566 100644
--- a/drivers/clk/st/clkgen-pll.c
+++ b/drivers/clk/st/clkgen-pll.c
@@ -192,6 +192,30 @@ static struct clkgen_pll_data st_pll3200c32_407_a0 = {
 	.ops		= &stm_pll3200c32_ops,
 };
 
+static struct clkgen_pll_data st_pll3200c32_407_c0_0 = {
+	/* 407 C0 PLL0 */
+	.pdn_status	= CLKGEN_FIELD(0x2a0,	0x1,			8),
+	.locked_status	= CLKGEN_FIELD(0x2a0,	0x1,			24),
+	.ndiv		= CLKGEN_FIELD(0x2a4,	C32_NDIV_MASK,		16),
+	.idf		= CLKGEN_FIELD(0x2a4,	C32_IDF_MASK,		0x0),
+	.num_odfs = 1,
+	.odf		= { CLKGEN_FIELD(0x2b4, C32_ODF_MASK,		0) },
+	.odf_gate	= { CLKGEN_FIELD(0x2b4, 0x1,			6) },
+	.ops		= &stm_pll3200c32_ops,
+};
+
+static struct clkgen_pll_data st_pll3200c32_407_c0_1 = {
+	/* 407 C0 PLL1 */
+	.pdn_status	= CLKGEN_FIELD(0x2c8,	0x1,			8),
+	.locked_status	= CLKGEN_FIELD(0x2c8,	0x1,			24),
+	.ndiv		= CLKGEN_FIELD(0x2cc,	C32_NDIV_MASK,		16),
+	.idf		= CLKGEN_FIELD(0x2cc,	C32_IDF_MASK,		0x0),
+	.num_odfs = 1,
+	.odf		= { CLKGEN_FIELD(0x2dc, C32_ODF_MASK,		0) },
+	.odf_gate	= { CLKGEN_FIELD(0x2dc, 0x1,			6) },
+	.ops		= &stm_pll3200c32_ops,
+};
+
 /**
  * DOC: Clock Generated by PLL, rate set and enabled by bootloader
  *
@@ -588,6 +612,14 @@ static struct of_device_id c32_pll_of_match[] = {
 		.compatible = "st,stih407-plls-c32-a0",
 		.data = &st_pll3200c32_407_a0,
 	},
+	{
+		.compatible = "st,stih407-plls-c32-c0_0",
+		.data = &st_pll3200c32_407_c0_0,
+	},
+	{
+		.compatible = "st,stih407-plls-c32-c0_1",
+		.data = &st_pll3200c32_407_c0_1,
+	},
 	{}
 };
 
-- 
1.9.1

  parent reply	other threads:[~2014-06-04 14:31 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-06-04 14:31 [PATCH RESEND 00/12] Add Flexgen Clock support Gabriel FERNANDEZ
2014-06-04 14:31 ` [PATCH RESEND 01/12] clk: st: Update ST clock binding documentation Gabriel FERNANDEZ
2014-06-05  8:48   ` [STLinux Kernel] " Peter Griffin
2014-06-04 14:31 ` [PATCH RESEND 02/12] clk: st: Adds Flexgen clock binding Gabriel FERNANDEZ
2014-06-05  7:51   ` [STLinux Kernel] " Peter Griffin
2014-06-04 14:31 ` [PATCH RESEND 03/12] drivers: clk: st: STiH407: Support for Flexgen Clocks Gabriel FERNANDEZ
2014-06-05  8:17   ` [STLinux Kernel] " Peter Griffin
2014-06-04 14:31 ` [PATCH RESEND 04/12] drivers: clk: st: STiH407: Support for A9 MUX Clocks Gabriel FERNANDEZ
2014-06-05  8:55   ` [STLinux Kernel] " Peter Griffin
2014-06-05  9:00     ` Peter Griffin
2014-06-04 14:31 ` [PATCH RESEND 05/12] drivers: clk: st: STiH407: Support for clockgenA0 Gabriel FERNANDEZ
2014-06-05 11:57   ` [STLinux Kernel] " Peter Griffin
2014-06-27 11:47     ` Gabriel Fernandez
2014-06-04 14:31 ` [PATCH RESEND 06/12] drivers: clk: st: Add polarity bit indication Gabriel FERNANDEZ
2014-06-05  7:45   ` [STLinux Kernel] " Peter Griffin
2014-06-05  7:51     ` Gabriel Fernandez
2014-06-04 14:31 ` [PATCH RESEND 07/12] drivers: clk: st: Add quadfs reset handling Gabriel FERNANDEZ
2014-06-05 11:16   ` [STLinux Kernel] " Peter Griffin
2014-06-04 14:31 ` Gabriel FERNANDEZ [this message]
2014-06-05 11:32   ` [STLinux Kernel] [PATCH RESEND 08/12] drivers: clk: st: STiH407: Support for clockgenC0 Peter Griffin
2014-06-04 14:31 ` [PATCH RESEND 09/12] drivers: clk: st: STiH407: Support for clockgenD0/D2/D3 Gabriel FERNANDEZ
2014-06-05  8:58   ` [STLinux Kernel] " Peter Griffin
2014-06-04 14:31 ` [PATCH RESEND 10/12] drivers: clk: st: STiH407: Support for clockgenA9 Gabriel FERNANDEZ
2014-06-05  9:01   ` [STLinux Kernel] " Peter Griffin
2014-06-04 14:31 ` [PATCH RESEND 11/12] drivers: clk: st: Update frequency tables for fs660c32 and fs432c65 Gabriel FERNANDEZ
2014-06-05 11:13   ` [STLinux Kernel] " Peter Griffin
2014-06-27 11:50     ` Gabriel Fernandez
2014-06-04 14:32 ` [PATCH RESEND 12/12] drivers: clk: st: Use round to closest divider flag Gabriel FERNANDEZ
2014-06-05 11:57   ` [STLinux Kernel] " Peter Griffin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1401892320-18211-9-git-send-email-gabriel.fernandez@linaro.org \
    --to=gabriel.fernandez@st.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).