blob: f285eaee7d2739db9989931e22909af47c564412 [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001#ifndef _ASM_M32R_DELAY_H
2#define _ASM_M32R_DELAY_H
3
4/* $Id$ */
5
6/*
7 * Copyright (C) 1993 Linus Torvalds
8 *
9 * Delay routines calling functions in arch/m32r/lib/delay.c
10 */
11
12extern void __bad_udelay(void);
13extern void __bad_ndelay(void);
14
15extern void __udelay(unsigned long usecs);
16extern void __ndelay(unsigned long nsecs);
17extern void __const_udelay(unsigned long usecs);
18extern void __delay(unsigned long loops);
19
20#define udelay(n) (__builtin_constant_p(n) ? \
21 ((n) > 20000 ? __bad_udelay() : __const_udelay((n) * 0x10c7ul)) : \
22 __udelay(n))
23
24#define ndelay(n) (__builtin_constant_p(n) ? \
25 ((n) > 20000 ? __bad_ndelay() : __const_udelay((n) * 5ul)) : \
26 __ndelay(n))
27
28#endif /* _ASM_M32R_DELAY_H */