1/*
2 * Copyright 2003 Digi International (www.digi.com)
3 *      Scott H Kilau <Scott_Kilau at digi dot com>
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2, or (at your option)
8 * any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY, EXPRESS OR IMPLIED; without even the
12 * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
13 * PURPOSE.  See the GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
18 *
19 *      NOTE: THIS IS A SHARED HEADER. DO NOT CHANGE CODING STYLE!!!
20 */
21
22
23/*
24 * This structure holds data needed for the intelligent <--> nonintelligent
25 * DPA translation
26 */
27struct ni_info {
28	int board;
29	int channel;
30	int dtr;
31	int rts;
32	int cts;
33	int dsr;
34	int ri;
35	int dcd;
36	int curtx;
37	int currx;
38	unsigned short iflag;
39	unsigned short oflag;
40	unsigned short cflag;
41	unsigned short lflag;
42
43	unsigned int mstat;
44	unsigned char hflow;
45
46	unsigned char xmit_stopped;
47	unsigned char recv_stopped;
48
49	unsigned int baud;
50};
51
52#define RW_READ		1
53#define RW_WRITE        2
54#define DIGI_KME        ('e'<<8) | 98           /* Read/Write Host */
55
56#define SUBTYPE         0007
57#define T_PCXI          0000
58#define T_PCXEM         0001
59#define T_PCXE          0002
60#define T_PCXR          0003
61#define T_SP            0004
62#define T_SP_PLUS       0005
63
64#define T_HERC   0000
65#define T_HOU    0001
66#define T_LON    0002
67#define T_CHA    0003
68
69#define T_NEO	 0000
70#define T_NEO_EXPRESS  0001
71#define T_CLASSIC 0002
72
73#define FAMILY          0070
74#define T_COMXI         0000
75#define	T_NI		0000
76#define T_PCXX          0010
77#define T_CX            0020
78#define T_EPC           0030
79#define T_PCLITE        0040
80#define T_SPXX          0050
81#define T_AVXX          0060
82#define T_DXB           0070
83#define T_A2K_4_8       0070
84
85#define BUSTYPE         0700
86#define T_ISABUS        0000
87#define T_MCBUS         0100
88#define T_EISABUS       0200
89#define T_PCIBUS        0400
90
91/* Board State Definitions */
92
93#define BD_RUNNING      0x0
94#define BD_REASON       0x7f
95#define BD_NOTFOUND     0x1
96#define BD_NOIOPORT     0x2
97#define BD_NOMEM        0x3
98#define BD_NOBIOS       0x4
99#define BD_NOFEP        0x5
100#define BD_FAILED       0x6
101#define BD_ALLOCATED    0x7
102#define BD_TRIBOOT      0x8
103#define BD_BADKME       0x80
104
105#define DIGI_AIXON      0x0400          /* Aux flow control in fep */
106
107/* Ioctls needed for dpa operation */
108
109#define DIGI_GETDD      ('d'<<8) | 248          /* get driver info      */
110#define DIGI_GETBD      ('d'<<8) | 249          /* get board info       */
111#define DIGI_GET_NI_INFO ('d'<<8) | 250		/* nonintelligent state snfo */
112
113/* Other special ioctls */
114#define DIGI_TIMERIRQ ('d'<<8) | 251		/* Enable/disable RS_TIMER use */
115#define DIGI_LOOPBACK ('d'<<8) | 252		/* Enable/disable UART internal loopback */
116