blob: e1a5382ad47e9663d4ea23e0609e01103389df2c [file] [log] [blame]
Wu Zhangjinbd92aa02009-07-02 23:22:36 +08001/*
2 * Copyright (C) 2007 Lemote, Inc. & Institute of Computing Technology
3 * Author: Fuxin Zhang, zhangfx@lemote.com
4 *
Wu Zhangjinf7a904d2010-01-04 17:16:51 +08005 * Copyright (C) 2009 Lemote Inc.
6 * Author: Wu Zhangjin, wuzhangjin@gmail.com
Wu Zhangjinbd92aa02009-07-02 23:22:36 +08007 *
Ralf Baechle70342282013-01-22 12:59:30 +01008 * This program is free software; you can redistribute it and/or modify it
9 * under the terms of the GNU General Public License as published by the
10 * Free Software Foundation; either version 2 of the License, or (at your
Wu Zhangjinbd92aa02009-07-02 23:22:36 +080011 * option) any later version.
12 */
Wu Zhangjinbd92aa02009-07-02 23:22:36 +080013#include <asm/mc146818-time.h>
14#include <asm/time.h>
Huacai Chene292ccd2014-11-04 14:15:31 +080015#include <asm/hpet.h>
Wu Zhangjinbd92aa02009-07-02 23:22:36 +080016
Wu Zhangjin5e983ff2009-07-02 23:23:03 +080017#include <loongson.h>
Wu Zhangjin916daba2009-11-17 01:32:57 +080018#include <cs5536/cs5536_mfgpt.h>
Wu Zhangjinbd92aa02009-07-02 23:22:36 +080019
20void __init plat_time_init(void)
21{
22 /* setup mips r4k timer */
23 mips_hpt_frequency = cpu_clock_freq / 2;
Wu Zhangjin916daba2009-11-17 01:32:57 +080024
Huacai Chene292ccd2014-11-04 14:15:31 +080025#ifdef CONFIG_RS780_HPET
26 setup_hpet_timer();
27#else
Wu Zhangjin916daba2009-11-17 01:32:57 +080028 setup_mfgpt0_timer();
Huacai Chene292ccd2014-11-04 14:15:31 +080029#endif
Wu Zhangjinbd92aa02009-07-02 23:22:36 +080030}
31
Linus Torvaldsa03fdb72009-09-18 09:15:24 -070032void read_persistent_clock(struct timespec *ts)
Wu Zhangjinbd92aa02009-07-02 23:22:36 +080033{
Linus Torvaldsdcbb5592009-09-20 15:57:28 -070034 ts->tv_sec = mc146818_get_cmos_time();
Linus Torvaldsa03fdb72009-09-18 09:15:24 -070035 ts->tv_nsec = 0;
Wu Zhangjinbd92aa02009-07-02 23:22:36 +080036}