[PATCH RFC v1 0/3] clk: meson: rounding for fast clocks on 32-bit SoCs
Martin Blumenstingl
martin.blumenstingl at googlemail.com
Mon May 17 13:37:21 PDT 2021
On the 32-bit Amlogic Meson8/8b/8m2 SoCs we run into a problem with the
fast HDMI PLL and it's OD (post-dividers). This clock tree can run at
up to approx. 3GHz.
This however causes a problem, because these rates require BIT(31) to
be usable. Unfortunately this is not the case with clk_ops.round_rate
on 32-bit systems. BIT(31) is reserved for the sign (+ or -).
clk_ops.determine_rate does not suffer from this limitation. It uses
an int to signal any errors and can then take all availble 32 bits for
the clock rate.
I am sending this as RFC to start a discussion whether:
- this is a good way to solve it?
- what are the alternatives?
- getting some feedback on areas that need to be improved
As always: any feedback is welcome!
Thank you!
Martin
Martin Blumenstingl (3):
clk: divider: Add re-usable determine_rate implementations
clk: meson: regmap: switch to determine_rate for the dividers
clk: meson: pll: switch to determine_rate for the PLL ops
drivers/clk/clk-divider.c | 39 +++++++++++++++++++++++++++++++++-
drivers/clk/meson/clk-pll.c | 26 +++++++++++++----------
drivers/clk/meson/clk-regmap.c | 19 ++++++++---------
include/linux/clk-provider.h | 6 ++++++
4 files changed, 68 insertions(+), 22 deletions(-)
--
2.31.1
More information about the linux-amlogic
mailing list