171e2f4ddSJiaxun Yang // SPDX-License-Identifier: GPL-2.0-or-later
271e2f4ddSJiaxun Yang /*
371e2f4ddSJiaxun Yang  * Copyright (C) 2007 Lemote, Inc. & Institute of Computing Technology
471e2f4ddSJiaxun Yang  * Author: Fuxin Zhang, zhangfx@lemote.com
571e2f4ddSJiaxun Yang  *
671e2f4ddSJiaxun Yang  * Copyright (C) 2009 Lemote Inc.
771e2f4ddSJiaxun Yang  * Author: Wu Zhangjin, wuzhangjin@gmail.com
871e2f4ddSJiaxun Yang  */
971e2f4ddSJiaxun Yang #include <asm/mc146818-time.h>
1071e2f4ddSJiaxun Yang #include <asm/time.h>
1171e2f4ddSJiaxun Yang #include <asm/hpet.h>
1271e2f4ddSJiaxun Yang 
1371e2f4ddSJiaxun Yang #include <loongson.h>
1471e2f4ddSJiaxun Yang #include <cs5536/cs5536_mfgpt.h>
1571e2f4ddSJiaxun Yang 
plat_time_init(void)1671e2f4ddSJiaxun Yang void __init plat_time_init(void)
1771e2f4ddSJiaxun Yang {
1871e2f4ddSJiaxun Yang 	/* setup mips r4k timer */
1971e2f4ddSJiaxun Yang 	mips_hpt_frequency = cpu_clock_freq / 2;
2071e2f4ddSJiaxun Yang 
2171e2f4ddSJiaxun Yang 	setup_mfgpt0_timer();
2271e2f4ddSJiaxun Yang }
2371e2f4ddSJiaxun Yang 
read_persistent_clock64(struct timespec64 * ts)2471e2f4ddSJiaxun Yang void read_persistent_clock64(struct timespec64 *ts)
2571e2f4ddSJiaxun Yang {
2671e2f4ddSJiaxun Yang 	ts->tv_sec = mc146818_get_cmos_time();
2771e2f4ddSJiaxun Yang 	ts->tv_nsec = 0;
2871e2f4ddSJiaxun Yang }
29