X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=lib%2Ftime.c;h=f30fc05804be9914d55973bd6163f1c46b0e30f8;hb=beeb57f0a66658aacad3f12f1a31e65f5d22e46d;hp=3bf678a23278db79e523e5fe1cb9db933d19ecd3;hpb=83d290c56fab2d38cd1ab4c4cc7099559c1d5046;p=oweals%2Fu-boot.git diff --git a/lib/time.c b/lib/time.c index 3bf678a232..f30fc05804 100644 --- a/lib/time.c +++ b/lib/time.c @@ -56,7 +56,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 +134,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();