1 /* $OpenBSD: pucdata.c,v 1.48 2007/06/08 12:44:41 mbalmer Exp $ */
2 /* $NetBSD: pucdata.c,v 1.6 1999/07/03 05:55:23 cgd Exp $ */
3
4 /*
5 * Copyright (c) 1998, 1999 Christopher G. Demetriou. All rights reserved.
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions
9 * are met:
10 * 1. Redistributions of source code must retain the above copyright
11 * notice, this list of conditions and the following disclaimer.
12 * 2. Redistributions in binary form must reproduce the above copyright
13 * notice, this list of conditions and the following disclaimer in the
14 * documentation and/or other materials provided with the distribution.
15 * 3. All advertising materials mentioning features or use of this software
16 * must display the following acknowledgement:
17 * This product includes software developed by Christopher G. Demetriou
18 * for the NetBSD Project.
19 * 4. The name of the author may not be used to endorse or promote products
20 * derived from this software without specific prior written permission
21 *
22 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
23 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
24 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
25 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
26 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
27 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
28 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
29 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
30 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
31 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32 */
33
34 /*
35 * PCI "universal" communications card driver configuration data (used to
36 * match/attach the cards).
37 */
38
39 #include <sys/param.h>
40 #include <sys/systm.h>
41 #include <sys/device.h>
42
43 #include <dev/pci/pcireg.h>
44 #include <dev/pci/pcivar.h>
45 #include <dev/pci/pucvar.h>
46 #include <dev/pci/pcidevs.h>
47 #include <dev/ic/comreg.h>
48
49 const struct puc_device_description puc_devices[] = {
50 /*
51 * XXX no entry because I have no data:
52 * XXX Dolphin Peripherals 4006 (single parallel)
53 */
54
55 /*
56 * Dolphin Peripherals 4014 (dual parallel port) card. PLX 9050, with
57 * a seemingly-lame EEPROM setup that puts the Dolphin IDs
58 * into the subsystem fields, and claims that it's a
59 * network/misc (0x02/0x80) device.
60 */
61 { /* "Dolphin Peripherals 4014" */
62 { PCI_VENDOR_PLX, PCI_PRODUCT_PLX_9050, 0xd84d, 0x6810 },
63 { 0xffff, 0xffff, 0xffff, 0xffff },
64 {
65 { PUC_PORT_TYPE_LPT, 0x20, 0x00 },
66 { PUC_PORT_TYPE_LPT, 0x24, 0x00 },
67 },
68 },
69
70 /*
71 * XXX no entry because I have no data:
72 * XXX Dolphin Peripherals 4025 (single serial)
73 */
74
75 /*
76 * Dolphin Peripherals 4035 (dual serial port) card. PLX 9050, with
77 * a seemingly-lame EEPROM setup that puts the Dolphin IDs
78 * into the subsystem fields, and claims that it's a
79 * network/misc (0x02/0x80) device.
80 */
81 { /* "Dolphin Peripherals 4035" */
82 { PCI_VENDOR_PLX, PCI_PRODUCT_PLX_9050, 0xd84d, 0x6808 },
83 { 0xffff, 0xffff, 0xffff, 0xffff },
84 {
85 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
86 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
87 },
88 },
89
90 /*
91 * XXX no entry because I have no data:
92 * XXX Dolphin Peripherals 4078 (dual serial and single parallel)
93 */
94
95 /*
96 * Decision PCCOM PCI series. PLX 9052 with 1 or 2 16554 UARTS
97 */
98
99 /* Decision Computer Inc PCCOM 2 Port RS232/422/485: 2S */
100 { /* "Decision Computer Inc PCCOM 2 Port RS232/422/485", */
101 { PCI_VENDOR_DCI, PCI_PRODUCT_DCI_APCI2, 0, 0 },
102 { 0xffff, 0xffff, 0, 0 },
103 {
104 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
105 { PUC_PORT_TYPE_COM, 0x1c, 0x08, COM_FREQ },
106 },
107 },
108
109 /* Decision Computer Inc PCCOM 4 Port RS232/422/485: 4S */
110 { /* "Decision Computer Inc PCCOM 4 Port RS232/422/485", */
111 { PCI_VENDOR_DCI, PCI_PRODUCT_DCI_APCI4, 0, 0 },
112 { 0xffff, 0xffff, 0, 0 },
113 {
114 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
115 { PUC_PORT_TYPE_COM, 0x1c, 0x08, COM_FREQ },
116 { PUC_PORT_TYPE_COM, 0x1c, 0x10, COM_FREQ },
117 { PUC_PORT_TYPE_COM, 0x1c, 0x18, COM_FREQ },
118 },
119 },
120
121 /* Decision Computer Inc PCCOM 8 Port RS232/422/485: 8S */
122 { /* "Decision Computer Inc PCCOM 8 Port RS232/422/485", */
123 { PCI_VENDOR_DCI, PCI_PRODUCT_DCI_APCI8, 0, 0 },
124 { 0xffff, 0xffff, 0, 0 },
125 {
126 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
127 { PUC_PORT_TYPE_COM, 0x1c, 0x08, COM_FREQ },
128 { PUC_PORT_TYPE_COM, 0x1c, 0x10, COM_FREQ },
129 { PUC_PORT_TYPE_COM, 0x1c, 0x18, COM_FREQ },
130 { PUC_PORT_TYPE_COM, 0x1c, 0x20, COM_FREQ },
131 { PUC_PORT_TYPE_COM, 0x1c, 0x28, COM_FREQ },
132 { PUC_PORT_TYPE_COM, 0x1c, 0x30, COM_FREQ },
133 { PUC_PORT_TYPE_COM, 0x1c, 0x38, COM_FREQ },
134 },
135 },
136
137 /*
138 * SIIG Boards.
139 *
140 * SIIG provides documentation for their boards at:
141 * <URL:http://www.siig.com/driver.htm>
142 *
143 * Please excuse the weird ordering, it's the order they
144 * use in their documentation.
145 */
146
147 /*
148 * SIIG "10x" family boards.
149 */
150
151 /* SIIG Cyber Serial PCI 16C550 (10x family): 1S */
152 { /* "SIIG Cyber Serial PCI 16C550 (10x family)", */
153 { PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_1000, 0, 0 },
154 { 0xffff, 0xffff, 0, 0 },
155 {
156 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
157 },
158 },
159
160 /* SIIG Cyber Serial PCI 16C650 (10x family): 1S */
161 { /* "SIIG Cyber Serial PCI 16C650 (10x family)", */
162 { PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_1001, 0, 0 },
163 { 0xffff, 0xffff, 0, 0 },
164 {
165 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
166 },
167 },
168
169 /* SIIG Cyber Serial PCI 16C850 (10x family): 1S */
170 { /* "SIIG Cyber Serial PCI 16C850 (10x family)", */
171 { PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_1002, 0, 0 },
172 { 0xffff, 0xffff, 0, 0 },
173 {
174 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
175 },
176 },
177
178 /* SIIG Cyber I/O PCI 16C550 (10x family): 1S, 1P */
179 { /* "SIIG Cyber I/O PCI 16C550 (10x family)", */
180 { PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_1010, 0, 0 },
181 { 0xffff, 0xffff, 0, 0 },
182 {
183 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
184 { PUC_PORT_TYPE_LPT, 0x1c, 0x00 },
185 },
186 },
187
188 /* SIIG Cyber I/O PCI 16C650 (10x family): 1S, 1P */
189 { /* "SIIG Cyber I/O PCI 16C650 (10x family)", */
190 { PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_1011, 0, 0 },
191 { 0xffff, 0xffff, 0, 0 },
192 {
193 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
194 { PUC_PORT_TYPE_LPT, 0x1c, 0x00 },
195 },
196 },
197
198 /* SIIG Cyber I/O PCI 16C850 (10x family): 1S, 1P */
199 { /* "SIIG Cyber I/O PCI 16C850 (10x family)", */
200 { PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_1012, 0, 0 },
201 { 0xffff, 0xffff, 0, 0 },
202 {
203 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
204 { PUC_PORT_TYPE_LPT, 0x1c, 0x00 },
205 },
206 },
207
208 /* SIIG Cyber Parallel PCI (10x family): 1P */
209 { /* "SIIG Cyber Parallel PCI (10x family)", */
210 { PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_1020, 0, 0 },
211 { 0xffff, 0xffff, 0, 0 },
212 {
213 { PUC_PORT_TYPE_LPT, 0x18, 0x00 },
214 },
215 },
216
217 /* SIIG Cyber Parallel Dual PCI (10x family): 2P */
218 { /* "SIIG Cyber Parallel Dual PCI (10x family)", */
219 { PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_1021, 0, 0 },
220 { 0xffff, 0xffff, 0, 0 },
221 {
222 { PUC_PORT_TYPE_LPT, 0x18, 0x00 },
223 { PUC_PORT_TYPE_LPT, 0x20, 0x00 },
224 },
225 },
226
227 /* SIIG Cyber Serial Dual PCI 16C550 (10x family): 2S */
228 { /* "SIIG Cyber Serial Dual PCI 16C550 (10x family)", */
229 { PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_1030, 0, 0 },
230 { 0xffff, 0xffff, 0, 0 },
231 {
232 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
233 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
234 },
235 },
236
237 /* SIIG Cyber Serial Dual PCI 16C650 (10x family): 2S */
238 { /* "SIIG Cyber Serial Dual PCI 16C650 (10x family)", */
239 { PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_1031, 0, 0 },
240 { 0xffff, 0xffff, 0, 0 },
241 {
242 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
243 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
244 },
245 },
246
247 /* SIIG Cyber Serial Dual PCI 16C850 (10x family): 2S */
248 { /* "SIIG Cyber Serial Dual PCI 16C850 (10x family)", */
249 { PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_1032, 0, 0 },
250 { 0xffff, 0xffff, 0, 0 },
251 {
252 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
253 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
254 },
255 },
256
257 /* SIIG Cyber 2S1P PCI 16C550 (10x family): 2S, 1P */
258 { /* "SIIG Cyber 2S1P PCI 16C550 (10x family)", */
259 { PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_1034, 0, 0 },
260 { 0xffff, 0xffff, 0, 0 },
261 {
262 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
263 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
264 { PUC_PORT_TYPE_LPT, 0x20, 0x00 },
265 },
266 },
267
268 /* SIIG Cyber 2S1P PCI 16C650 (10x family): 2S, 1P */
269 { /* "SIIG Cyber 2S1P PCI 16C650 (10x family)", */
270 { PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_1035, 0, 0 },
271 { 0xffff, 0xffff, 0, 0 },
272 {
273 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
274 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
275 { PUC_PORT_TYPE_LPT, 0x20, 0x00 },
276 },
277 },
278
279 /* SIIG Cyber 2S1P PCI 16C850 (10x family): 2S, 1P */
280 { /* "SIIG Cyber 2S1P PCI 16C850 (10x family)", */
281 { PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_1036, 0, 0 },
282 { 0xffff, 0xffff, 0, 0 },
283 {
284 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
285 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
286 { PUC_PORT_TYPE_LPT, 0x20, 0x00 },
287 },
288 },
289
290 /* SIIG Cyber 4S PCI 16C550 (10x family): 4S */
291 { /* "SIIG Cyber 4S PCI 16C550 (10x family)", */
292 { PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_1050, 0, 0 },
293 { 0xffff, 0xffff, 0, 0 },
294 {
295 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
296 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
297 { PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ },
298 { PUC_PORT_TYPE_COM, 0x24, 0x00, COM_FREQ },
299 },
300 },
301
302 /* SIIG Cyber 4S PCI 16C650 (10x family): 4S */
303 { /* "SIIG Cyber 4S PCI 16C650 (10x family)", */
304 { PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_1051, 0, 0 },
305 { 0xffff, 0xffff, 0, 0 },
306 {
307 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
308 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
309 { PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ },
310 { PUC_PORT_TYPE_COM, 0x24, 0x00, COM_FREQ },
311 },
312 },
313
314 /* SIIG Cyber 4S PCI 16C850 (10x family): 4S */
315 { /* "SIIG Cyber 4S PCI 16C850 (10x family)", */
316 { PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_1052, 0, 0 },
317 { 0xffff, 0xffff, 0, 0 },
318 {
319 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
320 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
321 { PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ },
322 { PUC_PORT_TYPE_COM, 0x24, 0x00, COM_FREQ },
323 },
324 },
325
326 /*
327 * SIIG "20x" family boards.
328 */
329
330 /* SIIG Cyber Parallel PCI (20x family): 1P */
331 { /* "SIIG Cyber Parallel PCI (20x family)", */
332 { PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_2020, 0, 0 },
333 { 0xffff, 0xffff, 0, 0 },
334 {
335 { PUC_PORT_TYPE_LPT, 0x10, 0x00 },
336 },
337 },
338
339 /* SIIG Cyber Parallel Dual PCI (20x family): 2P */
340 { /* "SIIG Cyber Parallel Dual PCI (20x family)", */
341 { PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_2021, 0, 0 },
342 { 0xffff, 0xffff, 0, 0 },
343 {
344 { PUC_PORT_TYPE_LPT, 0x10, 0x00 },
345 { PUC_PORT_TYPE_LPT, 0x18, 0x00 },
346 },
347 },
348
349 /* SIIG Cyber 2P1S PCI 16C550 (20x family): 1S, 2P */
350 { /* "SIIG Cyber 2P1S PCI 16C550 (20x family)", */
351 { PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_2040, 0, 0 },
352 { 0xffff, 0xffff, 0, 0 },
353 {
354 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
355 { PUC_PORT_TYPE_LPT, 0x14, 0x00 },
356 { PUC_PORT_TYPE_LPT, 0x1c, 0x00 },
357 },
358 },
359
360 /* SIIG Cyber 2P1S PCI 16C650 (20x family): 1S, 2P */
361 { /* "SIIG Cyber 2P1S PCI 16C650 (20x family)", */
362 { PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_2041, 0, 0 },
363 { 0xffff, 0xffff, 0, 0 },
364 {
365 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
366 { PUC_PORT_TYPE_LPT, 0x14, 0x00 },
367 { PUC_PORT_TYPE_LPT, 0x1c, 0x00 },
368 },
369 },
370
371 /* SIIG Cyber 2P1S PCI 16C850 (20x family): 1S, 2P */
372 { /* "SIIG Cyber 2P1S PCI 16C850 (20x family)", */
373 { PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_2042, 0, 0 },
374 { 0xffff, 0xffff, 0, 0 },
375 {
376 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
377 { PUC_PORT_TYPE_LPT, 0x14, 0x00 },
378 { PUC_PORT_TYPE_LPT, 0x1c, 0x00 },
379 },
380 },
381
382 /* SIIG Cyber Serial PCI 16C550 (20x family): 1S */
383 { /* "SIIG Cyber Serial PCI 16C550 (20x family)", */
384 { PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_2000, 0, 0 },
385 { 0xffff, 0xffff, 0, 0 },
386 {
387 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
388 },
389 },
390
391 /* SIIG Cyber Serial PCI 16C650 (20x family): 1S */
392 { /* "SIIG Cyber Serial PCI 16C650 (20x family)", */
393 { PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_2001, 0, 0 },
394 { 0xffff, 0xffff, 0, 0 },
395 {
396 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
397 },
398 },
399
400 /* SIIG Cyber Serial PCI 16C850 (20x family): 1S */
401 { /* "SIIG Cyber Serial PCI 16C850 (20x family)", */
402 { PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_2002, 0, 0 },
403 { 0xffff, 0xffff, 0, 0 },
404 {
405 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
406 },
407 },
408
409 /* SIIG Cyber I/O PCI 16C550 (20x family): 1S, 1P */
410 { /* "SIIG Cyber I/O PCI 16C550 (20x family)", */
411 { PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_2010, 0, 0 },
412 { 0xffff, 0xffff, 0, 0 },
413 {
414 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
415 { PUC_PORT_TYPE_LPT, 0x14, 0x00 },
416 },
417 },
418
419 /* SIIG Cyber I/O PCI 16C650 (20x family): 1S, 1P */
420 { /* "SIIG Cyber I/O PCI 16C650 (20x family)", */
421 { PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_2011, 0, 0 },
422 { 0xffff, 0xffff, 0, 0 },
423 {
424 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
425 { PUC_PORT_TYPE_LPT, 0x14, 0x00 },
426 },
427 },
428
429 /* SIIG Cyber I/O PCI 16C850 (20x family): 1S, 1P */
430 { /* "SIIG Cyber I/O PCI 16C850 (20x family)", */
431 { PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_2012, 0, 0 },
432 { 0xffff, 0xffff, 0, 0 },
433 {
434 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
435 { PUC_PORT_TYPE_LPT, 0x14, 0x00 },
436 },
437 },
438
439 /* SIIG Cyber Serial Dual PCI 16C550 (20x family): 2S */
440 { /* "SIIG Cyber Serial Dual PCI 16C550 (20x family)", */
441 { PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_2030, 0, 0 },
442 { 0xffff, 0xffff, 0, 0 },
443 {
444 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
445 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
446 },
447 },
448
449 /* SIIG Cyber Serial Dual PCI 16C650 (20x family): 2S */
450 { /* "SIIG Cyber Serial Dual PCI 16C650 (20x family)", */
451 { PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_2031, 0, 0 },
452 { 0xffff, 0xffff, 0, 0 },
453 {
454 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
455 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
456 },
457 },
458
459 /* SIIG Cyber Serial Dual PCI 16C850 (20x family): 2S */
460 { /* "SIIG Cyber Serial Dual PCI 16C850 (20x family)", */
461 { PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_2032, 0, 0 },
462 { 0xffff, 0xffff, 0, 0 },
463 {
464 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
465 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
466 },
467 },
468
469 /* SIIG Cyber 2S1P PCI 16C550 (20x family): 2S, 1P */
470 { /* "SIIG Cyber 2S1P PCI 16C550 (20x family)", */
471 { PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_2060, 0, 0 },
472 { 0xffff, 0xffff, 0, 0 },
473 {
474 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
475 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
476 { PUC_PORT_TYPE_LPT, 0x18, 0x00 },
477 },
478 },
479
480 /* SIIG Cyber 2S1P PCI 16C650 (20x family): 2S, 1P */
481 { /* "SIIG Cyber 2S1P PCI 16C650 (20x family)", */
482 { PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_2061, 0, 0 },
483 { 0xffff, 0xffff, 0, 0 },
484 {
485 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
486 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
487 { PUC_PORT_TYPE_LPT, 0x18, 0x00 },
488 },
489 },
490
491 /* SIIG Cyber 2S1P PCI 16C850 (20x family): 2S, 1P */
492 { /* "SIIG Cyber 2S1P PCI 16C850 (20x family)", */
493 { PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_2062, 0, 0 },
494 { 0xffff, 0xffff, 0, 0 },
495 {
496 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
497 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
498 { PUC_PORT_TYPE_LPT, 0x18, 0x00 },
499 },
500 },
501
502 /* SIIG Cyber 4S PCI 16C550 (20x family): 4S */
503 { /* "SIIG Cyber 4S PCI 16C550 (20x family)", */
504 { PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_2050, 0, 0 },
505 { 0xffff, 0xffff, 0, 0 },
506 {
507 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
508 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
509 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
510 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
511 },
512 },
513
514 /* SIIG Cyber 4S PCI 16C650 (20x family): 4S */
515 { /* "SIIG Cyber 4S PCI 16C650 (20x family)", */
516 { PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_2051, 0, 0 },
517 { 0xffff, 0xffff, 0, 0 },
518 {
519 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
520 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
521 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
522 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
523 },
524 },
525
526 /* SIIG Cyber 4S PCI 16C850 (20x family): 4S */
527 { /* "SIIG Cyber 4S PCI 16C850 (20x family)", */
528 { PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_2052, 0, 0 },
529 { 0xffff, 0xffff, 0, 0 },
530 {
531 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
532 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
533 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
534 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
535 },
536 },
537
538 /* SIIG Cyber 8S PCI 16C850 (20x family): 8S */
539 { /* "SIIG Cyber 8S PCI 16C850 (20x family)", */
540 { PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_2081, 0, 0 },
541 { 0xffff, 0xffff, 0, 0 },
542 {
543 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
544 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
545 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
546 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
547 { PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ },
548 { PUC_PORT_TYPE_COM, 0x20, 0x08, COM_FREQ },
549 { PUC_PORT_TYPE_COM, 0x20, 0x10, COM_FREQ },
550 { PUC_PORT_TYPE_COM, 0x20, 0x18, COM_FREQ },
551 },
552 },
553
554 /*
555 * VScom PCI-400S, based on PLX 9050 Chip, 16k buffer
556 */
557 { /* "VScom PCI-400S", */
558 { PCI_VENDOR_PLX, PCI_PRODUCT_PLX_1077, 0x10b5, 0x1077 },
559 { 0xffff, 0xffff, 0xffff, 0xffff },
560 {
561 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
562 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 },
563 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 },
564 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 },
565 },
566 },
567
568 /*
569 * VScom PCI-800, as sold on http://www.swann.com.au/isp/titan.html.
570 * Some PLX chip. Note: This board has a software selectable(?)
571 * clock multiplier which this driver doesn't support, so you'll
572 * have to use an appropriately scaled baud rate when talking to
573 * the card.
574 */
575 { /* "VScom PCI-800", */
576 { PCI_VENDOR_PLX, PCI_PRODUCT_PLX_1076, 0x10b5, 0x1076 },
577 { 0xffff, 0xffff, 0xffff, 0xffff },
578 {
579 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
580 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ },
581 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ },
582 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ },
583 { PUC_PORT_TYPE_COM, 0x18, 0x20, COM_FREQ },
584 { PUC_PORT_TYPE_COM, 0x18, 0x28, COM_FREQ },
585 { PUC_PORT_TYPE_COM, 0x18, 0x30, COM_FREQ },
586 { PUC_PORT_TYPE_COM, 0x18, 0x38, COM_FREQ },
587 },
588 },
589
590 /*
591 * VScom PCI 011H, 1 lpt.
592 */
593 { /* "VScom PCI-011H", */
594 { PCI_VENDOR_OXFORD2, PCI_PRODUCT_OXFORD2_VSCOM_PCI011H, 0, 0 },
595 { 0xffff, 0xffff, 0, 0 },
596 {
597 { PUC_PORT_TYPE_LPT, 0x10, 0x00 },
598 },
599 },
600
601 /*
602 * VScom PCI x10H, 1 lpt.
603 * is the lpt part of VScom 110H, 210H, 410H
604 */
605 { /* "VScom PCI-x10H", */
606 { PCI_VENDOR_OXFORD, PCI_PRODUCT_OXFORD_VSCOM_PCIx10H, 0, 0 },
607 { 0xffff, 0xffff, 0, 0 },
608 {
609 { PUC_PORT_TYPE_LPT, 0x10, 0x00 },
610 },
611 },
612
613 /*
614 * VScom PCI 100H, little sister of 800H, 1 com.
615 * also com part of VScom 110H
616 * The one I have defaults to a fequency of 14.7456 MHz which is
617 * jumper J1 set to 2-3.
618 */
619 { /* "VScom PCI-100H", */
620 { PCI_VENDOR_OXFORD, PCI_PRODUCT_OXFORD_VSCOM_PCI100H, 0, 0 },
621 { 0xffff, 0xffff, 0, 0 },
622 {
623 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 },
624 },
625 },
626
627 /*
628 * VScom PCI 200H, little sister of 800H, 2 com.
629 * also com part of VScom 210H
630 * The one I have defaults to a fequency of 14.7456 MHz which is
631 * jumper J1 set to 2-3.
632 */
633
634 { /* "VScom PCI-200H", */
635 { PCI_VENDOR_OXFORD, PCI_PRODUCT_OXFORD_VSCOM_PCI200H, 0, 0 },
636 { 0xffff, 0xffff, 0, 0 },
637 {
638 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 },
639 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8 },
640 },
641 },
642
643 /*
644 * VScom PCI 400H and 800H. Uses 4/8 16950 UART, behind a PCI chips
645 * that offers 4 com port on PCI device 0 (both 400H and 800H)
646 * and 4 on PCI device 1 (800H only). PCI device 0 has
647 * device ID 3 and PCI device 1 device ID 4. Uses a 14.7456 MHz crystal
648 * instead of the standart 1.8432MHz.
649 * There's a version with a jumper for selecting the crystal frequency,
650 * defaults to 8x as used here. The jumperless version uses 8x, too.
651 */
652 { /* "VScom PCI-400H/800H", */
653 { PCI_VENDOR_OXFORD, PCI_PRODUCT_OXFORD_VSCOM_PCI800H_0, 0, 0 },
654 { 0xffff, 0xffff, 0, 0 },
655 {
656 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 },
657 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8 },
658 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 8 },
659 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 8 },
660 },
661 },
662 { /* "VScom PCI-400H/800H", */
663 { PCI_VENDOR_OXFORD, PCI_PRODUCT_OXFORD_VSCOM_PCI800H_1, 0, 0 },
664 { 0xffff, 0xffff, 0, 0 },
665 {
666 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 },
667 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8 },
668 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 8 },
669 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 8 },
670 },
671 },
672
673 /*
674 * VScom PCI 200HV2, is 200H Version 2.
675 * Sells as 200H
676 */
677 { /* "VScom PCI-200HV2", */
678 { PCI_VENDOR_OXFORD, PCI_PRODUCT_OXFORD_VSCOM_PCI200HV2, 0, 0 },
679 { 0xffff, 0xffff, 0, 0 },
680 {
681 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 },
682 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ * 8 },
683 },
684 },
685
686 /*
687 * VScom PCI 010L
688 * one lpt
689 * untested
690 */
691 { /* "VScom PCI-010L", */
692 { PCI_VENDOR_OXFORD, PCI_PRODUCT_OXFORD_VSCOM_PCI010L, 0, 0 },
693 { 0xffff, 0xffff, 0, 0 },
694 {
695 { PUC_PORT_TYPE_LPT, 0x1c, 0x00 },
696 },
697 },
698
699 /*
700 * VScom PCI 100L
701 * one com
702 * The one I have defaults to a fequency of 14.7456 MHz which is
703 * jumper J1 set to 2-3.
704 */
705 { /* "VScom PCI-100L", */
706 { PCI_VENDOR_OXFORD, PCI_PRODUCT_OXFORD_VSCOM_PCI100L, 0, 0 },
707 { 0xffff, 0xffff, 0, 0 },
708 {
709 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ * 8 },
710 },
711 },
712
713 /*
714 * VScom PCI 110L
715 * one com, one lpt
716 * untested
717 */
718 { /* "VScom PCI-110L", */
719 { PCI_VENDOR_OXFORD, PCI_PRODUCT_OXFORD_VSCOM_PCI110L, 0, 0 },
720 { 0xffff, 0xffff, 0, 0 },
721 {
722 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ * 8 },
723 { PUC_PORT_TYPE_LPT, 0x1c, 0x00 },
724 },
725 },
726
727 /*
728 * VScom PCI-200L has 2 x 16550 UARTS.
729 * The board has a jumper which allows you to select a clock speed
730 * of either 14.7456MHz or 1.8432MHz. By default it runs at
731 * the fast speed.
732 */
733 { /* "VScom PCI-200L with 2 x 16550 UARTS" */
734 { PCI_VENDOR_OXFORD, PCI_PRODUCT_OXFORD_VSCOM_PCI200L, 0, 0 },
735 { 0xffff, 0xffff, 0, 0 },
736 {
737 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ * 8},
738 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8},
739 },
740 },
741
742 /*
743 * VScom PCI-210L
744 * Has a jumper for frequency selection, defaults to 8x as used here
745 * two com, one lpt
746 */
747 { /* "VScom PCI-210L" */
748 { PCI_VENDOR_OXFORD, PCI_PRODUCT_OXFORD_VSCOM_PCI210L, 0, 0 },
749 { 0xffff, 0xffff, 0, 0 },
750 {
751 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ * 8 },
752 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
753 { PUC_PORT_TYPE_LPT, 0x1c, 0x00 },
754 },
755 },
756
757 /*
758 * VScom PCI 400L
759 * Has a jumper for frequency selection, defaults to 8x as used here
760 * This is equal to J1 in pos 2-3
761 * VendorID mismatch with docs, should be 14d2 (oxford), is 10d2 (molex)
762 */
763 { /* "VScom PCI-400L", */
764 { PCI_VENDOR_MOLEX, PCI_PRODUCT_MOLEX_VSCOM_PCI400L, 0, 0 },
765 { 0xffff, 0xffff, 0, 0 },
766 {
767 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ * 8 },
768 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
769 { PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ * 8 },
770 { PUC_PORT_TYPE_COM, 0x20, 0x08, COM_FREQ * 8 },
771 },
772 },
773
774 /*
775 * VScom PCI 800L
776 * Has a jumper for frequency selection, defaults to 8x as used here
777 */
778 { /* "VScom PCI-800L", */
779 { PCI_VENDOR_OXFORD, PCI_PRODUCT_OXFORD_VSCOM_PCI800L, 0, 0 },
780 { 0xffff, 0xffff, 0, 0 },
781 {
782 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ * 8 },
783 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
784 { PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ * 8 },
785 { PUC_PORT_TYPE_COM, 0x20, 0x08, COM_FREQ * 8 },
786 { PUC_PORT_TYPE_COM, 0x20, 0x10, COM_FREQ * 8 },
787 { PUC_PORT_TYPE_COM, 0x20, 0x18, COM_FREQ * 8 },
788 { PUC_PORT_TYPE_COM, 0x20, 0x20, COM_FREQ * 8 },
789 { PUC_PORT_TYPE_COM, 0x20, 0x28, COM_FREQ * 8 },
790 },
791 },
792
793 /*
794 * Exsys EX-41098
795 */
796 { /* "Exsys EX-41098", */
797 { PCI_VENDOR_OXFORD2, PCI_PRODUCT_OXFORD2_EXSYS_EX41098, 0, 0 },
798 { 0xffff, 0xffff, 0, 0 },
799 {
800 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
801 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ },
802 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ },
803 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ },
804 },
805 },
806
807 /*
808 * Boards with an Oxford Semiconductor chip.
809 *
810 * Oxford Semiconductor provides documentation for their chip at:
811 * <URL:http://www.oxsemi.com/products/uarts/index.html>
812 *
813 * As sold by Kouwell <URL:http://www.kouwell.com/>.
814 * I/O Flex PCI I/O Card Model-223 with 4 serial and 1 parallel ports.
815 */
816
817 /* Oxford Semiconductor OX16PCI952 PCI `950 UARTs - 128 byte FIFOs */
818 { /* "Oxford Semiconductor OX16PCI952 UARTs", */
819 { PCI_VENDOR_OXFORD2, PCI_PRODUCT_OXFORD2_OX16PCI952, 0, 0 },
820 { 0xffff, 0xffff, 0, 0 },
821 {
822 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
823 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
824 },
825 },
826
827 /* Oxford Semiconductor OX16PCI952 PCI Parallel port */
828 { /* "Oxford Semiconductor OX16PCI952 Parallel port", */
829 { PCI_VENDOR_OXFORD2, PCI_PRODUCT_OXFORD2_OX16PCI952P, 0, 0 },
830 { 0xffff, 0xffff, 0, 0 },
831 {
832 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
833 },
834 },
835
836 /* SIIG 2050 (uses Oxford 16PCI954 and a 10x clock) */
837 { /* "Oxford Semiconductor OX16PCI954 UARTs", */
838 { PCI_VENDOR_OXFORD2, PCI_PRODUCT_OXFORD2_OX16PCI954,
839 PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_2050 },
840 { 0xffff, 0xffff, 0xffff, 0xffff },
841 {
842 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 10 },
843 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 10 },
844 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 10 },
845 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 10 },
846 },
847 },
848
849 /* Oxford Semiconductor OX16PCI954 PCI UARTs */
850 { /* "Oxford Semiconductor OX16PCI954 UARTs", */
851 { PCI_VENDOR_OXFORD2, PCI_PRODUCT_OXFORD2_OX16PCI954, 0, 0 },
852 { 0xffff, 0xffff, 0, 0 },
853 {
854 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
855 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ },
856 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ },
857 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ },
858 },
859 },
860
861 /* Oxford Semiconductor OX16PCI954K PCI UARTs */
862 { /* "Oxford Semiconductor OX16PCI954K UARTs", */
863 { PCI_VENDOR_OXFORD2, PCI_PRODUCT_OXFORD2_OX16PCI954K, 0, 0 },
864 { 0xffff, 0xffff, 0, 0 },
865 {
866 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
867 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
868 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
869 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
870 },
871 },
872
873 /* Oxford Semiconductor OX16PCI954 PCI Parallel port */
874 { /* "Oxford Semiconductor OX16PCI954 Parallel port", */
875 { PCI_VENDOR_OXFORD2, PCI_PRODUCT_OXFORD2_OX16PCI954P, 0, 0 },
876 { 0xffff, 0xffff, 0, 0 },
877 {
878 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
879 },
880 },
881
882 /*
883 * NEC PK-UG-X001 K56flex PCI Modem card.
884 * NEC MARTH bridge chip and Rockwell RCVDL56ACF/SP using.
885 */
886 { /* "NEC PK-UG-X001 K56flex PCI Modem", */
887 { PCI_VENDOR_NEC, PCI_PRODUCT_NEC_MARTH, 0x1033, 0x8014 },
888 { 0xffff, 0xffff, 0xffff, 0xffff },
889 {
890 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
891 },
892 },
893
894 /* NEC PK-UG-X008 */
895 { /* "NEC PK-UG-X008", */
896 { PCI_VENDOR_NEC, PCI_PRODUCT_NEC_PKUG, 0x1033, 0x8012 },
897 { 0xffff, 0xffff, 0xffff, 0xffff },
898 {
899 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
900 },
901 },
902
903 /* Lava Computers 2SP-PCI (0x8000-0x8003) */
904 { /* "Lava Computers 2SP-PCI parallel port", */
905 { PCI_VENDOR_LAVA, PCI_PRODUCT_LAVA_TWOSP_1P, 0, 0 },
906 { 0xffff, 0xfffc, 0, 0 },
907 {
908 { PUC_PORT_TYPE_LPT, 0x10, 0x00 },
909 },
910 },
911
912 /* Lava Computers 2SP-PCI and Quattro-PCI serial ports */
913 { /* "Lava Computers dual serial port", */
914 { PCI_VENDOR_LAVA, PCI_PRODUCT_LAVA_TWOSP_2S, 0, 0 },
915 { 0xffff, 0xfffc, 0, 0 },
916 {
917 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
918 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
919 },
920 },
921
922 /*
923 * Lava Computers Quattro-PCI serial ports.
924 * A second version of the Quattro-PCI with different PCI ids.
925 */
926 { /* "Lava Computers Quattro-PCI 4-port serial", */
927 { PCI_VENDOR_LAVA, PCI_PRODUCT_LAVA_QUATTRO_AB2, 0, 0 },
928 { 0xffff, 0xfffe, 0, 0 },
929 {
930 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
931 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
932 },
933 },
934
935 /*
936 * Lava Computers LavaPort-Dual and LavaPort-Quad 4*clock PCI
937 * serial ports.
938 */
939 { /* "Lava Computers high-speed port", */
940 { PCI_VENDOR_LAVA, PCI_PRODUCT_LAVA_LAVAPORT_0, 0, 0 },
941 { 0xffff, 0xfffc, 0, 0 },
942 {
943 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ*4 },
944 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ*4 },
945 },
946 },
947
948 /*
949 * Lava Computers LavaPort-single serial port.
950 */
951 { /* "Lava Computers high-speed port", */
952 { PCI_VENDOR_LAVA, PCI_PRODUCT_LAVA_LAVAPORT_2, 0, 0 },
953 { 0xffff, 0xfffc, 0, 0 },
954 {
955 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ*4 },
956 },
957 },
958
959 /* Lava Computers LavaPort-650 */
960 { /* "Lava Computers high-speed port", */
961 { PCI_VENDOR_LAVA, PCI_PRODUCT_LAVA_650, 0, 0 },
962 { 0xffff, 0xfffc, 0, 0 },
963 {
964 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ*4 },
965 },
966 },
967
968 /* Koutech IOFLEX-2S PCI Dual Port Serial, port 1 */
969 { /* "Koutech IOFLEX-2S PCI Dual Port Serial, port 1", */
970 { PCI_VENDOR_LAVA, PCI_PRODUCT_LAVA_IOFLEX_2S_0, 0, 0 },
971 { 0xffff, 0xfffc, 0, 0 },
972 {
973 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
974 },
975 },
976
977 /* Koutech IOFLEX-2S PCI Dual Port Serial, port 2 */
978 { /* "Koutech IOFLEX-2S PCI Dual Port Serial, port 2", */
979 { PCI_VENDOR_LAVA, PCI_PRODUCT_LAVA_IOFLEX_2S_1, 0, 0 },
980 { 0xffff, 0xfffc, 0, 0 },
981 {
982 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
983 },
984 },
985
986 /* Lava Computers Octopus-550 serial ports */
987 { /* "Lava Computers Octopus-550 8-port serial", */
988 { PCI_VENDOR_LAVA, PCI_PRODUCT_LAVA_OCTOPUS550_0, 0, 0 },
989 { 0xffff, 0xfffc, 0, 0 },
990 {
991 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
992 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
993 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
994 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
995 },
996 },
997
998 /* US Robotics (3Com) PCI Modems */
999 { /* "US Robotics (3Com) 3CP5610 PCI 16550 Modem", */
1000 { PCI_VENDOR_USR, PCI_PRODUCT_USR_3CP5610, 0, 0 },
1001 { 0xffff, 0xffff, 0, 0 },
1002 {
1003 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
1004 },
1005 },
1006
1007 /* IBM 33L4618: AT&T/Lucent Venus Modem */
1008 { /* "IBM 33L4618: AT&T/Lucent Venus Modem", */
1009 /* "Actiontec 56K PCI Master" */
1010 { PCI_VENDOR_LUCENT, PCI_PRODUCT_LUCENT_VENUSMODEM, 0, 0 },
1011 { 0xffff, 0xffff, 0, 0 },
1012 {
1013 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ },
1014 },
1015 },
1016
1017 /* Topic/SmartLink 5634PCV SurfRider */
1018 { /* "Topic/SmartLink 5634PCV SurfRider" */
1019 { PCI_VENDOR_TOPIC, PCI_PRODUCT_TOPIC_5634PCV, 0, 0 },
1020 { 0xffff, 0xffff, 0, 0 },
1021 {
1022 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
1023 },
1024 },
1025
1026 /* SD-LAB PCI I/O Card 4S */
1027 { /* "Syba Tech Ltd. PCI-4S" */
1028 { PCI_VENDOR_SYBA, PCI_PRODUCT_SYBA_4S, 0, 0 },
1029 { 0xffff, 0xffff, 0, 0 },
1030 {
1031 { PUC_PORT_TYPE_COM, 0x10, 0x3e8, COM_FREQ },
1032 { PUC_PORT_TYPE_COM, 0x10, 0x2e8, COM_FREQ },
1033 { PUC_PORT_TYPE_COM, 0x10, 0x3f8, COM_FREQ },
1034 { PUC_PORT_TYPE_COM, 0x10, 0x2f8, COM_FREQ },
1035 },
1036 },
1037
1038 /* SD-LAB PCI I/O Card 4S2P */
1039 { /* "Syba Tech Ltd. PCI-4S2P-550-ECP" */
1040 { PCI_VENDOR_SYBA, PCI_PRODUCT_SYBA_4S2P, 0, 0 },
1041 { 0xffff, 0xffff, 0, 0 },
1042 {
1043 { PUC_PORT_TYPE_COM, 0x10, 0x2e8, COM_FREQ },
1044 { PUC_PORT_TYPE_COM, 0x10, 0x2f8, COM_FREQ },
1045 { PUC_PORT_TYPE_LPT, 0x10, 0x000, 0x00 },
1046 { PUC_PORT_TYPE_COM, 0x10, 0x3e8, COM_FREQ },
1047 { PUC_PORT_TYPE_COM, 0x10, 0x3f8, COM_FREQ },
1048 { PUC_PORT_TYPE_LPT, 0x10, 0x000, 0x00 },
1049 },
1050 },
1051
1052 /* Moxa Technologies Co., Ltd. PCI I/O Card 4S RS232/422/485 */
1053 { /* "Moxa Technologies, Industio CP-114" */
1054 { PCI_VENDOR_MOXA, PCI_PRODUCT_MOXA_CP114, 0, 0 },
1055 { 0xffff, 0xffff, 0, 0 },
1056 {
1057 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
1058 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 },
1059 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 },
1060 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 },
1061 },
1062 },
1063
1064 /* Moxa Technologies Co., Ltd. PCI I/O Card 4S RS232/422/485 */
1065 { /* "Moxa Technologies, SmartIO C104H/PCI" */
1066 { PCI_VENDOR_MOXA, PCI_PRODUCT_MOXA_C104H, 0, 0 },
1067 { 0xffff, 0xffff, 0, 0 },
1068 {
1069 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
1070 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 },
1071 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 },
1072 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 },
1073 },
1074 },
1075
1076 /* Moxa Technologies Co., Ltd. PCI I/O Card 4S RS232 */
1077 { /* "Moxa Technologies, SmartIO CP104/PCI" */
1078 { PCI_VENDOR_MOXA, PCI_PRODUCT_MOXA_CP104, 0, 0 },
1079 { 0xffff, 0xffff, 0, 0 },
1080 {
1081 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
1082 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 },
1083 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 },
1084 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 },
1085 },
1086 },
1087
1088 /* Moxa Technologies Co., Ltd. PCI I/O Card 8S RS232 */
1089 { /* "Moxa Technologies, Industio C168H" */
1090 { PCI_VENDOR_MOXA, PCI_PRODUCT_MOXA_C168H, 0, 0 },
1091 { 0xffff, 0xffff, 0, 0 },
1092 {
1093 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
1094 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 },
1095 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 },
1096 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 },
1097 { PUC_PORT_TYPE_COM, 0x18, 0x20, COM_FREQ * 8 },
1098 { PUC_PORT_TYPE_COM, 0x18, 0x28, COM_FREQ * 8 },
1099 { PUC_PORT_TYPE_COM, 0x18, 0x30, COM_FREQ * 8 },
1100 { PUC_PORT_TYPE_COM, 0x18, 0x38, COM_FREQ * 8 },
1101 },
1102 },
1103
1104 /* NetMos 2S1P PCI 16C650 : 2S, 1P */
1105 { /* "NetMos NM9835 Dual UART and 1284 Printer port" */
1106 { PCI_VENDOR_NETMOS, PCI_PRODUCT_NETMOS_2S1P, 0, 0 },
1107 { 0xffff, 0xffff, 0, 0 },
1108 {
1109 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
1110 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
1111 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
1112 },
1113 },
1114
1115 /* NetMos 4S PCI 16C650 : 4S, 0P */
1116 { /* "NetMos NM9845 Quad UART" */
1117 { PCI_VENDOR_NETMOS, PCI_PRODUCT_NETMOS_4S, 0, 0 },
1118 { 0xffff, 0xffff, 0, 0 },
1119 {
1120 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
1121 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
1122 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
1123 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
1124 },
1125 },
1126
1127 /* NetMos 1P PCI: 1P */
1128 { /* "NetMos NM9805 1284 Printer Port" */
1129 { PCI_VENDOR_NETMOS, PCI_PRODUCT_NETMOS_1P, 0, 0 },
1130 { 0xffff, 0xffff, 0, 0 },
1131 {
1132 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
1133 },
1134 },
1135 { /* Sunix 4018A : 2-port parallel */
1136 { PCI_VENDOR_SUNIX, PCI_PRODUCT_SUNIX_4018A, 0, 0 },
1137 { 0xffff, 0xffff, 0, 0 },
1138 {
1139 { PUC_PORT_TYPE_LPT, 0x10, 0x00 },
1140 { PUC_PORT_TYPE_LPT, 0x18, 0x00 },
1141 },
1142 },
1143
1144 /*
1145 * SUNIX 40XX series of serial/parallel combo cards.
1146 * Tested with 4055A and 4065A.
1147 */
1148 { /* SUNIX 400X 1P */
1149 { PCI_VENDOR_SUNIX, PCI_PRODUCT_SUNIX_40XX, 0x1409, 0x4000 },
1150 { 0xffff, 0xffff, 0xffff, 0xeff0 },
1151 {
1152 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
1153 },
1154 },
1155
1156 { /* SUNIX 401X 2P */
1157 { PCI_VENDOR_SUNIX, PCI_PRODUCT_SUNIX_40XX, 0x1409, 0x4010 },
1158 { 0xffff, 0xffff, 0xffff, 0xeff0 },
1159 {
1160 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
1161 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
1162 },
1163 },
1164
1165 { /* SUNIX 402X 1S */
1166 { PCI_VENDOR_SUNIX, PCI_PRODUCT_SUNIX_40XX, 0x1409, 0x4020 },
1167 { 0xffff, 0xffff, 0xffff, 0xeff0 },
1168 {
1169 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8},
1170 },
1171 },
1172
1173 { /* SUNIX 403X 2S */
1174 { PCI_VENDOR_SUNIX, PCI_PRODUCT_SUNIX_40XX, 0x1409, 0x4030 },
1175 { 0xffff, 0xffff, 0xffff, 0xeff0 },
1176 {
1177 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8},
1178 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8},
1179 },
1180 },
1181
1182 { /* SUNIX 405X 4S */
1183 { PCI_VENDOR_SUNIX, PCI_PRODUCT_SUNIX_40XX, 0x1409, 0x4050 },
1184 { 0xffff, 0xffff, 0xffff, 0xeff0 },
1185 {
1186 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8},
1187 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8},
1188 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ},
1189 { PUC_PORT_TYPE_COM, 0x14, 0x08, COM_FREQ},
1190 },
1191 },
1192
1193 { /* SUNIX 406X 8S */
1194 { PCI_VENDOR_SUNIX, PCI_PRODUCT_SUNIX_40XX, 0x1409, 0x4060 },
1195 { 0xffff, 0xffff, 0xffff, 0xeff0 },
1196 {
1197 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8},
1198 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8},
1199 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ},
1200 { PUC_PORT_TYPE_COM, 0x14, 0x08, COM_FREQ},
1201 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ},
1202 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ},
1203 { PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ},
1204 { PUC_PORT_TYPE_COM, 0x24, 0x00, COM_FREQ},
1205 },
1206 },
1207
1208 { /* SUNIX 407X 2S/1P */
1209 { PCI_VENDOR_SUNIX, PCI_PRODUCT_SUNIX_40XX, 0x1409, 0x4070 },
1210 { 0xffff, 0xffff, 0xffff, 0xeff0 },
1211 {
1212 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8},
1213 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8},
1214 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
1215 },
1216 },
1217
1218 { /* SUNIX 408X 2S/2P */
1219 { PCI_VENDOR_SUNIX, PCI_PRODUCT_SUNIX_40XX, 0x1409, 0x4080 },
1220 { 0xffff, 0xffff, 0xffff, 0xeff0 },
1221 {
1222 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8},
1223 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8},
1224 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
1225 { PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 },
1226 },
1227 },
1228
1229 { /* SUNIX 409X 4S/2P */
1230 { PCI_VENDOR_SUNIX, PCI_PRODUCT_SUNIX_40XX, 0x1409, 0x4090 },
1231 { 0xffff, 0xffff, 0xffff, 0xeff0 },
1232 {
1233 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8},
1234 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8},
1235 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ},
1236 { PUC_PORT_TYPE_COM, 0x14, 0x08, COM_FREQ},
1237 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
1238 { PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 },
1239 },
1240 },
1241
1242 /*
1243 * Boca Research Turbo Serial 654 (4 serial port) card.
1244 * Appears to be the same as Chase Research PLC PCI-FAST4 card,
1245 * same as Perle PCI-FAST4 Multi-Port serial card
1246 */
1247 { /* "Boca Turbo Serial 654 - IOP654" */
1248 { PCI_VENDOR_PLX, PCI_PRODUCT_PLX_9050, 0x12e0, 0x0031 },
1249 { 0xffff, 0xffff, 0xffff, 0xffff },
1250 {
1251 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 4 },
1252 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 4 },
1253 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 4 },
1254 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 4 },
1255 },
1256 },
1257
1258 /*
1259 * Boca Research Turbo Serial 658 (8 serial port) card.
1260 * Appears to be the same as Chase Research PLC PCI-FAST8 card
1261 * same as Perle PCI-FAST8 Multi-Port serial card
1262 */
1263 { /* "Boca Turbo Serial 658 - IOP658" */
1264 { PCI_VENDOR_PLX, PCI_PRODUCT_PLX_9050, 0x12e0, 0x0021 },
1265 { 0xffff, 0xffff, 0xffff, 0xffff },
1266 {
1267 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 4 },
1268 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 4 },
1269 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 4 },
1270 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 4 },
1271 { PUC_PORT_TYPE_COM, 0x18, 0x20, COM_FREQ * 4 },
1272 { PUC_PORT_TYPE_COM, 0x18, 0x28, COM_FREQ * 4 },
1273 { PUC_PORT_TYPE_COM, 0x18, 0x30, COM_FREQ * 4 },
1274 { PUC_PORT_TYPE_COM, 0x18, 0x38, COM_FREQ * 4 },
1275 },
1276 },
1277
1278 /* Cronyx Engineering Ltd. Omega-PCI (8 serial port) card. */
1279 { /* "Cronyx Omega-PCI" */
1280 { PCI_VENDOR_PLX, PCI_PRODUCT_PLX_CRONYX_OMEGA, 0, 0 },
1281 { 0xffff, 0xffff, 0, 0 },
1282 {
1283 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
1284 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ },
1285 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ },
1286 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ },
1287 { PUC_PORT_TYPE_COM, 0x18, 0x20, COM_FREQ },
1288 { PUC_PORT_TYPE_COM, 0x18, 0x28, COM_FREQ },
1289 { PUC_PORT_TYPE_COM, 0x18, 0x30, COM_FREQ },
1290 { PUC_PORT_TYPE_COM, 0x18, 0x38, COM_FREQ },
1291 },
1292 },
1293
1294 /* Avlab Technology, Inc. Low Profile PCI 4 Serial: 4S */
1295 { /* "Avlab Low Profile PCI 4 Serial" */
1296 { PCI_VENDOR_AVLAB, PCI_PRODUCT_AVLAB_LPPCI4S, 0, 0 },
1297 { 0xffff, 0xffff, 0, 0 },
1298 {
1299 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
1300 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
1301 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
1302 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
1303 },
1304 },
1305
1306 /* Avlab Technology, Inc. PCI 2 Serial: 2S */
1307 { /* "Avlab PCI 2 Serial" */
1308 { PCI_VENDOR_AVLAB, PCI_PRODUCT_AVLAB_PCI2S, 0, 0 },
1309 { 0xffff, 0xffff, 0, 0 },
1310 {
1311 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
1312 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
1313 },
1314 },
1315
1316 /* Digi International Digi Neo 4 Serial */
1317 {
1318 { PCI_VENDOR_DIGI, PCI_PRODUCT_DIGI_NEO4, 0, 0 },
1319 { 0xffff, 0xffff, 0, 0 },
1320 {
1321 { PUC_PORT_TYPE_COM, 0x10, 0x0000, COM_FREQ * 8 },
1322 { PUC_PORT_TYPE_COM, 0x10, 0x0200, COM_FREQ * 8 },
1323 { PUC_PORT_TYPE_COM, 0x10, 0x0400, COM_FREQ * 8 },
1324 { PUC_PORT_TYPE_COM, 0x10, 0x0600, COM_FREQ * 8 },
1325 },
1326 },
1327
1328 /* Digi International Digi Neo 8 Serial */
1329 {
1330 { PCI_VENDOR_DIGI, PCI_PRODUCT_DIGI_NEO8, 0, 0 },
1331 { 0xffff, 0xffff, 0, 0 },
1332 {
1333 { PUC_PORT_TYPE_COM, 0x10, 0x0000, COM_FREQ * 8 },
1334 { PUC_PORT_TYPE_COM, 0x10, 0x0200, COM_FREQ * 8 },
1335 { PUC_PORT_TYPE_COM, 0x10, 0x0400, COM_FREQ * 8 },
1336 { PUC_PORT_TYPE_COM, 0x10, 0x0600, COM_FREQ * 8 },
1337 { PUC_PORT_TYPE_COM, 0x10, 0x0800, COM_FREQ * 8 },
1338 { PUC_PORT_TYPE_COM, 0x10, 0x0a00, COM_FREQ * 8 },
1339 { PUC_PORT_TYPE_COM, 0x10, 0x0c00, COM_FREQ * 8 },
1340 { PUC_PORT_TYPE_COM, 0x10, 0x0e00, COM_FREQ * 8 },
1341 },
1342 },
1343 { /* NULL, */
1344
1345 { 0, 0, 0, 0 },
1346 { 0, 0, 0, 0 },
1347 {
1348 { 0, 0, 0 },
1349 },
1350 }
1351 };