18b10d4faSNicholas Piggin #ifndef _ASMPOWERPC_TIME_H_ 28b10d4faSNicholas Piggin #define _ASMPOWERPC_TIME_H_ 38b10d4faSNicholas Piggin 48b10d4faSNicholas Piggin #include <libcflat.h> 58b10d4faSNicholas Piggin #include <asm/processor.h> 6*9c5e1913SNicholas Piggin #include <asm/reg.h> 78b10d4faSNicholas Piggin get_tb(void)88b10d4faSNicholas Pigginstatic inline uint64_t get_tb(void) 98b10d4faSNicholas Piggin { 108b10d4faSNicholas Piggin return mfspr(SPR_TB); 118b10d4faSNicholas Piggin } 128b10d4faSNicholas Piggin 138b10d4faSNicholas Piggin extern uint64_t get_clock_us(void); 148b10d4faSNicholas Piggin extern uint64_t get_clock_ms(void); 158b10d4faSNicholas Piggin extern void delay(uint64_t cycles); 168b10d4faSNicholas Piggin extern void udelay(uint64_t us); 178b10d4faSNicholas Piggin extern void sleep_tb(uint64_t cycles); 188b10d4faSNicholas Piggin extern void usleep(uint64_t us); 198b10d4faSNicholas Piggin mdelay(uint64_t ms)208b10d4faSNicholas Pigginstatic inline void mdelay(uint64_t ms) 218b10d4faSNicholas Piggin { 228b10d4faSNicholas Piggin while (ms--) 238b10d4faSNicholas Piggin udelay(1000); 248b10d4faSNicholas Piggin } 258b10d4faSNicholas Piggin msleep(uint64_t ms)268b10d4faSNicholas Pigginstatic inline void msleep(uint64_t ms) 278b10d4faSNicholas Piggin { 288b10d4faSNicholas Piggin usleep(ms * 1000); 298b10d4faSNicholas Piggin } 308b10d4faSNicholas Piggin 318b10d4faSNicholas Piggin #endif /* _ASMPOWERPC_TIME_H_ */ 32