mirror of
https://github.com/linux-sunxi/u-boot-sunxi.git
synced 2024-02-12 11:16:03 +08:00
dm: timer: Support 64-bit counter
There are timers with a 64-bit counter value but current timer uclass driver assumes a 32-bit one. Modify timer_get_count() to ask timer driver to always return a 64-bit counter value, and provide an inline helper function timer_conv_64() to handle the 32-bit/64-bit conversion automatically. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Acked-by: Simon Glass <sjg@chromium.org> Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
@ -69,9 +69,9 @@ ulong notrace get_tbclk(void)
|
||||
return timer_get_rate(gd->timer);
|
||||
}
|
||||
|
||||
unsigned long notrace timer_read_counter(void)
|
||||
uint64_t notrace get_ticks(void)
|
||||
{
|
||||
unsigned long count;
|
||||
u64 count;
|
||||
int ret;
|
||||
|
||||
ret = dm_timer_init();
|
||||
@ -84,7 +84,8 @@ unsigned long notrace timer_read_counter(void)
|
||||
|
||||
return count;
|
||||
}
|
||||
#endif /* CONFIG_TIMER */
|
||||
|
||||
#else /* !CONFIG_TIMER */
|
||||
|
||||
uint64_t __weak notrace get_ticks(void)
|
||||
{
|
||||
@ -97,6 +98,8 @@ uint64_t __weak notrace get_ticks(void)
|
||||
return ((uint64_t)gd->timebase_h << 32) | gd->timebase_l;
|
||||
}
|
||||
|
||||
#endif /* CONFIG_TIMER */
|
||||
|
||||
/* Returns time in milliseconds */
|
||||
static uint64_t notrace tick_to_time(uint64_t tick)
|
||||
{
|
||||
|
Reference in New Issue
Block a user