Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6
[linux-2.6] / drivers / char / rio / rioinfo.h
1 /*
2 ** -----------------------------------------------------------------------------
3 **
4 **  Perle Specialix driver for Linux
5 **  Ported from existing RIO Driver for SCO sources.
6  *
7  *  (C) 1990 - 2000 Specialix International Ltd., Byfleet, Surrey, UK.
8  *
9  *      This program is free software; you can redistribute it and/or modify
10  *      it under the terms of the GNU General Public License as published by
11  *      the Free Software Foundation; either version 2 of the License, or
12  *      (at your option) any later version.
13  *
14  *      This program is distributed in the hope that it will be useful,
15  *      but WITHOUT ANY WARRANTY; without even the implied warranty of
16  *      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17  *      GNU General Public License for more details.
18  *
19  *      You should have received a copy of the GNU General Public License
20  *      along with this program; if not, write to the Free Software
21  *      Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
22 **
23 **      Module          : rioinfo.h
24 **      SID             : 1.2
25 **      Last Modified   : 11/6/98 14:07:49
26 **      Retrieved       : 11/6/98 14:07:50
27 **
28 **  ident @(#)rioinfo.h 1.2
29 **
30 ** -----------------------------------------------------------------------------
31 */
32
33 #ifndef __rioinfo_h
34 #define __rioinfo_h
35
36 #ifdef SCCS_LABELS
37 static char *_rioinfo_h_sccs_ = "@(#)rioinfo.h  1.2";
38 #endif
39
40 /*
41 ** Host card data structure
42 */
43 struct RioHostInfo {
44         long location;          /* RIO Card Base I/O address */
45         long vector;            /* RIO Card IRQ vector */
46         int bus;                /* ISA/EISA/MCA/PCI */
47         int mode;               /* pointer to host mode - INTERRUPT / POLLED */
48         struct old_sgttyb
49         *Sg;                    /* pointer to default term characteristics */
50 };
51
52
53 /* Mode in rio device info */
54 #define INTERRUPTED_MODE        0x01    /* Interrupt is generated */
55 #define POLLED_MODE             0x02    /* No interrupt */
56 #define AUTO_MODE               0x03    /* Auto mode */
57
58 #define WORD_ACCESS_MODE        0x10    /* Word Access Mode */
59 #define BYTE_ACCESS_MODE        0x20    /* Byte Access Mode */
60
61
62 /* Bus type that RIO supports */
63 #define ISA_BUS                 0x01    /* The card is ISA */
64 #define EISA_BUS                0x02    /* The card is EISA */
65 #define MCA_BUS                 0x04    /* The card is MCA */
66 #define PCI_BUS                 0x08    /* The card is PCI */
67
68 /*
69 ** 11.11.1998 ARG - ESIL ???? part fix
70 ** Moved definition for 'CHAN' here from rioinfo.c (it is now
71 ** called 'DEF_TERM_CHARACTERISTICS').
72 */
73
74 #define DEF_TERM_CHARACTERISTICS \
75 { \
76         B19200, B19200,                         /* input and output speed */ \
77         'H' - '@',                              /* erase char */ \
78         -1,                                     /* 2nd erase char */ \
79         'U' - '@',                              /* kill char */ \
80         ECHO | CRMOD,                           /* mode */ \
81         'C' - '@',                              /* interrupt character */ \
82         '\\' - '@',                             /* quit char */ \
83         'Q' - '@',                              /* start char */ \
84         'S' - '@',                              /* stop char */ \
85         'D' - '@',                              /* EOF */ \
86         -1,                                     /* brk */ \
87         (LCRTBS | LCRTERA | LCRTKIL | LCTLECH), /* local mode word */ \
88         'Z' - '@',                              /* process stop */ \
89         'Y' - '@',                              /* delayed stop */ \
90         'R' - '@',                              /* reprint line */ \
91         'O' - '@',                              /* flush output */ \
92         'W' - '@',                              /* word erase */ \
93         'V' - '@'                               /* literal next char */ \
94 }
95
96 #endif                          /* __rioinfo_h */