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 Yangvoid __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 Yangvoid 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