diff options
author | Bin Meng <bmeng.cn@gmail.com> | 2015-11-24 13:31:17 -0700 |
---|---|---|
committer | Simon Glass <sjg@chromium.org> | 2015-12-01 06:23:51 -0700 |
commit | 9ca07ebbac3c94974db75e25004203289d9013bc (patch) | |
tree | 71505c28b02624db37f3edacd631af87ea08feef /include/timer.h | |
parent | f838f124522ea4fb5202c1b584b4706aa48ee144 (diff) | |
download | u-boot-imx-9ca07ebbac3c94974db75e25004203289d9013bc.zip u-boot-imx-9ca07ebbac3c94974db75e25004203289d9013bc.tar.gz u-boot-imx-9ca07ebbac3c94974db75e25004203289d9013bc.tar.bz2 |
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>
Diffstat (limited to 'include/timer.h')
-rw-r--r-- | include/timer.h | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/include/timer.h b/include/timer.h index ed5c685..7fee17e 100644 --- a/include/timer.h +++ b/include/timer.h @@ -8,13 +8,21 @@ #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 * * @dev: The timer device * @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); }; /* |