[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