1 /* 2 * SPDX-License-Identifier: BSD-2-Clause 3 * 4 * Copyright (c) 2019 Western Digital Corporation or its affiliates. 5 * 6 * Authors: 7 * Anup Patel <anup.patel@wdc.com> 8 */ 9 10 #ifndef __SBI_TIMER_H__ 11 #define __SBI_TIMER_H__ 12 13 #include <sbi/sbi_types.h> 14 15 struct sbi_scratch; 16 17 /** Get timer value for current HART */ 18 u64 sbi_timer_value(void); 19 20 /** Get virtualized timer value for current HART */ 21 u64 sbi_timer_virt_value(void); 22 23 /** Get timer delta value for current HART */ 24 u64 sbi_timer_get_delta(void); 25 26 /** Set timer delta value for current HART */ 27 void sbi_timer_set_delta(ulong delta); 28 29 /** Set upper 32-bits of timer delta value for current HART */ 30 void sbi_timer_set_delta_upper(ulong delta_upper); 31 32 /** Start timer event for current HART */ 33 void sbi_timer_event_start(u64 next_event); 34 35 /** Process timer event for current HART */ 36 void sbi_timer_process(void); 37 38 /* Initialize timer */ 39 int sbi_timer_init(struct sbi_scratch *scratch, bool cold_boot); 40 41 /* Exit timer */ 42 void sbi_timer_exit(struct sbi_scratch *scratch); 43 44 #endif 45