clk: thead: th1520-ap: Correctly handle flags for dividers
authorYao Zi <ziyao@disroot.org>
Thu, 10 Jul 2025 03:41:57 +0000 (03:41 +0000)
committerLeo Yu-Chi Liang <ycliang@andestech.com>
Thu, 17 Jul 2025 06:37:40 +0000 (14:37 +0800)
commit00a3b0eb8e4c6ee96e27759a16cb1f159021f68b
tree31a2793de764bf9b221379bbc3250d11dc63bcf8
parentcde3d1ff309f491a49844d6e0eda25b24cc107f9
clk: thead: th1520-ap: Correctly handle flags for dividers

Unlike the gate clocks which make no use of flags, most dividers in
TH1520 SoC are one-based, thus are applied with CLK_DIVIDER_ONE_BASED
flag. We couldn't simply ignore the flag, which causes wrong results
when calculating the clock rates.

Add a member to ccu_div_internal for defining the flags, and pass it to
divider_recalc_rate(). With this fix, frequency of all the clocks match
the Linux kernel's calculation.

Fixes: e6bfa6fc94f ("clk: thead: Port clock controller driver of TH1520 SoC")
Signed-off-by: Yao Zi <ziyao@disroot.org>
Acked-by: Leo Yu-Chi Liang <ycliang@andestech.com>
drivers/clk/thead/clk-th1520-ap.c