提交 80e7e7c2 编写于 作者: M Marek Vasut 提交者: Tom Rini

lib: time: Add microsecond timer

Add get_timer_us(), which is useful e.g. when we need higher
precision timestamps.
Signed-off-by: NMarek Vasut <marek.vasut+renesas@gmail.com>
Cc: Tom Rini <trini@konsulko.com>
Cc: Simon Glass <sjg@chromium.org>
[trini: Fixup arch/arm/mach-bcm283x/include/mach/timer.h]
Signed-off-by: NTom Rini <trini@konsulko.com>
上级 52e1d93c
......@@ -25,9 +25,6 @@ struct bcm2835_timer_regs {
u32 c2;
u32 c3;
};
extern ulong get_timer_us(ulong base);
#endif
#endif
......@@ -13,6 +13,7 @@ unsigned long get_timer(unsigned long base);
* Granularity may be larger than 1us if hardware does not support this.
*/
unsigned long timer_get_us(void);
uint64_t get_timer_us(uint64_t base);
/*
* timer_test_add_offset()
......
......@@ -134,6 +134,20 @@ ulong __weak get_timer(ulong base)
return tick_to_time(get_ticks()) - base;
}
static uint64_t notrace tick_to_time_us(uint64_t tick)
{
ulong div = get_tbclk() / 1000;
tick *= CONFIG_SYS_HZ;
do_div(tick, div);
return tick;
}
uint64_t __weak get_timer_us(uint64_t base)
{
return tick_to_time_us(get_ticks()) - base;
}
unsigned long __weak notrace timer_get_us(void)
{
return tick_to_time(get_ticks() * 1000);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册