From: Guo Zeng Date: Tue, 4 Aug 2015 14:45:32 +0000 (+0000) Subject: clk: atlas7: fix pll missed divide NR in fraction mode X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=b32a7cc63bee7bffbd61f88b157b78a9b2101de0;p=openwrt%2Fstaging%2Fblogic.git clk: atlas7: fix pll missed divide NR in fraction mode PLL VCO frequency is given by Fvco = Fref * 2 * NF / NR in integer-N mode, or by Fvco = Fref * SSN / NR in Spread Spectrum (fractional-N) mode. Thus fix the missing part of NR Signed-off-by: Guo Zeng Signed-off-by: Barry Song Signed-off-by: Stephen Boyd --- diff --git a/drivers/clk/sirf/clk-atlas7.c b/drivers/clk/sirf/clk-atlas7.c index 2ce2653e5630..a98e21fe773a 100644 --- a/drivers/clk/sirf/clk-atlas7.c +++ b/drivers/clk/sirf/clk-atlas7.c @@ -358,6 +358,7 @@ static unsigned long pll_clk_recalc_rate(struct clk_hw *hw, if (regctrl0 & SIRFSOC_ABPLL_CTRL0_SSEN) { rate = fin; rate *= 1 << 24; + do_div(rate, nr); do_div(rate, (256 * ((ssdiv >> ssdepth) << ssdepth) + (ssmod << ssdepth))); } else {