diff --git a/src/utils.h b/src/utils.h index 60bd28ff..0eb34b6e 100644 --- a/src/utils.h +++ b/src/utils.h @@ -313,4 +313,16 @@ void reboot(void) __attribute__((noreturn)); reboot(); \ } while (0) +static inline int poll32(u64 addr, u32 mask, u32 target, u32 timeout) +{ + while (--timeout > 0) { + u32 value = read32(addr) & mask; + if (value == target) + return 0; + udelay(1); + } + + return -1; +} + #endif