board: sama5d3_xplained: Fix SPL DTB read from NAND
[oweals/u-boot.git] / lib / time.c
index 3bf678a23278db79e523e5fe1cb9db933d19ecd3..75de48f90032cc1f213fedd5ca57c263cd2b1c9d 100644 (file)
@@ -7,6 +7,7 @@
 #include <common.h>
 #include <dm.h>
 #include <errno.h>
+#include <time.h>
 #include <timer.h>
 #include <watchdog.h>
 #include <div64.h>
@@ -56,7 +57,7 @@ ulong timer_get_boot_us(void)
 extern unsigned long __weak timer_read_counter(void);
 #endif
 
-#ifdef CONFIG_TIMER
+#if CONFIG_IS_ENABLED(TIMER)
 ulong notrace get_tbclk(void)
 {
        if (!gd->timer) {
@@ -134,12 +135,26 @@ 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);
 }
 
-static uint64_t usec_to_tick(unsigned long usec)
+uint64_t usec_to_tick(unsigned long usec)
 {
        uint64_t tick = usec;
        tick *= get_tbclk();