Merge to Fedora kernel-2.6.18-1.2224_FC5 patched with stable patch-2.6.18.1-vs2.0...
[linux-2.6.git] / drivers / serial / mcfserial.h
1 /*
2  * mcfserial.c -- serial driver for ColdFire internal UARTS.
3  *
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>
7  *
8  * Based on code from 68332serial.c which was:
9  *
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
16
17 #include <linux/serial.h>
18
19 #ifdef __KERNEL__
20
21 /*
22  *      Define a local serial stats structure.
23  */
24
25 struct mcf_stats {
26         unsigned int    rx;
27         unsigned int    tx;
28         unsigned int    rxbreak;
29         unsigned int    rxframing;
30         unsigned int    rxparity;
31         unsigned int    rxoverrun;
32 };
33
34
35 /*
36  * This is our internal structure for each serial port's state.
37  * Each serial port has one of these structures associated with it.
38  */
39
40 struct mcf_serial {
41         int                     magic;
42         volatile unsigned char  *addr;          /* UART memory address */
43         int                     irq;
44         int                     flags;          /* defined in tty.h */
45         int                     type;           /* UART type */
46         struct tty_struct       *tty;
47         unsigned char           imr;            /* Software imr register */
48         unsigned int            baud;
49         int                     sigs;
50         int                     custom_divisor;
51         int                     x_char; /* xon/xoff character */
52         int                     baud_base;
53         int                     close_delay;
54         unsigned short          closing_wait;
55         unsigned short          closing_wait2;
56         unsigned long           event;
57         int                     line;
58         int                     count;      /* # of fd on device */
59         int                     blocked_open; /* # of blocked opens */
60         unsigned char           *xmit_buf;
61         int                     xmit_head;
62         int                     xmit_tail;
63         int                     xmit_cnt;
64         struct mcf_stats        stats;
65         struct work_struct      tqueue;
66         struct work_struct      tqueue_hangup;
67         wait_queue_head_t       open_wait;
68         wait_queue_head_t       close_wait;
69
70 };
71
72 #endif /* __KERNEL__ */
73
74 #endif /* _MCF_SERIAL_H */