clk: axi-clkgen: Add support for fractional dividers
authorLars-Peter Clausen <lars@metafoo.de>
Thu, 1 Oct 2020 08:59:47 +0000 (11:59 +0300)
committerStephen Boyd <sboyd@kernel.org>
Wed, 14 Oct 2020 02:44:40 +0000 (19:44 -0700)
commit86378cf646d323d0ce0ac734d444f4d80fd9e43f
tree3d5991d03a9e8509a86dfdbd470c16ee405779d2
parent9123e3a74ec7b934a4a099e98af6a61c2f80bbf5
clk: axi-clkgen: Add support for fractional dividers

The axi-clkgen has (optional) fractional dividers on the output clock
divider and feedback clock divider path. Utilizing the fractional dividers
allows for a better resolution of the output clock, being able to
synthesize more frequencies.

Rework the driver support to support the fractional register fields, both
for setting a new rate as well as reading back the current rate from the
hardware.

For setting the rate if no perfect divider settings were found in
non-fractional mode try again in fractional mode and see if better settings
can be found. This appears to be the recommended mode of operation.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Alexandru Ardelean <alexandru.ardelean@analog.com>
Link: https://lore.kernel.org/r/20201001085948.21412-1-alexandru.ardelean@analog.com
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
drivers/clk/clk-axi-clkgen.c