From 80e7e7c2aba5793a1e39592cd53de9e5aca96f0b Mon Sep 17 00:00:00 2001 From: Marek Vasut Date: Tue, 15 Oct 2019 22:43:41 +0200 Subject: lib: time: Add microsecond timer Add get_timer_us(), which is useful e.g. when we need higher precision timestamps. Signed-off-by: Marek Vasut Cc: Tom Rini Cc: Simon Glass [trini: Fixup arch/arm/mach-bcm283x/include/mach/timer.h] Signed-off-by: Tom Rini --- lib/time.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'lib/time.c') diff --git a/lib/time.c b/lib/time.c index f5751ab..f30fc05 100644 --- a/lib/time.c +++ b/lib/time.c @@ -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); -- cgit v1.1