[PATCH 1/2] lib/sbi/sbi_timer: Add sbi_timer_frequency() function
Sunil V L
sunilvl at oss.qualcomm.com
Thu Jul 2 22:05:29 PDT 2026
From: Sunil V L <sunilvl at oss.qualcomm.com>
Drivers and other library code sometimes need the timer frequency
outside of lib/sbi/sbi_timer.c, but there is currently no accessor
for it. Add sbi_timer_frequency() to expose the frequency of the
registered timer device.
Signed-off-by: Sunil V L <sunilvl at oss.qualcomm.com>
---
include/sbi/sbi_timer.h | 3 +++
lib/sbi/sbi_timer.c | 12 ++++++++++++
2 files changed, 15 insertions(+)
diff --git a/include/sbi/sbi_timer.h b/include/sbi/sbi_timer.h
index 2a0409274dc4..17d6c1dcedba 100644
--- a/include/sbi/sbi_timer.h
+++ b/include/sbi/sbi_timer.h
@@ -140,6 +140,9 @@ bool sbi_timer_waitms_until(bool (*predicate)(void *), void *arg,
/** Get timer value for current HART */
u64 sbi_timer_value(void);
+/** Get timer frequency for current HART */
+unsigned long sbi_timer_frequency(void);
+
/** Compute timer value after specified milliseconds */
static inline u64 sbi_timer_value_after_msecs(ulong msecs)
{
diff --git a/lib/sbi/sbi_timer.c b/lib/sbi/sbi_timer.c
index 4d737d22a18b..8abb5e7bea20 100644
--- a/lib/sbi/sbi_timer.c
+++ b/lib/sbi/sbi_timer.c
@@ -104,6 +104,18 @@ bool sbi_timer_waitms_until(bool (*predicate)(void *), void *arg,
return true;
}
+unsigned long sbi_timer_frequency(void)
+{
+ const struct sbi_timer_device *timer_dev = sbi_timer_get_device();
+
+ if (!timer_dev) {
+ sbi_printf("%s: called without timer device\n", __func__);
+ return 0;
+ }
+
+ return timer_dev->timer_freq;
+}
+
u64 sbi_timer_value(void)
{
if (get_time_val)
--
2.43.0
More information about the opensbi
mailing list