1*8b10d4faSNicholas Piggin #ifndef _ASMPOWERPC_TIME_H_ 2*8b10d4faSNicholas Piggin #define _ASMPOWERPC_TIME_H_ 3*8b10d4faSNicholas Piggin 4*8b10d4faSNicholas Piggin #include <libcflat.h> 5*8b10d4faSNicholas Piggin #include <asm/processor.h> 6*8b10d4faSNicholas Piggin 7*8b10d4faSNicholas Piggin static inline uint64_t get_tb(void) 8*8b10d4faSNicholas Piggin { 9*8b10d4faSNicholas Piggin return mfspr(SPR_TB); 10*8b10d4faSNicholas Piggin } 11*8b10d4faSNicholas Piggin 12*8b10d4faSNicholas Piggin extern uint64_t get_clock_us(void); 13*8b10d4faSNicholas Piggin extern uint64_t get_clock_ms(void); 14*8b10d4faSNicholas Piggin extern void delay(uint64_t cycles); 15*8b10d4faSNicholas Piggin extern void udelay(uint64_t us); 16*8b10d4faSNicholas Piggin extern void sleep_tb(uint64_t cycles); 17*8b10d4faSNicholas Piggin extern void usleep(uint64_t us); 18*8b10d4faSNicholas Piggin 19*8b10d4faSNicholas Piggin static inline void mdelay(uint64_t ms) 20*8b10d4faSNicholas Piggin { 21*8b10d4faSNicholas Piggin while (ms--) 22*8b10d4faSNicholas Piggin udelay(1000); 23*8b10d4faSNicholas Piggin } 24*8b10d4faSNicholas Piggin 25*8b10d4faSNicholas Piggin static inline void msleep(uint64_t ms) 26*8b10d4faSNicholas Piggin { 27*8b10d4faSNicholas Piggin usleep(ms * 1000); 28*8b10d4faSNicholas Piggin } 29*8b10d4faSNicholas Piggin 30*8b10d4faSNicholas Piggin #endif /* _ASMPOWERPC_TIME_H_ */ 31