/* * mcfserial.c -- serial driver for ColdFire internal UARTS. * * Copyright (c) 1999 Greg Ungerer * Copyright (c) 2000-2001 Lineo, Inc. * Copyright (c) 2002 SnapGear Inc., * * Based on code from 68332serial.c which was: * * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu) * Copyright (C) 1998 TSHG * Copyright (c) 1999 Rt-Control Inc. */ #ifndef _MCF_SERIAL_H #define _MCF_SERIAL_H #include #include #ifdef __KERNEL__ /* * Define a local serial stats structure. */ struct mcf_stats { unsigned int rx; unsigned int tx; unsigned int rxbreak; unsigned int rxframing; unsigned int rxparity; unsigned int rxoverrun; }; /* * This is our internal structure for each serial port's state. * Each serial port has one of these structures associated with it. */ struct mcf_serial { int magic; volatile unsigned char *addr; /* UART memory address */ int irq; int flags; /* defined in tty.h */ int type; /* UART type */ struct tty_struct *tty; unsigned char imr; /* Software imr register */ unsigned int baud; int sigs; int custom_divisor; int x_char; /* xon/xoff character */ int baud_base; int close_delay; unsigned short closing_wait; unsigned short closing_wait2; unsigned long event; int line; int count; /* # of fd on device */ int blocked_open; /* # of blocked opens */ unsigned char *xmit_buf; int xmit_head; int xmit_tail; int xmit_cnt; struct mcf_stats stats; struct work_struct tqueue; struct work_struct tqueue_hangup; wait_queue_head_t open_wait; wait_queue_head_t close_wait; }; #endif /* __KERNEL__ */ #endif /* _MCF_SERIAL_H */