1*559671e0SHuacai Chen /* SPDX-License-Identifier: GPL-2.0 */ 2*559671e0SHuacai Chen /* 3*559671e0SHuacai Chen * Copyright (C) 2020-2022 Loongson Technology Corporation Limited 4*559671e0SHuacai Chen */ 5*559671e0SHuacai Chen #ifndef _ASM_DELAY_H 6*559671e0SHuacai Chen #define _ASM_DELAY_H 7*559671e0SHuacai Chen 8*559671e0SHuacai Chen #include <linux/param.h> 9*559671e0SHuacai Chen 10*559671e0SHuacai Chen extern void __delay(unsigned long cycles); 11*559671e0SHuacai Chen extern void __ndelay(unsigned long ns); 12*559671e0SHuacai Chen extern void __udelay(unsigned long us); 13*559671e0SHuacai Chen 14*559671e0SHuacai Chen #define ndelay(ns) __ndelay(ns) 15*559671e0SHuacai Chen #define udelay(us) __udelay(us) 16*559671e0SHuacai Chen 17*559671e0SHuacai Chen /* make sure "usecs *= ..." in udelay do not overflow. */ 18*559671e0SHuacai Chen #if HZ >= 1000 19*559671e0SHuacai Chen #define MAX_UDELAY_MS 1 20*559671e0SHuacai Chen #elif HZ <= 200 21*559671e0SHuacai Chen #define MAX_UDELAY_MS 5 22*559671e0SHuacai Chen #else 23*559671e0SHuacai Chen #define MAX_UDELAY_MS (1000 / HZ) 24*559671e0SHuacai Chen #endif 25*559671e0SHuacai Chen 26*559671e0SHuacai Chen #endif /* _ASM_DELAY_H */ 27