aboutsummaryrefslogtreecommitdiff
path: root/include/timer.h
diff options
context:
space:
mode:
authorSean Anderson <seanga2@gmail.com>2020-09-28 10:52:22 -0400
committerAndes <uboot@andestech.com>2020-09-30 08:54:45 +0800
commit3576121687965ffe580fc44f5dd1d8e9ab434c5b (patch)
tree7c9b33bba348375cd647da2f7f03891b34b9622e /include/timer.h
parentc33efafaf949ef11fc525cd5be018ea48c40898c (diff)
downloadu-boot-3576121687965ffe580fc44f5dd1d8e9ab434c5b.zip
u-boot-3576121687965ffe580fc44f5dd1d8e9ab434c5b.tar.gz
u-boot-3576121687965ffe580fc44f5dd1d8e9ab434c5b.tar.bz2
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.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/include/timer.h b/include/timer.h
index a49b500..8b9fa51 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
*