All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCH] lib: time: Add microsecond timer
@ 2019-10-15 20:43 Marek Vasut
  2019-10-16  1:30 ` Simon Glass
                   ` (2 more replies)
  0 siblings, 3 replies; 15+ messages in thread
From: Marek Vasut @ 2019-10-15 20:43 UTC (permalink / raw)
  To: u-boot

Add get_timer_us(), which is useful e.g. when we need higher
precision timestamps.

Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Cc: Tom Rini <trini@konsulko.com>
Cc: Simon Glass <sjg@chromium.org>
---
 include/time.h |  1 +
 lib/time.c     | 14 ++++++++++++++
 2 files changed, 15 insertions(+)

diff --git a/include/time.h b/include/time.h
index 1e9b369be7..a1149522ed 100644
--- a/include/time.h
+++ b/include/time.h
@@ -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()
diff --git a/lib/time.c b/lib/time.c
index f5751ab162..f30fc05804 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);
-- 
2.23.0

^ permalink raw reply related	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2019-11-01 13:30 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-10-15 20:43 [U-Boot] [PATCH] lib: time: Add microsecond timer Marek Vasut
2019-10-16  1:30 ` Simon Glass
2019-10-16  8:55   ` Marek Vasut
2019-10-16 16:40     ` Simon Glass
2019-10-16 16:44       ` Marek Vasut
2019-10-16 16:54         ` Simon Glass
2019-10-16 16:55           ` Marek Vasut
2019-10-16 16:58             ` Simon Glass
2019-10-16 17:02               ` Marek Vasut
2019-10-16 17:11 ` Eugeniu Rosca
2019-10-16 17:26   ` Marek Vasut
2019-10-16 17:43     ` Eugeniu Rosca
2019-10-16 17:51       ` Eugeniu Rosca
2019-10-16 18:03         ` Marek Vasut
2019-11-01 13:30 ` Tom Rini

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.