[PATCH] clk: rockchip: Fix PLL bandwidth
Heiko Stübner
heiko at sntech.de
Tue Jul 21 14:04:25 PDT 2015
Hi Doug,
Am Dienstag, 21. Juli 2015, 13:41:23 schrieb Douglas Anderson:
> In the TRM we see that BWADJ is "a 12-bit bus that selects the values
> 1-4096 for the bandwidth divider (NB)":
> NB = BWADJ[11:0] + 1
> The recommended setting of NB: NB = NF / 2.
>
> So:
> NB = NF / 2
> BWADJ[11:0] + 1 = NF / 2
> BWADJ[11:0] = NF / 2 - 1
>
> Right now, we have:
>
> { \
> .rate = _rate##U, \
> .nr = _nr, \
> .nf = _nf, \
> .no = _no, \
> .bwadj = (_nf >> 1), \
> }
>
> That means we set bwadj to NF / 2, not NF / 2 - 1
>
> All of this is a bit confusing because we specify "NR" (the 1-based
> value), "NF" (the 1-based value), "NO" (the 1-based value), but
> "BWADJ" (the 0-based value) instead of "NB" (the 1-based value).
>
> Let's change to working with "NB" and fix the off by one error. This
> may affect PLL jitter in a small way (hopefully for the better).
>
> Signed-off-by: Douglas Anderson <dianders at chromium.org>
we talked about this beforehand in the Chromeos bug and I verified this in the
manual for all currently supported Rockchip socs (rk3066 - rk3368), so
Reviewed-by: Heiko Stuebner <heiko at sntech.de>
Background: the original code stems from a time when I was still operating
without documentation and I took this from the upstream kernel from that time
and sadly forgot to double check once I had docs.
Thanks for fixing this
Heiko
More information about the linux-arm-kernel
mailing list