diff options
Diffstat (limited to 'target/linux/adm8668/files/arch/mips/adm8668/time.c')
-rw-r--r-- | target/linux/adm8668/files/arch/mips/adm8668/time.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/target/linux/adm8668/files/arch/mips/adm8668/time.c b/target/linux/adm8668/files/arch/mips/adm8668/time.c index 047bccded..87bdd6696 100644 --- a/target/linux/adm8668/files/arch/mips/adm8668/time.c +++ b/target/linux/adm8668/files/arch/mips/adm8668/time.c @@ -1,17 +1,20 @@ #include <linux/init.h> #include <linux/kernel.h> +#include <linux/clk.h> #include <asm/time.h> #include <adm8668.h> void __init plat_time_init(void) { - int adj = (ADM8668_CONFIG_REG(ADM8668_CR3) >> 11) & 0xf; + struct clk *sys_clk; - /* adjustable clock selection - CR3 bit 14~11, 0000 -> 175MHz, 0001 -> 180MHz, etc... */ + adm8668_init_clocks(); - mips_hpt_frequency = (SYS_CLOCK + adj * 5000000) / 2; - printk("ADM8668 CPU clock: %d MHz\n", 2*mips_hpt_frequency / 1000000); + sys_clk = clk_get(NULL, "sys"); + if (IS_ERR(sys_clk)) + panic("unable to get system clock\n"); + + mips_hpt_frequency = clk_get_rate(sys_clk) / 2; } |