blob: e7cd78277c2314cee30aec8d078d2e9cd3a8e69e [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001/*
2 * This file is subject to the terms and conditions of the GNU General Public
3 * License. See the file "COPYING" in the main directory of this archive
4 * for more details.
5 *
6 * Copyright (C) 1994 by Waldorf Electronics
7 * Copyright (C) 1995 - 2000, 01, 03 by Ralf Baechle
8 * Copyright (C) 1999, 2000 Silicon Graphics, Inc.
Maciej W. Rozycki20d60d92007-10-23 12:43:11 +01009 * Copyright (C) 2007 Maciej W. Rozycki
Linus Torvalds1da177e2005-04-16 15:20:36 -070010 */
11#ifndef _ASM_DELAY_H
12#define _ASM_DELAY_H
13
Ralf Baechlee3bf8872009-08-28 12:29:58 +010014#include <linux/param.h>
15
Ralf Baechle56369192009-02-28 09:44:28 +000016extern void __delay(unsigned int loops);
17extern void __ndelay(unsigned int ns);
18extern void __udelay(unsigned int us);
Maciej W. Rozycki20d60d92007-10-23 12:43:11 +010019
Ralf Baechle39027ff2009-06-12 17:28:00 +010020#define ndelay(ns) __ndelay(ns)
Ralf Baechle56369192009-02-28 09:44:28 +000021#define udelay(us) __udelay(us)
Linus Torvalds1da177e2005-04-16 15:20:36 -070022
Atsushi Nemotoa0f08202005-11-05 02:02:54 +090023/* make sure "usecs *= ..." in udelay do not overflow. */
24#if HZ >= 1000
25#define MAX_UDELAY_MS 1
26#elif HZ <= 200
27#define MAX_UDELAY_MS 5
28#else
29#define MAX_UDELAY_MS (1000 / HZ)
30#endif
31
Linus Torvalds1da177e2005-04-16 15:20:36 -070032#endif /* _ASM_DELAY_H */