MIPS: Loongson64: Add support for the Loongson-2K1000 to get cpu_clock_freq
authorQing Zhang <zhangqing@loongson.cn>
Mon, 15 Mar 2021 07:50:00 +0000 (15:50 +0800)
committerThomas Bogendoerfer <tsbogend@alpha.franken.de>
Thu, 25 Mar 2021 09:44:01 +0000 (10:44 +0100)
Get the fixed-clock from the CPU0 node of the device tree.

Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
Signed-off-by: Qing Zhang <zhangqing@loongson.cn>
Tested-by: Ming Wang <wangming01@loongson.cn>
Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
arch/mips/loongson64/time.c

index 91e842b..f6d2c1e 100644 (file)
 #include <asm/hpet.h>
 
 #include <loongson.h>
+#include <linux/clk.h>
+#include <linux/of_clk.h>
 
 void __init plat_time_init(void)
 {
+       struct clk *clk;
+       struct device_node *np;
+
+       if (loongson_sysconf.fw_interface == LOONGSON_DTB) {
+               of_clk_init(NULL);
+
+               np = of_get_cpu_node(0, NULL);
+               if (!np) {
+                       pr_err("Failed to get CPU node\n");
+                       return;
+               }
+
+               clk = of_clk_get(np, 0);
+               if (IS_ERR(clk)) {
+                       pr_err("Failed to get CPU clock: %ld\n", PTR_ERR(clk));
+                       return;
+               }
+
+               cpu_clock_freq = clk_get_rate(clk);
+               clk_put(clk);
+       }
+
        /* setup mips r4k timer */
        mips_hpt_frequency = cpu_clock_freq / 2;