
On 2021/04/09 11:58, Sean Anderson wrote:
On 4/8/21 10:54 PM, Damien Le Moal wrote:
On 2021/04/09 11:13, Sean Anderson wrote:
No other (real) clocks have the cpu clock as their parent; instead they are children of aclk. Move the clint clock under aclk to match them.
Signed-off-by: Sean Anderson seanga2@gmail.com
(no changes since v2)
Changes in v2:
New
drivers/clk/kendryte/clk.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/clk/kendryte/clk.c b/drivers/clk/kendryte/clk.c index ab86533bb4..5091f07eb0 100644 --- a/drivers/clk/kendryte/clk.c +++ b/drivers/clk/kendryte/clk.c @@ -643,7 +643,7 @@ static int k210_clk_probe(struct udevice *dev)
/* The MTIME register in CLINT runs at one 50th the CPU clock speed */ clk_dm(K210_CLK_CLINT,
clk_register_fixed_factor(NULL, "clint", "cpu", 0, 1, 50));
clk_register_fixed_factor(NULL, "clint", "aclk", 0, 1, 50));
return 0; }
Looks good, but representing this clock is in fact useless, at least in Linux, since the clint driver does not use it directly and derives its rate from riscv_timebase which is set from the timebase-frequency DT property.
Not sure how u-boot handles that though. Since your code allows changing the PLLs frequency, the timebase-frequency property may end up being buggy if it is not changed too.
U-Boot uses the clocks property since 47d7e3b5eb ("riscv: Move timer portions of SiFive CLINT to drivers/timer") :)
I remember that adding the clock property to Linux DT gave warning with make dtb_check. Hence I removed it. driver/clocksoure/timer-riscv.c also make the timebase-frequency DT property mandatory. Time for some more patching on Linux side I guess :)
--Sean