From 9ca07ebbac3c94974db75e25004203289d9013bc Mon Sep 17 00:00:00 2001 From: Bin Meng Date: Tue, 24 Nov 2015 13:31:17 -0700 Subject: 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 Acked-by: Simon Glass Signed-off-by: Simon Glass --- include/timer.h | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'include/timer.h') diff --git a/include/timer.h b/include/timer.h index ed5c6852cf..7fee17e3d2 100644 --- a/include/timer.h +++ b/include/timer.h @@ -7,6 +7,14 @@ #ifndef _TIMER_H_ #define _TIMER_H_ +/* + * timer_conv_64 - convert 32-bit counter value to 64-bit + * + * @count: 32-bit counter value + * @return: 64-bit counter value + */ +u64 timer_conv_64(u32 count); + /* * Get the current timer count * @@ -14,7 +22,7 @@ * @count: pointer that returns the current timer count * @return: 0 if OK, -ve on error */ -int timer_get_count(struct udevice *dev, unsigned long *count); +int timer_get_count(struct udevice *dev, u64 *count); /* * Get the timer input clock frequency @@ -35,10 +43,10 @@ struct timer_ops { * Get the current timer count * * @dev: The timer device - * @count: pointer that returns the current timer count + * @count: pointer that returns the current 64-bit timer count * @return: 0 if OK, -ve on error */ - int (*get_count)(struct udevice *dev, unsigned long *count); + int (*get_count)(struct udevice *dev, u64 *count); }; /* -- cgit v1.2.1