xref: /kvm-unit-tests/lib/riscv/asm/delay.h (revision a1418d6dbe810aded6885366cc6e782caa21a2cc)
1*93bcbb09SJames Raphael Tiovalen /* SPDX-License-Identifier: GPL-2.0-only */
2*93bcbb09SJames Raphael Tiovalen #ifndef _ASMRISCV_DELAY_H_
3*93bcbb09SJames Raphael Tiovalen #define _ASMRISCV_DELAY_H_
4*93bcbb09SJames Raphael Tiovalen 
5*93bcbb09SJames Raphael Tiovalen #include <libcflat.h>
6*93bcbb09SJames Raphael Tiovalen #include <asm/setup.h>
7*93bcbb09SJames Raphael Tiovalen 
8*93bcbb09SJames Raphael Tiovalen extern void delay(uint64_t cycles);
9*93bcbb09SJames Raphael Tiovalen extern void udelay(unsigned long usecs);
10*93bcbb09SJames Raphael Tiovalen 
usec_to_cycles(uint64_t usec)11*93bcbb09SJames Raphael Tiovalen static inline uint64_t usec_to_cycles(uint64_t usec)
12*93bcbb09SJames Raphael Tiovalen {
13*93bcbb09SJames Raphael Tiovalen 	return (timebase_frequency * usec) / 1000000;
14*93bcbb09SJames Raphael Tiovalen }
15*93bcbb09SJames Raphael Tiovalen 
16*93bcbb09SJames Raphael Tiovalen #endif /* _ASMRISCV_DELAY_H_ */
17