blob: 223b95e210edd7146c6a8549bbf7f43b362d105b [file] [log] [blame]
David Feng85fd5f12013-12-14 11:47:35 +08001/*
2 * (C) Copyright 2013
3 * David Feng <fenghua@phytium.com.cn>
4 *
5 * SPDX-License-Identifier: GPL-2.0+
6 */
7
8#include <common.h>
9#include <command.h>
10#include <asm/system.h>
11
12/*
13 * Generic timer implementation of get_tbclk()
14 */
15unsigned long get_tbclk(void)
16{
17 unsigned long cntfrq;
18 asm volatile("mrs %0, cntfrq_el0" : "=r" (cntfrq));
19 return cntfrq;
20}
21
22/*
23 * Generic timer implementation of timer_read_counter()
24 */
25unsigned long timer_read_counter(void)
26{
27 unsigned long cntpct;
28 isb();
29 asm volatile("mrs %0, cntpct_el0" : "=r" (cntpct));
30 return cntpct;
31}