public inbox for linux-arm-kernel@lists.infradead.org 
 help / color / mirror / Atom feed
From: viresh.kumar@st•com (Viresh Kumar)
To: linux-arm-kernel@lists•infradead.org
Subject: [PATCH V3 3/8] SPEAr: clk: Add VCO-PLL Synthesizer clock
Date: Thu, 3 May 2012 15:19:47 +0530	[thread overview]
Message-ID: <4FA254BB.5050308@st.com> (raw)
In-Reply-To: <bc76d68ff5c11be5750c6e65ce5c4b94bb9f7382.1335249846.git.viresh.kumar@st.com>

On 4/24/2012 12:20 PM, Viresh KUMAR wrote:
> All SPEAr SoC's contain PLLs. Their Fout is derived based on following equations
> 
> - In normal mode
>   vco = (2 * M[15:8] * Fin)/N
> 
> - In Dithered mode
>   vco = (2 * M[15:0] * Fin)/(256 * N)
> 
> pll_rate = vco/2^p
> 
> vco and pll are very closely bound to each other,
> "vco needs to program: mode, m & n" and "pll needs to program p",
> both share common enable/disable logic and registers.
> 
> This patch adds in support for this type of clock.
> 
> Signed-off-by: Viresh Kumar <viresh.kumar@st•com>
> ---

Sorry for another fixup. Required due to Saravana's patch:

---
 drivers/clk/spear/clk-vco-pll.c |   22 ++++++++++++++++++----
 1 files changed, 18 insertions(+), 4 deletions(-)

diff --git a/drivers/clk/spear/clk-vco-pll.c b/drivers/clk/spear/clk-vco-pll.c
index 318b04e..dcd4bdf 100644
--- a/drivers/clk/spear/clk-vco-pll.c
+++ b/drivers/clk/spear/clk-vco-pll.c
@@ -282,6 +282,7 @@ struct clk *clk_register_vco_pll(const char *vco_name, const char *pll_name,
        struct clk_vco *vco;
        struct clk_pll *pll;
        struct clk *vco_clk, *tpll_clk, *tvco_gate_clk;
+       struct clk_init_data vco_init, pll_init;
        const char **vco_parent_name;
 
        if (!vco_name || !pll_name || !parent_name || !mode_reg || !cfg_reg ||
@@ -308,7 +309,10 @@ struct clk *clk_register_vco_pll(const char *vco_name, const char *pll_name,
        vco->rtbl = rtbl;
        vco->rtbl_cnt = rtbl_cnt;
        vco->lock = lock;
+       vco->hw.init = &vco_init;
+
        pll->vco = vco;
+       pll->hw.init = &pll_init;
 
        if (vco_gate_name) {
                tvco_gate_clk = clk_register_gate(NULL, vco_gate_name,
@@ -323,13 +327,23 @@ struct clk *clk_register_vco_pll(const char *vco_name, const char *pll_name,
                vco_parent_name = &parent_name;
        }
 
-       vco_clk = clk_register(NULL, vco_name, &clk_vco_ops, &vco->hw,
-                       vco_parent_name, 1, flags);
+       vco_init.name = vco_name;
+       vco_init.ops = &clk_vco_ops;
+       vco_init.flags = flags;
+       vco_init.parent_names = vco_parent_name;
+       vco_init.num_parents = 1;
+
+       pll_init.name = pll_name;
+       pll_init.ops = &clk_pll_ops;
+       pll_init.flags = CLK_SET_RATE_PARENT;
+       pll_init.parent_names = &vco_name;
+       pll_init.num_parents = 1;

-- 
viresh

  parent reply	other threads:[~2012-05-03  9:49 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-04-24  6:50 [PATCH V3 0/8] SPEAr: Move to common clock framework Viresh Kumar
2012-04-24  6:50 ` [PATCH V3 1/8] CLKDEV: Add helper routines to allocate and add clkdevs for given struct clk * Viresh Kumar
2012-04-26  7:47   ` Russell King - ARM Linux
2012-04-26 10:28     ` Viresh Kumar
2012-04-28  9:52       ` Russell King - ARM Linux
2012-04-28 11:01         ` Sascha Hauer
2012-04-28 11:06           ` Russell King - ARM Linux
2012-05-01  8:45             ` Viresh Kumar
2012-05-01 12:31             ` Shawn Guo
2012-05-02  9:54               ` Russell King - ARM Linux
2012-05-02 13:59                 ` Shawn Guo
2012-05-02 14:13                   ` Russell King - ARM Linux
2012-04-30  8:08         ` Viresh Kumar
2012-04-24  6:50 ` [PATCH V3 2/8] clk: add a fixed factor clock Viresh Kumar
2012-04-27  4:43   ` Viresh Kumar
2012-05-02  9:48   ` Sascha Hauer
2012-05-02 11:56     ` Viresh Kumar
2012-05-02 22:41       ` Mike Turquette
2012-05-02 22:44         ` Mike Turquette
2012-05-02 23:31           ` Russell King - ARM Linux
2012-05-03  5:32         ` Viresh Kumar
2012-05-03  6:37           ` Sascha Hauer
2012-05-03  9:48             ` Viresh Kumar
2012-04-24  6:50 ` [PATCH V3 3/8] SPEAr: clk: Add VCO-PLL Synthesizer clock Viresh Kumar
2012-04-27  4:44   ` Viresh Kumar
2012-05-03  5:47   ` Viresh Kumar
2012-05-03  9:49   ` Viresh Kumar [this message]
2012-04-24  6:50 ` [PATCH V3 4/8] SPEAr: clk: Add Auxiliary " Viresh Kumar
2012-04-27  4:45   ` Viresh Kumar
2012-05-03  5:47   ` Viresh Kumar
2012-05-03  9:50   ` Viresh Kumar
2012-04-24  6:50 ` [PATCH V3 5/8] SPEAr: clk: Add Fractional " Viresh Kumar
2012-04-27  4:45   ` Viresh Kumar
2012-05-03  5:46   ` Viresh Kumar
2012-05-03  9:51   ` Viresh Kumar
2012-04-24  6:50 ` [PATCH V3 6/8] SPEAr: clk: Add General Purpose Timer " Viresh Kumar
2012-04-27  4:46   ` Viresh Kumar
2012-05-03  5:43   ` Viresh Kumar
2012-05-03  9:51   ` Viresh Kumar
2012-04-24  6:50 ` [PATCH V3 7/8] SPEAr: Call clk_prepare() before calling clk_enable Viresh Kumar
2012-04-27  4:42 ` [PATCH V3 0/8] SPEAr: Move to common clock framework Viresh Kumar
2012-04-27 17:50   ` Turquette, Mike

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=4FA254BB.5050308@st.com \
    --to=viresh.kumar@st$(echo .)com \
    --cc=linux-arm-kernel@lists$(echo .)infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html
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