mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-18 09:44:18 +08:00
75 lines
1.7 KiB
C
75 lines
1.7 KiB
C
|
/*
|
||
|
* mcfserial.c -- serial driver for ColdFire internal UARTS.
|
||
|
*
|
||
|
* Copyright (c) 1999 Greg Ungerer <gerg@snapgear.com>
|
||
|
* Copyright (c) 2000-2001 Lineo, Inc. <www.lineo.com>
|
||
|
* Copyright (c) 2002 SnapGear Inc., <www.snapgear.com>
|
||
|
*
|
||
|
* 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. <jeff@uclinux.org>
|
||
|
*/
|
||
|
#ifndef _MCF_SERIAL_H
|
||
|
#define _MCF_SERIAL_H
|
||
|
|
||
|
#include <linux/serial.h>
|
||
|
|
||
|
#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 */
|