linux/drivers/staging/tty/riscom8.h
<<
>>
Prefs
   1/*
   2 *      linux/drivers/char/riscom8.h  -- RISCom/8 multiport serial driver.
   3 *
   4 *      Copyright (C) 1994-1996  Dmitry Gorodchanin (pgmdsg@ibi.com)
   5 *
   6 *      This code is loosely based on the Linux serial driver, written by
   7 *      Linus Torvalds, Theodore T'so and others. The RISCom/8 card 
   8 *      programming info was obtained from various drivers for other OSes 
   9 *      (FreeBSD, ISC, etc), but no source code from those drivers were 
  10 *      directly included in this driver.
  11 *
  12 *
  13 *      This program is free software; you can redistribute it and/or modify
  14 *      it under the terms of the GNU General Public License as published by
  15 *      the Free Software Foundation; either version 2 of the License, or
  16 *      (at your option) any later version.
  17 *
  18 *      This program is distributed in the hope that it will be useful,
  19 *      but WITHOUT ANY WARRANTY; without even the implied warranty of
  20 *      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  21 *      GNU General Public License for more details.
  22 *
  23 *      You should have received a copy of the GNU General Public License
  24 *      along with this program; if not, write to the Free Software
  25 *      Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  26 */
  27
  28#ifndef __LINUX_RISCOM8_H
  29#define __LINUX_RISCOM8_H
  30
  31#include <linux/serial.h>
  32
  33#ifdef __KERNEL__
  34
  35#define RC_NBOARD               4
  36/* NOTE: RISCom decoder recognizes 16 addresses... */
  37#define RC_NPORT                8  
  38#define RC_BOARD(line)          (((line) >> 3) & 0x07)
  39#define RC_PORT(line)           ((line) & (RC_NPORT - 1))
  40
  41/* Ticks per sec. Used for setting receiver timeout and break length */
  42#define RISCOM_TPS              4000
  43
  44/* Yeah, after heavy testing I decided it must be 6.
  45 * Sure, You can change it if needed.
  46 */
  47#define RISCOM_RXFIFO           6       /* Max. receiver FIFO size (1-8) */
  48
  49#define RISCOM8_MAGIC           0x0907
  50
  51#define RC_IOBASE1      0x220
  52#define RC_IOBASE2      0x240
  53#define RC_IOBASE3      0x250
  54#define RC_IOBASE4      0x260
  55
  56struct riscom_board {
  57        unsigned long   flags;
  58        unsigned short  base;
  59        unsigned char   irq;
  60        signed   char   count;
  61        unsigned char   DTR;
  62};
  63
  64#define RC_BOARD_PRESENT        0x00000001
  65#define RC_BOARD_ACTIVE         0x00000002
  66        
  67struct riscom_port {
  68        int                     magic;
  69        struct                  tty_port port;
  70        int                     baud_base;
  71        int                     timeout;
  72        int                     custom_divisor;
  73        int                     xmit_head;
  74        int                     xmit_tail;
  75        int                     xmit_cnt;
  76        short                   wakeup_chars;
  77        short                   break_length;
  78        unsigned char           mark_mask;
  79        unsigned char           IER;
  80        unsigned char           MSVR;
  81        unsigned char           COR2;
  82#ifdef RC_REPORT_OVERRUN
  83        unsigned long           overrun;
  84#endif  
  85#ifdef RC_REPORT_FIFO
  86        unsigned long           hits[10];
  87#endif
  88};
  89
  90#endif /* __KERNEL__ */
  91#endif /* __LINUX_RISCOM8_H */
  92