diff options
author | Sean Anderson <seanga2@gmail.com> | 2020-09-28 10:52:22 -0400 |
---|---|---|
committer | Andes <uboot@andestech.com> | 2020-09-30 08:54:45 +0800 |
commit | 3576121687965ffe580fc44f5dd1d8e9ab434c5b (patch) | |
tree | 7c9b33bba348375cd647da2f7f03891b34b9622e /include/timer.h | |
parent | c33efafaf949ef11fc525cd5be018ea48c40898c (diff) | |
download | u-boot-3576121687965ffe580fc44f5dd1d8e9ab434c5b.tar.gz u-boot-3576121687965ffe580fc44f5dd1d8e9ab434c5b.tar.bz2 u-boot-3576121687965ffe580fc44f5dd1d8e9ab434c5b.zip |
timer: Add helper for drivers using timebase fallback
This function is designed to be used when a timer used to be initialized by
the cpu (e.g. RISC-V timers), but now is initialized by dm_timer_init. In
such a case, the timer may prefer to use the clocks and clock-frequency
properties, but should be able to fall back on using the cpu's
timebase-frequency.
Signed-off-by: Sean Anderson <seanga2@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bin.meng@windriver.com>
Reviewed-by: Rick Chen <rick@andestech.com>
Diffstat (limited to 'include/timer.h')
-rw-r--r-- | include/timer.h | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/include/timer.h b/include/timer.h index a49b500ce3..8b9fa51c53 100644 --- a/include/timer.h +++ b/include/timer.h @@ -15,6 +15,21 @@ */ int dm_timer_init(void); +/** + * timer_timebase_fallback() - Helper for timers using timebase fallback + * @dev: A timer partially-probed timer device + * + * This is a helper function designed for timers which need to fall back on the + * cpu's timebase. This function is designed to be called during the driver's + * probe(). If there is a clocks or clock-frequency property in the timer's + * binding, then it will be used. Otherwise, the timebase of the current cpu + * will be used. This is initialized by the cpu driver, and usually gotten from + * ``/cpus/timebase-frequency`` or ``/cpus/cpu@X/timebase-frequency``. + * + * Return: 0 if OK, or negative error code on failure + */ +int timer_timebase_fallback(struct udevice *dev); + /* * timer_conv_64 - convert 32-bit counter value to 64-bit * |