aboutsummaryrefslogtreecommitdiffstats
path: root/arch/i386/kernel/i8253.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/i386/kernel/i8253.c')
-rw-r--r--arch/i386/kernel/i8253.c32
1 files changed, 32 insertions, 0 deletions
diff --git a/arch/i386/kernel/i8253.c b/arch/i386/kernel/i8253.c
new file mode 100644
index 000000000000..29cb2eb34363
--- /dev/null
+++ b/arch/i386/kernel/i8253.c
@@ -0,0 +1,32 @@
1/*
2 * i8253.c 8253/PIT functions
3 *
4 */
5#include <linux/spinlock.h>
6#include <linux/jiffies.h>
7#include <linux/sysdev.h>
8#include <linux/module.h>
9#include <linux/init.h>
10
11#include <asm/smp.h>
12#include <asm/delay.h>
13#include <asm/i8253.h>
14#include <asm/io.h>
15
16#include "io_ports.h"
17
18DEFINE_SPINLOCK(i8253_lock);
19EXPORT_SYMBOL(i8253_lock);
20
21void setup_pit_timer(void)
22{
23 unsigned long flags;
24
25 spin_lock_irqsave(&i8253_lock, flags);
26 outb_p(0x34,PIT_MODE); /* binary, mode 2, LSB/MSB, ch 0 */
27 udelay(10);
28 outb_p(LATCH & 0xff , PIT_CH0); /* LSB */
29 udelay(10);
30 outb(LATCH >> 8 , PIT_CH0); /* MSB */
31 spin_unlock_irqrestore(&i8253_lock, flags);
32}