2005-04-17 02:20:36 +04:00
/*
* linux / drivers / char / riscom8 . h - - RISCom / 8 multiport serial driver .
*
* Copyright ( C ) 1994 - 1996 Dmitry Gorodchanin ( pgmdsg @ ibi . com )
*
* This code is loosely based on the Linux serial driver , written by
* Linus Torvalds , Theodore T ' so and others . The RISCom / 8 card
* programming info was obtained from various drivers for other OSes
* ( FreeBSD , ISC , etc ) , but no source code from those drivers were
* directly included in this driver .
*
*
* This program is free software ; you can redistribute it and / or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation ; either version 2 of the License , or
* ( at your option ) any later version .
*
* This program is distributed in the hope that it will be useful ,
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
* GNU General Public License for more details .
*
* You should have received a copy of the GNU General Public License
* along with this program ; if not , write to the Free Software
* Foundation , Inc . , 675 Mass Ave , Cambridge , MA 0213 9 , USA .
*/
# ifndef __LINUX_RISCOM8_H
# define __LINUX_RISCOM8_H
# include <linux/serial.h>
# ifdef __KERNEL__
# define RC_NBOARD 4
/* NOTE: RISCom decoder recognizes 16 addresses... */
# define RC_NPORT 8
# define RC_BOARD(line) (((line) >> 3) & 0x07)
# define RC_PORT(line) ((line) & (RC_NPORT - 1))
/* Ticks per sec. Used for setting receiver timeout and break length */
# define RISCOM_TPS 4000
/* Yeah, after heavy testing I decided it must be 6.
* Sure , You can change it if needed .
*/
# define RISCOM_RXFIFO 6 /* Max. receiver FIFO size (1-8) */
# define RISCOM8_MAGIC 0x0907
# define RC_IOBASE1 0x220
# define RC_IOBASE2 0x240
# define RC_IOBASE3 0x250
# define RC_IOBASE4 0x260
struct riscom_board {
unsigned long flags ;
unsigned short base ;
unsigned char irq ;
signed char count ;
unsigned char DTR ;
} ;
# define RC_BOARD_PRESENT 0x00000001
# define RC_BOARD_ACTIVE 0x00000002
struct riscom_port {
int magic ;
2008-07-17 00:55:29 +04:00
struct tty_port port ;
2005-04-17 02:20:36 +04:00
int baud_base ;
int timeout ;
int custom_divisor ;
int xmit_head ;
int xmit_tail ;
int xmit_cnt ;
short wakeup_chars ;
short break_length ;
unsigned char mark_mask ;
unsigned char IER ;
unsigned char MSVR ;
unsigned char COR2 ;
# ifdef RC_REPORT_OVERRUN
unsigned long overrun ;
# endif
# ifdef RC_REPORT_FIFO
unsigned long hits [ 10 ] ;
# endif
} ;
# endif /* __KERNEL__ */
# endif /* __LINUX_RISCOM8_H */