Linux-2.6.12-rc2
[linux-2.6/linux-acpi-2.6/ibm-acpi-2.6.git] / drivers / serial / mcfserial.h
bloba2b28e8629f92885d9328dae768ba0ab4374f7eb
1 /*
2 * mcfserial.c -- serial driver for ColdFire internal UARTS.
4 * Copyright (c) 1999 Greg Ungerer <gerg@snapgear.com>
5 * Copyright (c) 2000-2001 Lineo, Inc. <www.lineo.com>
6 * Copyright (c) 2002 SnapGear Inc., <www.snapgear.com>
8 * Based on code from 68332serial.c which was:
10 * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu)
11 * Copyright (C) 1998 TSHG
12 * Copyright (c) 1999 Rt-Control Inc. <jeff@uclinux.org>
13 */
14 #ifndef _MCF_SERIAL_H
15 #define _MCF_SERIAL_H
17 #include <linux/config.h>
18 #include <linux/serial.h>
20 #ifdef __KERNEL__
23 * Define a local serial stats structure.
26 struct mcf_stats {
27 unsigned int rx;
28 unsigned int tx;
29 unsigned int rxbreak;
30 unsigned int rxframing;
31 unsigned int rxparity;
32 unsigned int rxoverrun;
37 * This is our internal structure for each serial port's state.
38 * Each serial port has one of these structures associated with it.
41 struct mcf_serial {
42 int magic;
43 volatile unsigned char *addr; /* UART memory address */
44 int irq;
45 int flags; /* defined in tty.h */
46 int type; /* UART type */
47 struct tty_struct *tty;
48 unsigned char imr; /* Software imr register */
49 unsigned int baud;
50 int sigs;
51 int custom_divisor;
52 int x_char; /* xon/xoff character */
53 int baud_base;
54 int close_delay;
55 unsigned short closing_wait;
56 unsigned short closing_wait2;
57 unsigned long event;
58 int line;
59 int count; /* # of fd on device */
60 int blocked_open; /* # of blocked opens */
61 unsigned char *xmit_buf;
62 int xmit_head;
63 int xmit_tail;
64 int xmit_cnt;
65 struct mcf_stats stats;
66 struct work_struct tqueue;
67 struct work_struct tqueue_hangup;
68 wait_queue_head_t open_wait;
69 wait_queue_head_t close_wait;
73 #endif /* __KERNEL__ */
75 #endif /* _MCF_SERIAL_H */