Wu Zhangjin | bd92aa0 | 2009-07-02 23:22:36 +0800 | [diff] [blame] | 1 | /* |
| 2 | * Copyright (C) 2007 Lemote, Inc. & Institute of Computing Technology |
| 3 | * Author: Fuxin Zhang, zhangfx@lemote.com |
| 4 | * |
Wu Zhangjin | f7a904d | 2010-01-04 17:16:51 +0800 | [diff] [blame] | 5 | * Copyright (C) 2009 Lemote Inc. |
| 6 | * Author: Wu Zhangjin, wuzhangjin@gmail.com |
Wu Zhangjin | bd92aa0 | 2009-07-02 23:22:36 +0800 | [diff] [blame] | 7 | * |
Ralf Baechle | 7034228 | 2013-01-22 12:59:30 +0100 | [diff] [blame] | 8 | * 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 Zhangjin | bd92aa0 | 2009-07-02 23:22:36 +0800 | [diff] [blame] | 11 | * option) any later version. |
| 12 | */ |
Wu Zhangjin | bd92aa0 | 2009-07-02 23:22:36 +0800 | [diff] [blame] | 13 | #include <asm/mc146818-time.h> |
| 14 | #include <asm/time.h> |
Huacai Chen | e292ccd | 2014-11-04 14:15:31 +0800 | [diff] [blame] | 15 | #include <asm/hpet.h> |
Wu Zhangjin | bd92aa0 | 2009-07-02 23:22:36 +0800 | [diff] [blame] | 16 | |
Wu Zhangjin | 5e983ff | 2009-07-02 23:23:03 +0800 | [diff] [blame] | 17 | #include <loongson.h> |
Wu Zhangjin | 916daba | 2009-11-17 01:32:57 +0800 | [diff] [blame] | 18 | #include <cs5536/cs5536_mfgpt.h> |
Wu Zhangjin | bd92aa0 | 2009-07-02 23:22:36 +0800 | [diff] [blame] | 19 | |
| 20 | void __init plat_time_init(void) |
| 21 | { |
| 22 | /* setup mips r4k timer */ |
| 23 | mips_hpt_frequency = cpu_clock_freq / 2; |
Wu Zhangjin | 916daba | 2009-11-17 01:32:57 +0800 | [diff] [blame] | 24 | |
Huacai Chen | e292ccd | 2014-11-04 14:15:31 +0800 | [diff] [blame] | 25 | #ifdef CONFIG_RS780_HPET |
| 26 | setup_hpet_timer(); |
| 27 | #else |
Wu Zhangjin | 916daba | 2009-11-17 01:32:57 +0800 | [diff] [blame] | 28 | setup_mfgpt0_timer(); |
Huacai Chen | e292ccd | 2014-11-04 14:15:31 +0800 | [diff] [blame] | 29 | #endif |
Wu Zhangjin | bd92aa0 | 2009-07-02 23:22:36 +0800 | [diff] [blame] | 30 | } |
| 31 | |
Linus Torvalds | a03fdb7 | 2009-09-18 09:15:24 -0700 | [diff] [blame] | 32 | void read_persistent_clock(struct timespec *ts) |
Wu Zhangjin | bd92aa0 | 2009-07-02 23:22:36 +0800 | [diff] [blame] | 33 | { |
Linus Torvalds | dcbb559 | 2009-09-20 15:57:28 -0700 | [diff] [blame] | 34 | ts->tv_sec = mc146818_get_cmos_time(); |
Linus Torvalds | a03fdb7 | 2009-09-18 09:15:24 -0700 | [diff] [blame] | 35 | ts->tv_nsec = 0; |
Wu Zhangjin | bd92aa0 | 2009-07-02 23:22:36 +0800 | [diff] [blame] | 36 | } |