Contents of /alx-src/tags/kernel26-2.6.12-alx-r9/drivers/char/sx.h
Parent Directory
|
Revision Log
Revision 630 -
(show annotations)
(download)
Wed Mar 4 11:03:09 2009 UTC (15 years, 3 months ago) by niro
File MIME type: text/plain
File size: 5034 byte(s)
Wed Mar 4 11:03:09 2009 UTC (15 years, 3 months ago) by niro
File MIME type: text/plain
File size: 5034 byte(s)
Tag kernel26-2.6.12-alx-r9
1 | |
2 | /* |
3 | * sx.h |
4 | * |
5 | * Copyright (C) 1998/1999 R.E.Wolff@BitWizard.nl |
6 | * |
7 | * SX serial driver. |
8 | * -- Supports SI, XIO and SX host cards. |
9 | * -- Supports TAs, MTAs and SXDCs. |
10 | * |
11 | * Version 1.3 -- March, 1999. |
12 | * |
13 | */ |
14 | |
15 | #define SX_NBOARDS 4 |
16 | #define SX_PORTSPERBOARD 32 |
17 | #define SX_NPORTS (SX_NBOARDS * SX_PORTSPERBOARD) |
18 | |
19 | #ifdef __KERNEL__ |
20 | |
21 | #define SX_MAGIC 0x12345678 |
22 | |
23 | struct sx_port { |
24 | struct gs_port gs; |
25 | struct wait_queue *shutdown_wait; |
26 | int ch_base; |
27 | int c_dcd; |
28 | struct sx_board *board; |
29 | int line; |
30 | long locks; |
31 | }; |
32 | |
33 | struct sx_board { |
34 | int magic; |
35 | void __iomem *base; |
36 | void __iomem *base2; |
37 | unsigned long hw_base; |
38 | int eisa_base; |
39 | int port_base; /* Number of the first port */ |
40 | struct sx_port *ports; |
41 | int nports; |
42 | int flags; |
43 | int irq; |
44 | int poll; |
45 | int ta_type; |
46 | struct timer_list timer; |
47 | long locks; |
48 | }; |
49 | |
50 | struct vpd_prom { |
51 | unsigned short id; |
52 | char hwrev; |
53 | char hwass; |
54 | int uniqid; |
55 | char myear; |
56 | char mweek; |
57 | char hw_feature[5]; |
58 | char oem_id; |
59 | char identifier[16]; |
60 | }; |
61 | |
62 | #ifndef MOD_RS232DB25MALE |
63 | #define MOD_RS232DB25MALE 0x0a |
64 | #endif |
65 | |
66 | #define SI_ISA_BOARD 0x00000001 |
67 | #define SX_ISA_BOARD 0x00000002 |
68 | #define SX_PCI_BOARD 0x00000004 |
69 | #define SX_CFPCI_BOARD 0x00000008 |
70 | #define SX_CFISA_BOARD 0x00000010 |
71 | #define SI_EISA_BOARD 0x00000020 |
72 | #define SI1_ISA_BOARD 0x00000040 |
73 | |
74 | #define SX_BOARD_PRESENT 0x00001000 |
75 | #define SX_BOARD_INITIALIZED 0x00002000 |
76 | #define SX_IRQ_ALLOCATED 0x00004000 |
77 | |
78 | #define SX_BOARD_TYPE 0x000000ff |
79 | |
80 | #define IS_SX_BOARD(board) (board->flags & (SX_PCI_BOARD | SX_CFPCI_BOARD | \ |
81 | SX_ISA_BOARD | SX_CFISA_BOARD)) |
82 | |
83 | #define IS_SI_BOARD(board) (board->flags & SI_ISA_BOARD) |
84 | #define IS_SI1_BOARD(board) (board->flags & SI1_ISA_BOARD) |
85 | |
86 | #define IS_EISA_BOARD(board) (board->flags & SI_EISA_BOARD) |
87 | |
88 | #define IS_CF_BOARD(board) (board->flags & (SX_CFISA_BOARD | SX_CFPCI_BOARD)) |
89 | |
90 | #define SERIAL_TYPE_NORMAL 1 |
91 | |
92 | /* The SI processor clock is required to calculate the cc_int_count register |
93 | value for the SI cards. */ |
94 | #define SI_PROCESSOR_CLOCK 25000000 |
95 | |
96 | |
97 | /* port flags */ |
98 | /* Make sure these don't clash with gs flags or async flags */ |
99 | #define SX_RX_THROTTLE 0x0000001 |
100 | |
101 | |
102 | |
103 | #define SX_PORT_TRANSMIT_LOCK 0 |
104 | #define SX_BOARD_INTR_LOCK 0 |
105 | |
106 | |
107 | |
108 | /* Debug flags. Add these together to get more debug info. */ |
109 | |
110 | #define SX_DEBUG_OPEN 0x00000001 |
111 | #define SX_DEBUG_SETTING 0x00000002 |
112 | #define SX_DEBUG_FLOW 0x00000004 |
113 | #define SX_DEBUG_MODEMSIGNALS 0x00000008 |
114 | #define SX_DEBUG_TERMIOS 0x00000010 |
115 | #define SX_DEBUG_TRANSMIT 0x00000020 |
116 | #define SX_DEBUG_RECEIVE 0x00000040 |
117 | #define SX_DEBUG_INTERRUPTS 0x00000080 |
118 | #define SX_DEBUG_PROBE 0x00000100 |
119 | #define SX_DEBUG_INIT 0x00000200 |
120 | #define SX_DEBUG_CLEANUP 0x00000400 |
121 | #define SX_DEBUG_CLOSE 0x00000800 |
122 | #define SX_DEBUG_FIRMWARE 0x00001000 |
123 | #define SX_DEBUG_MEMTEST 0x00002000 |
124 | |
125 | #define SX_DEBUG_ALL 0xffffffff |
126 | |
127 | |
128 | #define O_OTHER(tty) \ |
129 | ((O_OLCUC(tty)) ||\ |
130 | (O_ONLCR(tty)) ||\ |
131 | (O_OCRNL(tty)) ||\ |
132 | (O_ONOCR(tty)) ||\ |
133 | (O_ONLRET(tty)) ||\ |
134 | (O_OFILL(tty)) ||\ |
135 | (O_OFDEL(tty)) ||\ |
136 | (O_NLDLY(tty)) ||\ |
137 | (O_CRDLY(tty)) ||\ |
138 | (O_TABDLY(tty)) ||\ |
139 | (O_BSDLY(tty)) ||\ |
140 | (O_VTDLY(tty)) ||\ |
141 | (O_FFDLY(tty))) |
142 | |
143 | /* Same for input. */ |
144 | #define I_OTHER(tty) \ |
145 | ((I_INLCR(tty)) ||\ |
146 | (I_IGNCR(tty)) ||\ |
147 | (I_ICRNL(tty)) ||\ |
148 | (I_IUCLC(tty)) ||\ |
149 | (L_ISIG(tty))) |
150 | |
151 | #define MOD_TA ( TA>>4) |
152 | #define MOD_MTA (MTA_CD1400>>4) |
153 | #define MOD_SXDC ( SXDC>>4) |
154 | |
155 | |
156 | /* We copy the download code over to the card in chunks of ... bytes */ |
157 | #define SX_CHUNK_SIZE 128 |
158 | |
159 | #endif /* __KERNEL__ */ |
160 | |
161 | |
162 | |
163 | /* Specialix document 6210046-11 page 3 */ |
164 | #define SPX(X) (('S'<<24) | ('P' << 16) | (X)) |
165 | |
166 | /* Specialix-Linux specific IOCTLS. */ |
167 | #define SPXL(X) (SPX(('L' << 8) | (X))) |
168 | |
169 | |
170 | #define SXIO_SET_BOARD SPXL(0x01) |
171 | #define SXIO_GET_TYPE SPXL(0x02) |
172 | #define SXIO_DOWNLOAD SPXL(0x03) |
173 | #define SXIO_INIT SPXL(0x04) |
174 | #define SXIO_SETDEBUG SPXL(0x05) |
175 | #define SXIO_GETDEBUG SPXL(0x06) |
176 | #define SXIO_DO_RAMTEST SPXL(0x07) |
177 | #define SXIO_SETGSDEBUG SPXL(0x08) |
178 | #define SXIO_GETGSDEBUG SPXL(0x09) |
179 | #define SXIO_GETNPORTS SPXL(0x0a) |
180 | |
181 | |
182 | #ifndef SXCTL_MISC_MINOR |
183 | /* Allow others to gather this into "major.h" or something like that */ |
184 | #define SXCTL_MISC_MINOR 167 |
185 | #endif |
186 | |
187 | #ifndef SX_NORMAL_MAJOR |
188 | /* This allows overriding on the compiler commandline, or in a "major.h" |
189 | include or something like that */ |
190 | #define SX_NORMAL_MAJOR 32 |
191 | #define SX_CALLOUT_MAJOR 33 |
192 | #endif |
193 | |
194 | |
195 | #define SX_TYPE_SX 0x01 |
196 | #define SX_TYPE_SI 0x02 |
197 | #define SX_TYPE_CF 0x03 |
198 | |
199 | |
200 | #define WINDOW_LEN(board) (IS_CF_BOARD(board)?0x20000:SX_WINDOW_LEN) |
201 | /* Need a #define for ^^^^^^^ !!! */ |
202 |