clk: meson: pll: update driver for the g12a
authorJerome Brunet <jbrunet@baylibre.com>
Fri, 1 Feb 2019 14:53:42 +0000 (15:53 +0100)
committerNeil Armstrong <narmstrong@baylibre.com>
Mon, 4 Feb 2019 08:51:37 +0000 (09:51 +0100)
commit8eed1db1adec6a26cef4acc7e0b2615049e8bd6d
tree2eab706f17672e7becb7eae271b5efd261c79fa3
parent889c2b7ec42b8d14d421541f0a3ae1238e34891e
clk: meson: pll: update driver for the g12a

The g12a use fractional parameter of 17 useful bits. At the moment, this
parameter in encoded using u16 value. Use this opportunity to switch all
the pll to parameter to unsigned int. This should save us some annoying
trouble shooting when and m and n field eventually grow as well.

This patch also introduce pll multiplier range. On the g12a, the hifi and
gp0 plls are able to lock as long as the following condition is met:
55 <= m/n <= 255.

The param table describing this would be huge which is a waste of memory.
Using ranges, we can save memory. Ranges also help find the best pll
parameter significantly faster since we don't have to try all the possible
settings.

Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
Reviewed-by: Neil Armstrong <narmstrong@baylibre.com>
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
[jbrunet: fixed fix pll settings calculation with arm32]
Link: https://lkml.kernel.org/r/20190201145345.6795-2-jbrunet@baylibre.com
drivers/clk/meson/clk-pll.c
drivers/clk/meson/clk-pll.h