aboutsummaryrefslogtreecommitdiffstats
path: root/roms/opensbi/include/sbi/sbi_timer.h
diff options
context:
space:
mode:
Diffstat (limited to 'roms/opensbi/include/sbi/sbi_timer.h')
-rw-r--r--roms/opensbi/include/sbi/sbi_timer.h44
1 files changed, 44 insertions, 0 deletions
diff --git a/roms/opensbi/include/sbi/sbi_timer.h b/roms/opensbi/include/sbi/sbi_timer.h
new file mode 100644
index 000000000..87bbdbfa0
--- /dev/null
+++ b/roms/opensbi/include/sbi/sbi_timer.h
@@ -0,0 +1,44 @@
+/*
+ * SPDX-License-Identifier: BSD-2-Clause
+ *
+ * Copyright (c) 2019 Western Digital Corporation or its affiliates.
+ *
+ * Authors:
+ * Anup Patel <anup.patel@wdc.com>
+ */
+
+#ifndef __SBI_TIMER_H__
+#define __SBI_TIMER_H__
+
+#include <sbi/sbi_types.h>
+
+struct sbi_scratch;
+
+/** Get timer value for current HART */
+u64 sbi_timer_value(void);
+
+/** Get virtualized timer value for current HART */
+u64 sbi_timer_virt_value(void);
+
+/** Get timer delta value for current HART */
+u64 sbi_timer_get_delta(void);
+
+/** Set timer delta value for current HART */
+void sbi_timer_set_delta(ulong delta);
+
+/** Set upper 32-bits of timer delta value for current HART */
+void sbi_timer_set_delta_upper(ulong delta_upper);
+
+/** Start timer event for current HART */
+void sbi_timer_event_start(u64 next_event);
+
+/** Process timer event for current HART */
+void sbi_timer_process(void);
+
+/* Initialize timer */
+int sbi_timer_init(struct sbi_scratch *scratch, bool cold_boot);
+
+/* Exit timer */
+void sbi_timer_exit(struct sbi_scratch *scratch);
+
+#endif