[PATCH V3 3/8] SPEAr: clk: Add VCO-PLL Synthesizer clock
Viresh Kumar
viresh.kumar at st.com
Thu May 3 01:47:25 EDT 2012
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 at st.com>
Another fixup:
---
drivers/clk/spear/clk-vco-pll.c | 3 +--
1 files changed, 1 insertions(+), 2 deletions(-)
diff --git a/drivers/clk/spear/clk-vco-pll.c b/drivers/clk/spear/clk-vco-pll.c
index e661273..318b04e 100644
--- a/drivers/clk/spear/clk-vco-pll.c
+++ b/drivers/clk/spear/clk-vco-pll.c
@@ -183,10 +183,9 @@ static long clk_vco_round_rate(struct clk_hw *hw, unsigned long drate,
unsigned long *prate)
{
struct clk_vco *vco = to_clk_vco(hw);
- unsigned long parent_rate = __clk_get_rate(__clk_get_parent(hw->clk));
int unused;
- return clk_round_rate_index(hw, drate, parent_rate, vco_calc_rate,
+ return clk_round_rate_index(hw, drate, *prate, vco_calc_rate,
vco->rtbl_cnt, &unused);
}
--
viresh
More information about the linux-arm-kernel
mailing list