pucdata.c revision 1.35 1 /* $NetBSD: pucdata.c,v 1.35 2004/01/25 11:48:27 jdolecek Exp $ */
2
3 /*
4 * Copyright (c) 1998, 1999 Christopher G. Demetriou. All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:
9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer.
11 * 2. Redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in the
13 * documentation and/or other materials provided with the distribution.
14 * 3. All advertising materials mentioning features or use of this software
15 * must display the following acknowledgement:
16 * This product includes software developed by Christopher G. Demetriou
17 * for the NetBSD Project.
18 * 4. The name of the author may not be used to endorse or promote products
19 * derived from this software without specific prior written permission
20 *
21 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
22 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
23 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
24 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
25 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
26 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
30 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31 */
32
33 /*
34 * PCI "universal" communications card driver configuration data (used to
35 * match/attach the cards).
36 */
37
38 #include <sys/cdefs.h>
39 __KERNEL_RCSID(0, "$NetBSD: pucdata.c,v 1.35 2004/01/25 11:48:27 jdolecek Exp $");
40
41 #include <sys/param.h>
42 #include <sys/systm.h>
43 #include <sys/device.h>
44
45 #include <dev/pci/pcireg.h>
46 #include <dev/pci/pcivar.h>
47 #include <dev/pci/pucvar.h>
48 #include <dev/ic/comreg.h>
49
50 const struct puc_device_description puc_devices[] = {
51 /*
52 * SUNIX 40XX series of serial/parallel combo cards.
53 * Tested with 4055A and 4065A.
54 */
55 { "SUNIX 400X 1P",
56 { 0x1409, 0x7168, 0x1409, 0x4000 },
57 { 0xffff, 0xffff, 0xffff, 0xeff0 },
58 {
59 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
60 },
61 },
62
63 { "SUNIX 401X 2P",
64 { 0x1409, 0x7168, 0x1409, 0x4010 },
65 { 0xffff, 0xffff, 0xffff, 0xeff0 },
66 {
67 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
68 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
69 },
70 },
71
72 { "SUNIX 402X 1S",
73 { 0x1409, 0x7168, 0x1409, 0x4020 },
74 { 0xffff, 0xffff, 0xffff, 0xeff0 },
75 {
76 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8},
77 },
78 },
79
80 { "SUNIX 403X 2S",
81 { 0x1409, 0x7168, 0x1409, 0x4030 },
82 { 0xffff, 0xffff, 0xffff, 0xeff0 },
83 {
84 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8},
85 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8},
86 },
87 },
88
89 { "SUNIX 405X 4S",
90 { 0x1409, 0x7168, 0x1409, 0x4050 },
91 { 0xffff, 0xffff, 0xffff, 0xeff0 },
92 {
93 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8},
94 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8},
95 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ},
96 { PUC_PORT_TYPE_COM, 0x14, 0x08, COM_FREQ},
97 },
98 },
99
100 { "SUNIX 406X 8S",
101 { 0x1409, 0x7168, 0x1409, 0x4060 },
102 { 0xffff, 0xffff, 0xffff, 0xeff0 },
103 {
104 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8},
105 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8},
106 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ},
107 { PUC_PORT_TYPE_COM, 0x14, 0x08, COM_FREQ},
108 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ},
109 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ},
110 { PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ},
111 { PUC_PORT_TYPE_COM, 0x24, 0x00, COM_FREQ},
112 },
113 },
114
115 { "SUNIX 407X 2S/1P",
116 { 0x1409, 0x7168, 0x1409, 0x4070 },
117 { 0xffff, 0xffff, 0xffff, 0xeff0 },
118 {
119 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8},
120 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8},
121 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
122 },
123 },
124
125 { "SUNIX 408X 2S/2P",
126 { 0x1409, 0x7168, 0x1409, 0x4080 },
127 { 0xffff, 0xffff, 0xffff, 0xeff0 },
128 {
129 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8},
130 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8},
131 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
132 { PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 },
133 },
134 },
135
136 { "SUNIX 409X 4S/2P",
137 { 0x1409, 0x7168, 0x1409, 0x4090 },
138 { 0xffff, 0xffff, 0xffff, 0xeff0 },
139 {
140 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8},
141 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8},
142 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ},
143 { PUC_PORT_TYPE_COM, 0x14, 0x08, COM_FREQ},
144 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
145 { PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 },
146 },
147 },
148
149 /*
150 * XXX no entry because I have no data:
151 * XXX Dolphin Peripherals 4006 (single parallel)
152 */
153
154 /*
155 * Dolphin Peripherals 4014 (dual parallel port) card. PLX 9050, with
156 * a seemingly-lame EEPROM setup that puts the Dolphin IDs
157 * into the subsystem fields, and claims that it's a
158 * network/misc (0x02/0x80) device.
159 */
160 { "Dolphin Peripherals 4014",
161 { 0x10b5, 0x9050, 0xd84d, 0x6810 },
162 { 0xffff, 0xffff, 0xffff, 0xffff },
163 {
164 { PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 },
165 { PUC_PORT_TYPE_LPT, 0x24, 0x00, 0x00 },
166 },
167 },
168
169 /*
170 * XXX Dolphin Peripherals 4025 (single serial)
171 * (clashes with Dolphin Peripherals 4036 (2s variant)
172 */
173
174 /*
175 * Dolphin Peripherals 4035 (dual serial port) card. PLX 9050, with
176 * a seemingly-lame EEPROM setup that puts the Dolphin IDs
177 * into the subsystem fields, and claims that it's a
178 * network/misc (0x02/0x80) device.
179 */
180 { "Dolphin Peripherals 4035",
181 { 0x10b5, 0x9050, 0xd84d, 0x6808 },
182 { 0xffff, 0xffff, 0xffff, 0xffff },
183 {
184 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
185 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
186 },
187 },
188
189 /*
190 * Dolphin Peripherals 4036 (dual serial port) card.
191 * (Dolpin 4025 has the same ID but only one port)
192 */
193 { "Dolphin Peripherals 4036",
194 { 0x1409, 0x7168, 0x0, 0x0 },
195 { 0xffff, 0xffff, 0x0, 0x0 },
196 {
197 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8},
198 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8},
199 },
200 },
201
202 /*
203 * XXX no entry because I have no data:
204 * XXX Dolphin Peripherals 4078 (dual serial and single parallel)
205 */
206
207
208 /*
209 * SIIG Boards.
210 *
211 * SIIG provides documentation for their boards at:
212 * <URL:http://www.siig.com/driver.htm>
213 *
214 * Please excuse the weird ordering, it's the order they
215 * use in their documentation.
216 */
217
218 /*
219 * SIIG "10x" family boards.
220 */
221
222 /* SIIG Cyber Serial PCI 16C550 (10x family): 1S */
223 { "SIIG Cyber Serial PCI 16C550 (10x family)",
224 { 0x131f, 0x1000, 0, 0 },
225 { 0xffff, 0xffff, 0, 0 },
226 {
227 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
228 },
229 },
230
231 /* SIIG Cyber Serial PCI 16C650 (10x family): 1S */
232 { "SIIG Cyber Serial PCI 16C650 (10x family)",
233 { 0x131f, 0x1001, 0, 0 },
234 { 0xffff, 0xffff, 0, 0 },
235 {
236 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
237 },
238 },
239
240 /* SIIG Cyber Serial PCI 16C850 (10x family): 1S */
241 { "SIIG Cyber Serial PCI 16C850 (10x family)",
242 { 0x131f, 0x1002, 0, 0 },
243 { 0xffff, 0xffff, 0, 0 },
244 {
245 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
246 },
247 },
248
249 /* SIIG Cyber I/O PCI 16C550 (10x family): 1S, 1P */
250 { "SIIG Cyber I/O PCI 16C550 (10x family)",
251 { 0x131f, 0x1010, 0, 0 },
252 { 0xffff, 0xffff, 0, 0 },
253 {
254 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
255 { PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 },
256 },
257 },
258
259 /* SIIG Cyber I/O PCI 16C650 (10x family): 1S, 1P */
260 { "SIIG Cyber I/O PCI 16C650 (10x family)",
261 { 0x131f, 0x1011, 0, 0 },
262 { 0xffff, 0xffff, 0, 0 },
263 {
264 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
265 { PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 },
266 },
267 },
268
269 /* SIIG Cyber I/O PCI 16C850 (10x family): 1S, 1P */
270 { "SIIG Cyber I/O PCI 16C850 (10x family)",
271 { 0x131f, 0x1012, 0, 0 },
272 { 0xffff, 0xffff, 0, 0 },
273 {
274 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
275 { PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 },
276 },
277 },
278
279 /* SIIG Cyber Parallel PCI (10x family): 1P */
280 { "SIIG Cyber Parallel PCI (10x family)",
281 { 0x131f, 0x1020, 0, 0 },
282 { 0xffff, 0xffff, 0, 0 },
283 {
284 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
285 },
286 },
287
288 /* SIIG Cyber Parallel Dual PCI (10x family): 2P */
289 { "SIIG Cyber Parallel Dual PCI (10x family)",
290 { 0x131f, 0x1021, 0, 0 },
291 { 0xffff, 0xffff, 0, 0 },
292 {
293 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
294 { PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 },
295 },
296 },
297
298 /* SIIG Cyber Serial Dual PCI 16C550 (10x family): 2S */
299 { "SIIG Cyber Serial Dual PCI 16C550 (10x family)",
300 { 0x131f, 0x1030, 0, 0 },
301 { 0xffff, 0xffff, 0, 0 },
302 {
303 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
304 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
305 },
306 },
307
308 /* SIIG Cyber Serial Dual PCI 16C650 (10x family): 2S */
309 { "SIIG Cyber Serial Dual PCI 16C650 (10x family)",
310 { 0x131f, 0x1031, 0, 0 },
311 { 0xffff, 0xffff, 0, 0 },
312 {
313 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
314 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
315 },
316 },
317
318 /* SIIG Cyber Serial Dual PCI 16C850 (10x family): 2S */
319 { "SIIG Cyber Serial Dual PCI 16C850 (10x family)",
320 { 0x131f, 0x1032, 0, 0 },
321 { 0xffff, 0xffff, 0, 0 },
322 {
323 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
324 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
325 },
326 },
327
328 /* SIIG Cyber 2S1P PCI 16C550 (10x family): 2S, 1P */
329 { "SIIG Cyber 2S1P PCI 16C550 (10x family)",
330 { 0x131f, 0x1034, 0, 0 }, /* XXX really? */
331 { 0xffff, 0xffff, 0, 0 },
332 {
333 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
334 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
335 { PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 },
336 },
337 },
338
339 /* SIIG Cyber 2S1P PCI 16C650 (10x family): 2S, 1P */
340 { "SIIG Cyber 2S1P PCI 16C650 (10x family)",
341 { 0x131f, 0x1035, 0, 0 }, /* XXX really? */
342 { 0xffff, 0xffff, 0, 0 },
343 {
344 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
345 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
346 { PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 },
347 },
348 },
349
350 /* SIIG Cyber 2S1P PCI 16C850 (10x family): 2S, 1P */
351 { "SIIG Cyber 2S1P PCI 16C850 (10x family)",
352 { 0x131f, 0x1036, 0, 0 }, /* XXX really? */
353 { 0xffff, 0xffff, 0, 0 },
354 {
355 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
356 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
357 { PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 },
358 },
359 },
360
361 /* SIIG Cyber 4S PCI 16C550 (10x family): 4S */
362 { "SIIG Cyber 4S PCI 16C550 (10x family)",
363 { 0x131f, 0x1050, 0, 0 },
364 { 0xffff, 0xffff, 0, 0 },
365 {
366 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
367 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
368 { PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ },
369 { PUC_PORT_TYPE_COM, 0x24, 0x00, COM_FREQ },
370 },
371 },
372
373 /* SIIG Cyber 4S PCI 16C650 (10x family): 4S */
374 { "SIIG Cyber 4S PCI 16C650 (10x family)",
375 { 0x131f, 0x1051, 0, 0 },
376 { 0xffff, 0xffff, 0, 0 },
377 {
378 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
379 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
380 { PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ },
381 { PUC_PORT_TYPE_COM, 0x24, 0x00, COM_FREQ },
382 },
383 },
384
385 /* SIIG Cyber 4S PCI 16C850 (10x family): 4S */
386 { "SIIG Cyber 4S PCI 16C850 (10x family)",
387 { 0x131f, 0x1052, 0, 0 },
388 { 0xffff, 0xffff, 0, 0 },
389 {
390 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
391 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
392 { PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ },
393 { PUC_PORT_TYPE_COM, 0x24, 0x00, COM_FREQ },
394 },
395 },
396
397 /*
398 * SIIG "20x" family boards.
399 */
400
401 /* SIIG Cyber Parallel PCI (20x family): 1P */
402 { "SIIG Cyber Parallel PCI (20x family)",
403 { 0x131f, 0x2020, 0, 0 },
404 { 0xffff, 0xffff, 0, 0 },
405 {
406 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
407 },
408 },
409
410 /* SIIG Cyber Parallel Dual PCI (20x family): 2P */
411 { "SIIG Cyber Parallel Dual PCI (20x family)",
412 { 0x131f, 0x2021, 0, 0 },
413 { 0xffff, 0xffff, 0, 0 },
414 {
415 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
416 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
417 },
418 },
419
420 /* SIIG Cyber 2P1S PCI 16C550 (20x family): 1S, 2P */
421 { "SIIG Cyber 2P1S PCI 16C550 (20x family)",
422 { 0x131f, 0x2040, 0, 0 },
423 { 0xffff, 0xffff, 0, 0 },
424 {
425 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
426 { PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 },
427 { PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 },
428 },
429 },
430
431 /* SIIG Cyber 2P1S PCI 16C650 (20x family): 1S, 2P */
432 { "SIIG Cyber 2P1S PCI 16C650 (20x family)",
433 { 0x131f, 0x2041, 0, 0 },
434 { 0xffff, 0xffff, 0, 0 },
435 {
436 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
437 { PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 },
438 { PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 },
439 },
440 },
441
442 /* SIIG Cyber 2P1S PCI 16C850 (20x family): 1S, 2P */
443 { "SIIG Cyber 2P1S PCI 16C850 (20x family)",
444 { 0x131f, 0x2042, 0, 0 },
445 { 0xffff, 0xffff, 0, 0 },
446 {
447 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
448 { PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 },
449 { PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 },
450 },
451 },
452
453 /* SIIG Cyber Serial PCI 16C550 (20x family): 1S */
454 { "SIIG Cyber Serial PCI 16C550 (20x family)",
455 { 0x131f, 0x2000, 0, 0 },
456 { 0xffff, 0xffff, 0, 0 },
457 {
458 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
459 },
460 },
461
462 /* SIIG Cyber Serial PCI 16C650 (20x family): 1S */
463 { "SIIG Cyber Serial PCI 16C650 (20x family)",
464 { 0x131f, 0x2001, 0, 0 },
465 { 0xffff, 0xffff, 0, 0 },
466 {
467 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
468 },
469 },
470
471 /* SIIG Cyber Serial PCI 16C850 (20x family): 1S */
472 { "SIIG Cyber Serial PCI 16C850 (20x family)",
473 { 0x131f, 0x2002, 0, 0 },
474 { 0xffff, 0xffff, 0, 0 },
475 {
476 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
477 },
478 },
479
480 /* SIIG Cyber I/O PCI 16C550 (20x family): 1S, 1P */
481 { "SIIG Cyber I/O PCI 16C550 (20x family)",
482 { 0x131f, 0x2010, 0, 0 },
483 { 0xffff, 0xffff, 0, 0 },
484 {
485 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
486 { PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 },
487 },
488 },
489
490 /* SIIG Cyber I/O PCI 16C650 (20x family): 1S, 1P */
491 { "SIIG Cyber I/O PCI 16C650 (20x family)",
492 { 0x131f, 0x2011, 0, 0 },
493 { 0xffff, 0xffff, 0, 0 },
494 {
495 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
496 { PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 },
497 },
498 },
499
500 /* SIIG Cyber I/O PCI 16C850 (20x family): 1S, 1P */
501 { "SIIG Cyber I/O PCI 16C850 (20x family)",
502 { 0x131f, 0x2012, 0, 0 },
503 { 0xffff, 0xffff, 0, 0 },
504 {
505 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
506 { PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 },
507 },
508 },
509
510 /* SIIG Cyber Serial Dual PCI 16C550 (20x family): 2S */
511 { "SIIG Cyber Serial Dual PCI 16C550 (20x family)",
512 { 0x131f, 0x2030, 0, 0 },
513 { 0xffff, 0xffff, 0, 0 },
514 {
515 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
516 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
517 },
518 },
519
520 /* SIIG Cyber Serial Dual PCI 16C650 (20x family): 2S */
521 { "SIIG Cyber Serial Dual PCI 16C650 (20x family)",
522 { 0x131f, 0x2031, 0, 0 },
523 { 0xffff, 0xffff, 0, 0 },
524 {
525 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
526 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
527 },
528 },
529
530 /* SIIG Cyber Serial Dual PCI 16C850 (20x family): 2S */
531 { "SIIG Cyber Serial Dual PCI 16C850 (20x family)",
532 { 0x131f, 0x2032, 0, 0 },
533 { 0xffff, 0xffff, 0, 0 },
534 {
535 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
536 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
537 },
538 },
539
540 /* SIIG Cyber 2S1P PCI 16C550 (20x family): 2S, 1P */
541 { "SIIG Cyber 2S1P PCI 16C550 (20x family)",
542 { 0x131f, 0x2060, 0, 0 },
543 { 0xffff, 0xffff, 0, 0 },
544 {
545 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
546 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
547 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
548 },
549 },
550
551 /* SIIG Cyber 2S1P PCI 16C650 (20x family): 2S, 1P */
552 { "SIIG Cyber 2S1P PCI 16C650 (20x family)",
553 { 0x131f, 0x2061, 0, 0 },
554 { 0xffff, 0xffff, 0, 0 },
555 {
556 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
557 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
558 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
559 },
560 },
561
562 /* SIIG Cyber 2S1P PCI 16C850 (20x family): 2S, 1P */
563 { "SIIG Cyber 2S1P PCI 16C850 (20x family)",
564 { 0x131f, 0x2062, 0, 0 },
565 { 0xffff, 0xffff, 0, 0 },
566 {
567 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
568 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
569 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
570 },
571 },
572
573 /* SIIG Cyber 4S PCI 16C550 (20x family): 4S */
574 { "SIIG Cyber 4S PCI 16C550 (20x family)",
575 { 0x131f, 0x2050, 0, 0 },
576 { 0xffff, 0xffff, 0, 0 },
577 {
578 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
579 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
580 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
581 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
582 },
583 },
584
585 /* SIIG Cyber 4S PCI 16C650 (20x family): 4S */
586 { "SIIG Cyber 4S PCI 16C650 (20x family)",
587 { 0x131f, 0x2051, 0, 0 },
588 { 0xffff, 0xffff, 0, 0 },
589 {
590 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
591 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
592 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
593 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
594 },
595 },
596
597 /* SIIG Cyber 4S PCI 16C850 (20x family): 4S */
598 { "SIIG Cyber 4S PCI 16C850 (20x family)",
599 { 0x131f, 0x2052, 0, 0 },
600 { 0xffff, 0xffff, 0, 0 },
601 {
602 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
603 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
604 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
605 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
606 },
607 },
608
609 /* SIIG Cyber PS8000 PCI 16C650 (20x family): 8S - 32 Byte FIFOs */
610 { "SIIG PS8000 8S PCI 16C650 (20x family)",
611 { 0x131f, 0x2081, 0, 0 },
612 { 0xffff, 0xffff, 0, 0 },
613 {
614 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
615 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
616 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
617 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
618 { PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ },
619 { PUC_PORT_TYPE_COM, 0x20, 0x08, COM_FREQ },
620 { PUC_PORT_TYPE_COM, 0x20, 0x10, COM_FREQ },
621 { PUC_PORT_TYPE_COM, 0x20, 0x18, COM_FREQ },
622 },
623 },
624
625 /* VScom PCI-400: 4S */
626 { "VScom PCI-400",
627 { 0x10b5, 0x1077, 0x10b5, 0x1077 },
628 { 0xffff, 0xffff, 0xffff, 0xffff },
629 {
630 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
631 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 },
632 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 },
633 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 },
634 },
635 },
636
637 /* VScom PCI-800: 8S */
638 { "VScom PCI-800",
639 { 0x10b5, 0x1076, 0x10b5, 0x1076 },
640 { 0xffff, 0xffff, 0xffff, 0xffff },
641 {
642 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
643 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 },
644 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 },
645 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 },
646 { PUC_PORT_TYPE_COM, 0x18, 0x20, COM_FREQ * 8 },
647 { PUC_PORT_TYPE_COM, 0x18, 0x28, COM_FREQ * 8 },
648 { PUC_PORT_TYPE_COM, 0x18, 0x30, COM_FREQ * 8 },
649 { PUC_PORT_TYPE_COM, 0x18, 0x38, COM_FREQ * 8 },
650 },
651 },
652
653 /*
654 * VScom PCI-800H. Uses 8 16950 UART, behind a PCI chips that offers
655 * 4 com port on PCI device 0 and 4 on PCI device 1. PCI device 0 has
656 * device ID 3 and PCI device 1 device ID 4.
657 */
658 { "Titan PCI-800H",
659 { 0x14d2, 0xa003, 0, 0 },
660 { 0xffff, 0xffff, 0, 0 },
661 {
662 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 },
663 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8 },
664 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 8 },
665 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 8 },
666 },
667 },
668 { "Titan PCI-800H",
669 { 0x14d2, 0xa004, 0, 0 },
670 { 0xffff, 0xffff, 0, 0 },
671 {
672 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 },
673 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8 },
674 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 8 },
675 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 8 },
676 },
677 },
678 { "Titan PCI-200H",
679 { 0x14d2, 0xa005, 0, 0 },
680 { 0xffff, 0xffff, 0, 0 },
681 {
682 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 },
683 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8 },
684 },
685 },
686 { "Titan PCI-800L",
687 { 0x14d2, 0x8080, 0, 0 },
688 { 0xffff, 0xffff, 0, 0 },
689 {
690 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ * 8 },
691 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
692 { PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ * 8 },
693 { PUC_PORT_TYPE_COM, 0x20, 0x08, COM_FREQ * 8 },
694 { PUC_PORT_TYPE_COM, 0x20, 0x10, COM_FREQ * 8 },
695 { PUC_PORT_TYPE_COM, 0x20, 0x18, COM_FREQ * 8 },
696 { PUC_PORT_TYPE_COM, 0x20, 0x20, COM_FREQ * 8 },
697 { PUC_PORT_TYPE_COM, 0x20, 0x28, COM_FREQ * 8 },
698 },
699 },
700 /* NEC PK-UG-X001 K56flex PCI Modem card.
701 NEC MARTH bridge chip and Rockwell RCVDL56ACF/SP using. */
702 { "NEC PK-UG-X001 K56flex PCI Modem",
703 { 0x1033, 0x0074, 0x1033, 0x8014 },
704 { 0xffff, 0xffff, 0xffff, 0xffff },
705 {
706 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
707 },
708 },
709
710 /* NEC PK-UG-X008 */
711 { "NEC PK-UG-X008",
712 { 0x1033, 0x007d, 0x1033, 0x8012 },
713 { 0xffff, 0xffff, 0xffff, 0xffff },
714 {
715 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ},
716 },
717 },
718
719 /* Lava Computers 2SP-PCI */
720 { "Lava Computers 2SP-PCI parallel port",
721 { 0x1407, 0x8000, 0, 0 },
722 { 0xffff, 0xffff, 0, 0 },
723 {
724 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
725 },
726 },
727
728 /* Lava Computers 2SP-PCI and Quattro-PCI serial ports */
729 { "Lava Computers dual serial port",
730 { 0x1407, 0x0100, 0, 0 },
731 { 0xffff, 0xfffc, 0, 0 },
732 {
733 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
734 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
735 },
736 },
737
738 /* Lava Computers DSerial PCI serial ports */
739 { "Lava Computers serial port",
740 { 0x1407, 0x0110, 0, 0 },
741 { 0xffff, 0xfffc, 0, 0 },
742 {
743 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
744 },
745 },
746
747 /* Lava Computers Quattro-PCI serial ports */
748 { "Lava Quattro-PCI 4-port serial",
749 { 0x1407, 0x0120, 0, 0 },
750 { 0xffff, 0xfffc, 0, 0 },
751 {
752 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
753 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
754 },
755 },
756
757 /* Lava Computers Octopus-550 serial ports */
758 { "Lava Computers Octopus-550 8-port serial",
759 { 0x1407, 0x0180, 0, 0 },
760 { 0xffff, 0xfffc, 0, 0 },
761 {
762 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
763 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
764 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
765 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
766 },
767 },
768
769 /* US Robotics (3Com) PCI Modems */
770 { "US Robotics (3Com) 3CP5609 PCI 16550 Modem",
771 { 0x12b9, 0x1008, 0, 0 },
772 { 0xffff, 0xffff, 0, 0 },
773 {
774 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
775 },
776 },
777
778 /* Actiontec 56K PCI Master */
779 { "Actiontec 56K PCI Master",
780 { 0x11c1, 0x0480, 0x0, 0x0 },
781 { 0xffff, 0xffff, 0x0, 0x0 },
782 {
783 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
784 },
785 },
786
787 /*
788 * Boards with an Oxford Semiconductor chip.
789 *
790 * Oxford Semiconductor provides documentation for their chip at:
791 * <URL:http://www.oxsemi.com/products/uarts/index.html>
792 *
793 * As sold by Kouwell <URL:http://www.kouwell.com/>.
794 * I/O Flex PCI I/O Card Model-223 with 4 serial and 1 parallel ports.
795 */
796
797 /* Oxford Semiconductor OX16PCI952 PCI `950 UARTs - 128 byte FIFOs */
798 { "Oxford Semiconductor OX16PCI952 UARTs",
799 { 0x1415, 0x9521, 0, 0 },
800 { 0xffff, 0xffff, 0, 0 },
801 {
802 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
803 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
804 },
805 },
806
807 /* Oxford Semiconductor OX16PCI952 PCI Parallel port */
808 { "Oxford Semiconductor OX16PCI952 Parallel port",
809 { 0x1415, 0x9523, 0, 0 },
810 { 0xffff, 0xffff, 0, 0 },
811 {
812 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
813 },
814 },
815
816 /* Oxford Semiconductor OX16PCI954 PCI UARTs */
817 { "Oxford Semiconductor OX16PCI954 UARTs",
818 { 0x1415, 0x9501, 0, 0 },
819 { 0xffff, 0xffff, 0, 0 },
820 {
821 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
822 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ },
823 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ },
824 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ },
825 },
826 },
827
828 /* Oxford Semiconductor OX16PCI954 PCI Parallel port */
829 { "Oxford Semiconductor OX16PCI954 Parallel port",
830 { 0x1415, 0x9513, 0, 0 },
831 { 0xffff, 0xffff, 0, 0 },
832 {
833 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
834 },
835 },
836
837 /* NetMos 1P PCI : 1P */
838 { "NetMos NM9805 1284 Printer port",
839 { 0x9710, 0x9805, 0, 0 },
840 { 0xffff, 0xffff, 0, 0 },
841 {
842 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
843 },
844 },
845
846 /* NetMos 2P PCI : 2P */
847 { "NetMos NM9815 Dual 1284 Printer port",
848 { 0x9710, 0x9815, 0, 0 },
849 { 0xffff, 0xffff, 0, 0 },
850 {
851 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
852 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
853 },
854 },
855
856 /* NetMos 2S1P PCI 16C650 : 2S, 1P */
857 { "NetMos NM9835 Dual UART and 1284 Printer port",
858 { 0x9710, 0x9835, 0, 0 },
859 { 0xffff, 0xffff, 0, 0 },
860 {
861 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
862 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
863 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
864 },
865 },
866
867 /* NetMos 4S1P PCI NM9845 : 4S, 1P */
868 { "NetMos NM9845 Quad UART and 1284 Printer port",
869 { 0x9710, 0x9845, 0, 0 },
870 { 0xffff, 0xffff, 0, 0 },
871 {
872 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
873 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
874 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 4 },
875 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ * 4 },
876 { PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 },
877 },
878 },
879
880 /*
881 * This is the Middle Digital, Inc. PCI-Weasel, which
882 * uses a PCI interface implemented in FPGA.
883 */
884 { "Middle Digital, Inc. Weasel serial port",
885 { 0xdeaf, 0x9051, 0, 0 },
886 { 0xffff, 0xffff, 0, 0 },
887 {
888 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
889 },
890 },
891
892 /* Avlab Technology, Inc. Low Profile PCI 4 Serial: 4S */
893 { "Avlab Low Profile PCI 4 Serial",
894 { 0x14db, 0x2150, 0, 0 },
895 { 0xffff, 0xffff, 0, 0 },
896 {
897 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
898 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
899 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
900 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
901 },
902 },
903
904 /*
905 * Boca Research Turbo Serial 654 (4 serial port) card.
906 * Appears to be the same as Chase Research PLC PCI-FAST4
907 * and Perle PCI-FAST4 Multi-Port serial cards.
908 */
909 { "Boca Research Turbo Serial 654",
910 { 0x10b5, 0x9050, 0x12e0, 0x0031 },
911 { 0xffff, 0xffff, 0xffff, 0xffff },
912 {
913 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 4 },
914 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 4 },
915 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 4 },
916 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 4 },
917 },
918 },
919
920 /*
921 * Boca Research Turbo Serial 658 (8 serial port) card.
922 * Appears to be the same as Chase Research PLC PCI-FAST8
923 * and Perle PCI-FAST8 Multi-Port serial cards.
924 */
925 { "Boca Research Turbo Serial 658",
926 { 0x10b5, 0x9050, 0x12e0, 0x0021 },
927 { 0xffff, 0xffff, 0xffff, 0xffff },
928 {
929 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 4 },
930 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 4 },
931 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 4 },
932 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 4 },
933 { PUC_PORT_TYPE_COM, 0x18, 0x20, COM_FREQ * 4 },
934 { PUC_PORT_TYPE_COM, 0x18, 0x28, COM_FREQ * 4 },
935 { PUC_PORT_TYPE_COM, 0x18, 0x30, COM_FREQ * 4 },
936 { PUC_PORT_TYPE_COM, 0x18, 0x38, COM_FREQ * 4 },
937 },
938 },
939
940 { 0 }
941 };
942