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 25struct 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 40struct 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 */ 75