pucdata.c revision 1.51 1 /* $NetBSD: pucdata.c,v 1.51 2007/01/28 21:44:29 chs 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.51 2007/01/28 21:44:29 chs 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,
228 (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR1 },
229 },
230 },
231
232 /* SIIG Cyber Serial PCI 16C650 (10x family): 1S */
233 { "SIIG Cyber Serial PCI 16C650 (10x family)",
234 { 0x131f, 0x1001, 0, 0 },
235 { 0xffff, 0xffff, 0, 0 },
236 {
237 { PUC_PORT_TYPE_COM, 0x18, 0x00,
238 (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR1 },
239 },
240 },
241
242 /* SIIG Cyber Serial PCI 16C850 (10x family): 1S */
243 { "SIIG Cyber Serial PCI 16C850 (10x family)",
244 { 0x131f, 0x1002, 0, 0 },
245 { 0xffff, 0xffff, 0, 0 },
246 {
247 { PUC_PORT_TYPE_COM, 0x18, 0x00,
248 (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR1 },
249 },
250 },
251
252 /* SIIG Cyber I/O PCI 16C550 (10x family): 1S, 1P */
253 { "SIIG Cyber I/O PCI 16C550 (10x family)",
254 { 0x131f, 0x1010, 0, 0 },
255 { 0xffff, 0xffff, 0, 0 },
256 {
257 { PUC_PORT_TYPE_COM, 0x18, 0x00,
258 (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR0 },
259 { PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 },
260 },
261 },
262
263 /* SIIG Cyber I/O PCI 16C650 (10x family): 1S, 1P */
264 { "SIIG Cyber I/O PCI 16C650 (10x family)",
265 { 0x131f, 0x1011, 0, 0 },
266 { 0xffff, 0xffff, 0, 0 },
267 {
268 { PUC_PORT_TYPE_COM, 0x18, 0x00,
269 (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR0 },
270 { PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 },
271 },
272 },
273
274 /* SIIG Cyber I/O PCI 16C850 (10x family): 1S, 1P */
275 { "SIIG Cyber I/O PCI 16C850 (10x family)",
276 { 0x131f, 0x1012, 0, 0 },
277 { 0xffff, 0xffff, 0, 0 },
278 {
279 { PUC_PORT_TYPE_COM, 0x18, 0x00,
280 (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR0 },
281 { PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 },
282 },
283 },
284
285 /* SIIG Cyber Parallel PCI (10x family): 1P */
286 { "SIIG Cyber Parallel PCI (10x family)",
287 { 0x131f, 0x1020, 0, 0 },
288 { 0xffff, 0xffff, 0, 0 },
289 {
290 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
291 },
292 },
293
294 /* SIIG Cyber Parallel Dual PCI (10x family): 2P */
295 { "SIIG Cyber Parallel Dual PCI (10x family)",
296 { 0x131f, 0x1021, 0, 0 },
297 { 0xffff, 0xffff, 0, 0 },
298 {
299 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
300 { PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 },
301 },
302 },
303
304 /* SIIG Cyber Serial Dual PCI 16C550 (10x family): 2S */
305 { "SIIG Cyber Serial Dual PCI 16C550 (10x family)",
306 { 0x131f, 0x1030, 0, 0 },
307 { 0xffff, 0xffff, 0, 0 },
308 {
309 { PUC_PORT_TYPE_COM, 0x18, 0x00,
310 (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR2 },
311 { PUC_PORT_TYPE_COM, 0x1c, 0x00,
312 (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR3 },
313 },
314 },
315
316 /* SIIG Cyber Serial Dual PCI 16C650 (10x family): 2S */
317 { "SIIG Cyber Serial Dual PCI 16C650 (10x family)",
318 { 0x131f, 0x1031, 0, 0 },
319 { 0xffff, 0xffff, 0, 0 },
320 {
321 { PUC_PORT_TYPE_COM, 0x18, 0x00,
322 (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR2 },
323 { PUC_PORT_TYPE_COM, 0x1c, 0x00,
324 (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR3 },
325 },
326 },
327
328 /* SIIG Cyber Serial Dual PCI 16C850 (10x family): 2S */
329 { "SIIG Cyber Serial Dual PCI 16C850 (10x family)",
330 { 0x131f, 0x1032, 0, 0 },
331 { 0xffff, 0xffff, 0, 0 },
332 {
333 { PUC_PORT_TYPE_COM, 0x18, 0x00,
334 (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR2 },
335 { PUC_PORT_TYPE_COM, 0x1c, 0x00,
336 (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR3 },
337 },
338 },
339
340 /* SIIG Cyber 2S1P PCI 16C550 (10x family): 2S, 1P */
341 { "SIIG Cyber 2S1P PCI 16C550 (10x family)",
342 { 0x131f, 0x1034, 0, 0 }, /* XXX really? */
343 { 0xffff, 0xffff, 0, 0 },
344 {
345 { PUC_PORT_TYPE_COM, 0x18, 0x00,
346 (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR2 },
347 { PUC_PORT_TYPE_COM, 0x1c, 0x00,
348 (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR3 },
349 { PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 },
350 },
351 },
352
353 /* SIIG Cyber 2S1P PCI 16C650 (10x family): 2S, 1P */
354 { "SIIG Cyber 2S1P PCI 16C650 (10x family)",
355 { 0x131f, 0x1035, 0, 0 }, /* XXX really? */
356 { 0xffff, 0xffff, 0, 0 },
357 {
358 { PUC_PORT_TYPE_COM, 0x18, 0x00,
359 (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR2 },
360 { PUC_PORT_TYPE_COM, 0x1c, 0x00,
361 (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR3 },
362 { PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 },
363 },
364 },
365
366 /* SIIG Cyber 2S1P PCI 16C850 (10x family): 2S, 1P */
367 { "SIIG Cyber 2S1P PCI 16C850 (10x family)",
368 { 0x131f, 0x1036, 0, 0 }, /* XXX really? */
369 { 0xffff, 0xffff, 0, 0 },
370 {
371 { PUC_PORT_TYPE_COM, 0x18, 0x00,
372 (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR2 },
373 { PUC_PORT_TYPE_COM, 0x1c, 0x00,
374 (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR3 },
375 { PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 },
376 },
377 },
378
379 /* SIIG Cyber 4S PCI 16C550 (10x family): 4S */
380 { "SIIG Cyber 4S PCI 16C550 (10x family)",
381 { 0x131f, 0x1050, 0, 0 },
382 { 0xffff, 0xffff, 0, 0 },
383 {
384 { PUC_PORT_TYPE_COM, 0x18, 0x00,
385 (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR0 },
386 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ * 8 },
387 { PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ * 8 },
388 { PUC_PORT_TYPE_COM, 0x24, 0x00, COM_FREQ * 8 },
389 },
390 },
391
392 /* SIIG Cyber 4S PCI 16C650 (10x family): 4S */
393 { "SIIG Cyber 4S PCI 16C650 (10x family)",
394 { 0x131f, 0x1051, 0, 0 },
395 { 0xffff, 0xffff, 0, 0 },
396 {
397 { PUC_PORT_TYPE_COM, 0x18, 0x00,
398 (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR0 },
399 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ * 8 },
400 { PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ * 8 },
401 { PUC_PORT_TYPE_COM, 0x24, 0x00, COM_FREQ * 8 },
402 },
403 },
404
405 /* SIIG Cyber 4S PCI 16C850 (10x family): 4S */
406 { "SIIG Cyber 4S PCI 16C850 (10x family)",
407 { 0x131f, 0x1052, 0, 0 },
408 { 0xffff, 0xffff, 0, 0 },
409 {
410 { PUC_PORT_TYPE_COM, 0x18, 0x00,
411 (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR0 },
412 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ * 8 },
413 { PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ * 8 },
414 { PUC_PORT_TYPE_COM, 0x24, 0x00, COM_FREQ * 8 },
415 },
416 },
417
418 /*
419 * SIIG "20x" family boards.
420 */
421
422 /* SIIG Cyber Parallel PCI (20x family): 1P */
423 { "SIIG Cyber Parallel PCI (20x family)",
424 { 0x131f, 0x2020, 0, 0 },
425 { 0xffff, 0xffff, 0, 0 },
426 {
427 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
428 },
429 },
430
431 /* SIIG Cyber Parallel Dual PCI (20x family): 2P */
432 { "SIIG Cyber Parallel Dual PCI (20x family)",
433 { 0x131f, 0x2021, 0, 0 },
434 { 0xffff, 0xffff, 0, 0 },
435 {
436 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
437 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
438 },
439 },
440
441 /* SIIG Cyber 2P1S PCI 16C550 (20x family): 1S, 2P */
442 { "SIIG Cyber 2P1S PCI 16C550 (20x family)",
443 { 0x131f, 0x2040, 0, 0 },
444 { 0xffff, 0xffff, 0, 0 },
445 {
446 { PUC_PORT_TYPE_COM, 0x10, 0x00,
447 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
448 { PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 },
449 { PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 },
450 },
451 },
452
453 /* SIIG Cyber 2P1S PCI 16C650 (20x family): 1S, 2P */
454 { "SIIG Cyber 2P1S PCI 16C650 (20x family)",
455 { 0x131f, 0x2041, 0, 0 },
456 { 0xffff, 0xffff, 0, 0 },
457 {
458 { PUC_PORT_TYPE_COM, 0x10, 0x00,
459 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
460 { PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 },
461 { PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 },
462 },
463 },
464
465 /* SIIG Cyber 2P1S PCI 16C850 (20x family): 1S, 2P */
466 { "SIIG Cyber 2P1S PCI 16C850 (20x family)",
467 { 0x131f, 0x2042, 0, 0 },
468 { 0xffff, 0xffff, 0, 0 },
469 {
470 { PUC_PORT_TYPE_COM, 0x10, 0x00,
471 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
472 { PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 },
473 { PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 },
474 },
475 },
476
477 /* SIIG Cyber Serial PCI 16C550 (20x family): 1S */
478 { "SIIG Cyber Serial PCI 16C550 (20x family)",
479 { 0x131f, 0x2000, 0, 0 },
480 { 0xffff, 0xffff, 0, 0 },
481 {
482 { PUC_PORT_TYPE_COM, 0x10, 0x00,
483 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
484 },
485 },
486
487 /* SIIG Cyber Serial PCI 16C650 (20x family): 1S */
488 { "SIIG Cyber Serial PCI 16C650 (20x family)",
489 { 0x131f, 0x2001, 0, 0 },
490 { 0xffff, 0xffff, 0, 0 },
491 {
492 { PUC_PORT_TYPE_COM, 0x10, 0x00,
493 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
494 },
495 },
496
497 /* SIIG Cyber Serial PCI 16C850 (20x family): 1S */
498 { "SIIG Cyber Serial PCI 16C850 (20x family)",
499 { 0x131f, 0x2002, 0, 0 },
500 { 0xffff, 0xffff, 0, 0 },
501 {
502 { PUC_PORT_TYPE_COM, 0x10, 0x00,
503 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
504 },
505 },
506
507 /* SIIG Cyber I/O PCI 16C550 (20x family): 1S, 1P */
508 { "SIIG Cyber I/O PCI 16C550 (20x family)",
509 { 0x131f, 0x2010, 0, 0 },
510 { 0xffff, 0xffff, 0, 0 },
511 {
512 { PUC_PORT_TYPE_COM, 0x10, 0x00,
513 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
514 { PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 },
515 },
516 },
517
518 /* SIIG Cyber I/O PCI 16C650 (20x family): 1S, 1P */
519 { "SIIG Cyber I/O PCI 16C650 (20x family)",
520 { 0x131f, 0x2011, 0, 0 },
521 { 0xffff, 0xffff, 0, 0 },
522 {
523 { PUC_PORT_TYPE_COM, 0x10, 0x00,
524 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
525 { PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 },
526 },
527 },
528
529 /* SIIG Cyber I/O PCI 16C850 (20x family): 1S, 1P */
530 { "SIIG Cyber I/O PCI 16C850 (20x family)",
531 { 0x131f, 0x2012, 0, 0 },
532 { 0xffff, 0xffff, 0, 0 },
533 {
534 { PUC_PORT_TYPE_COM, 0x10, 0x00,
535 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
536 { PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 },
537 },
538 },
539
540 /* SIIG Cyber Serial Dual PCI 16C550 (20x family): 2S */
541 { "SIIG Cyber Serial Dual PCI 16C550 (20x family)",
542 { 0x131f, 0x2030, 0, 0 },
543 { 0xffff, 0xffff, 0, 0 },
544 {
545 { PUC_PORT_TYPE_COM, 0x10, 0x00,
546 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
547 { PUC_PORT_TYPE_COM, 0x14, 0x00,
548 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR1 },
549 },
550 },
551
552 /* SIIG Cyber Serial Dual PCI 16C650 (20x family): 2S */
553 { "SIIG Cyber Serial Dual PCI 16C650 (20x family)",
554 { 0x131f, 0x2031, 0, 0 },
555 { 0xffff, 0xffff, 0, 0 },
556 {
557 { PUC_PORT_TYPE_COM, 0x10, 0x00,
558 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
559 { PUC_PORT_TYPE_COM, 0x14, 0x00,
560 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR1 },
561 },
562 },
563
564 /* SIIG Cyber Serial Dual PCI 16C850 (20x family): 2S */
565 { "SIIG Cyber Serial Dual PCI 16C850 (20x family)",
566 { 0x131f, 0x2032, 0, 0 },
567 { 0xffff, 0xffff, 0, 0 },
568 {
569 { PUC_PORT_TYPE_COM, 0x10, 0x00,
570 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
571 { PUC_PORT_TYPE_COM, 0x14, 0x00,
572 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR1 },
573 },
574 },
575
576 /* SIIG Cyber 2S1P PCI 16C550 (20x family): 2S, 1P */
577 { "SIIG Cyber 2S1P PCI 16C550 (20x family)",
578 { 0x131f, 0x2060, 0, 0 },
579 { 0xffff, 0xffff, 0, 0 },
580 {
581 { PUC_PORT_TYPE_COM, 0x10, 0x00,
582 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
583 { PUC_PORT_TYPE_COM, 0x14, 0x00,
584 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR1 },
585 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
586 },
587 },
588
589 /* SIIG Cyber 2S1P PCI 16C650 (20x family): 2S, 1P */
590 { "SIIG Cyber 2S1P PCI 16C650 (20x family)",
591 { 0x131f, 0x2061, 0, 0 },
592 { 0xffff, 0xffff, 0, 0 },
593 {
594 { PUC_PORT_TYPE_COM, 0x10, 0x00,
595 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
596 { PUC_PORT_TYPE_COM, 0x14, 0x00,
597 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR1 },
598 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
599 },
600 },
601
602 /* SIIG Cyber 2S1P PCI 16C850 (20x family): 2S, 1P */
603 { "SIIG Cyber 2S1P PCI 16C850 (20x family)",
604 { 0x131f, 0x2062, 0, 0 },
605 { 0xffff, 0xffff, 0, 0 },
606 {
607 { PUC_PORT_TYPE_COM, 0x10, 0x00,
608 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
609 { PUC_PORT_TYPE_COM, 0x14, 0x00,
610 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR1 },
611 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
612 },
613 },
614
615 /* SIIG Cyber 4S PCI 16C550 (20x family): 4S */
616 { "SIIG Cyber 4S PCI 16C550 (20x family)",
617 { 0x131f, 0x2050, 0, 0 },
618 { 0xffff, 0xffff, 0, 0 },
619 {
620 { PUC_PORT_TYPE_COM, 0x10, 0x00,
621 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
622 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ * 8 },
623 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
624 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ * 8 },
625 },
626 },
627
628 /* SIIG Cyber 4S PCI 16C650 (20x family): 4S */
629 { "SIIG Cyber 4S PCI 16C650 (20x family)",
630 { 0x131f, 0x2051, 0, 0 },
631 { 0xffff, 0xffff, 0, 0 },
632 {
633 { PUC_PORT_TYPE_COM, 0x10, 0x00,
634 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
635 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ * 8 },
636 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
637 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ * 8 },
638 },
639 },
640
641 /* SIIG Cyber 4S PCI 16C850 (20x family): 4S */
642 { "SIIG Cyber 4S PCI 16C850 (20x family)",
643 { 0x131f, 0x2052, 0, 0 },
644 { 0xffff, 0xffff, 0, 0 },
645 {
646 { PUC_PORT_TYPE_COM, 0x10, 0x00,
647 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
648 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ * 8 },
649 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
650 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ * 8 },
651 },
652 },
653
654 /* SIIG PS8000 PCI 8S 16C550 (20x family): 8S - 16 Byte FIFOs */
655 { "SIIG PS8000 PCI 8S 16C550 (20x family)",
656 { 0x131f, 0x2080, 0, 0 },
657 { 0xffff, 0xffff, 0, 0 },
658 {
659 { PUC_PORT_TYPE_COM, 0x10, 0x00,
660 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
661 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ * 8 },
662 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
663 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ * 8 },
664 { PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ * 8 },
665 { PUC_PORT_TYPE_COM, 0x20, 0x08, COM_FREQ * 8 },
666 { PUC_PORT_TYPE_COM, 0x20, 0x10, COM_FREQ * 8 },
667 { PUC_PORT_TYPE_COM, 0x20, 0x18, COM_FREQ * 8 },
668 },
669 },
670
671 /* SIIG PS8000 PCI 8S 16C650 (20x family): 8S - 32 Byte FIFOs */
672 { "SIIG PS8000 PCI 8S 16C650 (20x family)",
673 { 0x131f, 0x2081, 0, 0 },
674 { 0xffff, 0xffff, 0, 0 },
675 {
676 { PUC_PORT_TYPE_COM, 0x10, 0x00,
677 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
678 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ * 8 },
679 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
680 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ * 8 },
681 { PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ * 8 },
682 { PUC_PORT_TYPE_COM, 0x20, 0x08, COM_FREQ * 8 },
683 { PUC_PORT_TYPE_COM, 0x20, 0x10, COM_FREQ * 8 },
684 { PUC_PORT_TYPE_COM, 0x20, 0x18, COM_FREQ * 8 },
685 },
686 },
687
688 /* SIIG PS8000 PCI 8S 16C850 (20x family): 8S - 128 Byte FIFOs */
689 { "SIIG PS8000 PCI 8S 16C850 (20x family)",
690 { 0x131f, 0x2082, 0, 0 },
691 { 0xffff, 0xffff, 0, 0 },
692 {
693 { PUC_PORT_TYPE_COM, 0x10, 0x00,
694 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
695 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ * 8 },
696 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
697 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ * 8 },
698 { PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ * 8 },
699 { PUC_PORT_TYPE_COM, 0x20, 0x08, COM_FREQ * 8 },
700 { PUC_PORT_TYPE_COM, 0x20, 0x10, COM_FREQ * 8 },
701 { PUC_PORT_TYPE_COM, 0x20, 0x18, COM_FREQ * 8 },
702 },
703 },
704 /* VScom PCI-200: 2S */
705 { "VScom PCI-200",
706 { 0x10b5, 0x1103, 0x10b5, 0x1103 },
707 { 0xffff, 0xffff, 0xffff, 0xffff },
708 {
709 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
710 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ * 8 },
711 },
712 },
713
714 /* VScom PCI-400: 4S */
715 { "VScom PCI-400",
716 { 0x10b5, 0x1077, 0x10b5, 0x1077 },
717 { 0xffff, 0xffff, 0xffff, 0xffff },
718 {
719 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
720 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 },
721 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 },
722 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 },
723 },
724 },
725
726 /* VScom PCI-800: 8S */
727 { "VScom PCI-800",
728 { 0x10b5, 0x1076, 0x10b5, 0x1076 },
729 { 0xffff, 0xffff, 0xffff, 0xffff },
730 {
731 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
732 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 },
733 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 },
734 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 },
735 { PUC_PORT_TYPE_COM, 0x18, 0x20, COM_FREQ * 8 },
736 { PUC_PORT_TYPE_COM, 0x18, 0x28, COM_FREQ * 8 },
737 { PUC_PORT_TYPE_COM, 0x18, 0x30, COM_FREQ * 8 },
738 { PUC_PORT_TYPE_COM, 0x18, 0x38, COM_FREQ * 8 },
739 },
740 },
741
742 { "Titan PCI-010HV2",
743 { 0x14d2, 0xe001, 0, 0 },
744 { 0xffff, 0xffff, 0, 0 },
745 {
746 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
747 },
748 },
749 { "Titan PCI-200HV2",
750 { 0x14d2, 0xe020, 0, 0 },
751 { 0xffff, 0xffff, 0, 0 },
752 {
753 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 },
754 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ * 8 },
755 },
756 },
757
758 /*
759 * VScom PCI-800H. Uses 8 16950 UART, behind a PCI chips that offers
760 * 4 com port on PCI device 0 and 4 on PCI device 1. PCI device 0 has
761 * device ID 3 and PCI device 1 device ID 4.
762 */
763 { "Titan PCI-800H",
764 { 0x14d2, 0xa003, 0, 0 },
765 { 0xffff, 0xffff, 0, 0 },
766 {
767 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 },
768 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8 },
769 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 8 },
770 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 8 },
771 },
772 },
773 { "Titan PCI-800H",
774 { 0x14d2, 0xa004, 0, 0 },
775 { 0xffff, 0xffff, 0, 0 },
776 {
777 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 },
778 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8 },
779 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 8 },
780 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 8 },
781 },
782 },
783 { "Titan PCI-200H",
784 { 0x14d2, 0xa005, 0, 0 },
785 { 0xffff, 0xffff, 0, 0 },
786 {
787 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 },
788 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8 },
789 },
790 },
791 { "Titan PCI-800L",
792 { 0x14d2, 0x8080, 0, 0 },
793 { 0xffff, 0xffff, 0, 0 },
794 {
795 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ * 8 },
796 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
797 { PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ * 8 },
798 { PUC_PORT_TYPE_COM, 0x20, 0x08, COM_FREQ * 8 },
799 { PUC_PORT_TYPE_COM, 0x20, 0x10, COM_FREQ * 8 },
800 { PUC_PORT_TYPE_COM, 0x20, 0x18, COM_FREQ * 8 },
801 { PUC_PORT_TYPE_COM, 0x20, 0x20, COM_FREQ * 8 },
802 { PUC_PORT_TYPE_COM, 0x20, 0x28, COM_FREQ * 8 },
803 },
804 },
805 /* NEC PK-UG-X001 K56flex PCI Modem card.
806 NEC MARTH bridge chip and Rockwell RCVDL56ACF/SP using. */
807 { "NEC PK-UG-X001 K56flex PCI Modem",
808 { 0x1033, 0x0074, 0x1033, 0x8014 },
809 { 0xffff, 0xffff, 0xffff, 0xffff },
810 {
811 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
812 },
813 },
814
815 /* NEC PK-UG-X008 */
816 { "NEC PK-UG-X008",
817 { 0x1033, 0x007d, 0x1033, 0x8012 },
818 { 0xffff, 0xffff, 0xffff, 0xffff },
819 {
820 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ},
821 },
822 },
823
824 /* Lava Computers 2SP-PCI */
825 { "Lava Computers 2SP-PCI parallel port",
826 { 0x1407, 0x8000, 0, 0 },
827 { 0xffff, 0xffff, 0, 0 },
828 {
829 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
830 },
831 },
832
833 /* Lava Computers 2SP-PCI and Quattro-PCI serial ports */
834 { "Lava Computers dual serial port",
835 { 0x1407, 0x0100, 0, 0 },
836 { 0xffff, 0xfffc, 0, 0 },
837 {
838 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
839 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
840 },
841 },
842
843 /* Lava Computers DSerial PCI serial ports */
844 { "Lava Computers serial port",
845 { 0x1407, 0x0110, 0, 0 },
846 { 0xffff, 0xfffc, 0, 0 },
847 {
848 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
849 },
850 },
851
852 /* Lava Computers Quattro-PCI serial ports */
853 { "Lava Quattro-PCI 4-port serial",
854 { 0x1407, 0x0120, 0, 0 },
855 { 0xffff, 0xfffc, 0, 0 },
856 {
857 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
858 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
859 },
860 },
861
862 /* Lava Computers Octopus-550 serial ports */
863 { "Lava Computers Octopus-550 8-port serial",
864 { 0x1407, 0x0180, 0, 0 },
865 { 0xffff, 0xfffc, 0, 0 },
866 {
867 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
868 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
869 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
870 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
871 },
872 },
873
874 /* US Robotics (3Com) PCI Modems */
875 { "US Robotics (3Com) 3CP5609 PCI 16550 Modem",
876 { 0x12b9, 0x1008, 0, 0 },
877 { 0xffff, 0xffff, 0, 0 },
878 {
879 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
880 },
881 },
882
883 /* Actiontec 56K PCI Master */
884 { "Actiontec 56K PCI Master",
885 { 0x11c1, 0x0480, 0x0, 0x0 },
886 { 0xffff, 0xffff, 0x0, 0x0 },
887 {
888 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
889 },
890 },
891
892 /*
893 * Boards with an Oxford Semiconductor chip.
894 *
895 * Oxford Semiconductor provides documentation for their chip at:
896 * <URL:http://www.oxsemi.com/products/uarts/index.html>
897 *
898 * As sold by Kouwell <URL:http://www.kouwell.com/>.
899 * I/O Flex PCI I/O Card Model-223 with 4 serial and 1 parallel ports.
900 */
901
902 /* Oxford Semiconductor OX16PCI952 PCI `950 UARTs - 128 byte FIFOs */
903 { "Oxford Semiconductor OX16PCI952 UARTs",
904 { 0x1415, 0x9521, 0, 0 },
905 { 0xffff, 0xffff, 0, 0 },
906 {
907 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
908 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
909 },
910 },
911
912 /* Oxford Semiconductor OX16PCI952 PCI Parallel port */
913 { "Oxford Semiconductor OX16PCI952 Parallel port",
914 { 0x1415, 0x9523, 0, 0 },
915 { 0xffff, 0xffff, 0, 0 },
916 {
917 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
918 },
919 },
920
921 /* Oxford Semiconductor OX16PCI954 PCI UARTs */
922 { "Oxford Semiconductor OX16PCI954 UARTs",
923 { 0x1415, 0x9501, 0, 0 },
924 { 0xffff, 0xffff, 0, 0 },
925 {
926 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
927 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ },
928 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ },
929 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ },
930 },
931 },
932
933 /* Oxford Semiconductor OX16PCI954 PCI Parallel port */
934 { "Oxford Semiconductor OX16PCI954 Parallel port",
935 { 0x1415, 0x9513, 0, 0 },
936 { 0xffff, 0xffff, 0, 0 },
937 {
938 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
939 },
940 },
941
942 /* Moxa Technologies Co., Ltd. PCI I/O Card 4S RS232/422/485 */
943 { "Moxa Technologies, SmartIO C104H/PCI",
944 { 0x1393, 0x1040, 0, 0 },
945 { 0xffff, 0xffff, 0, 0 },
946 {
947 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
948 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 },
949 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 },
950 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 },
951 },
952 },
953
954 /* Moxa Technologies Co., Ltd. PCI I/O Card 4S RS232 */
955 { "Moxa Technologies, SmartIO CP104/PCI",
956 { 0x1393, 0x1041, 0, 0 },
957 { 0xffff, 0xffff, 0, 0 },
958 {
959 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
960 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 },
961 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 },
962 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 },
963 },
964 },
965
966 /* Moxa Technologies Co., Ltd. PCI I/O Card 4S RS232 */
967 { "Moxa Technologies, SmartIO CP104-V2/PCI",
968 { 0x1393, 0x1042, 0, 0 },
969 { 0xffff, 0xffff, 0, 0 },
970 {
971 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
972 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 },
973 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 },
974 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 },
975 },
976 },
977
978 /* Moxa Technologies Co., Ltd. PCI I/O Card 4S RS232/422/485 */
979 { "Moxa Technologies, SmartIO CP-114/PCI",
980 { 0x1393, 0x1141, 0, 0 },
981 { 0xffff, 0xffff, 0, 0 },
982 {
983 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
984 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 },
985 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 },
986 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 },
987 },
988 },
989
990 /* Moxa Technologies Co., Ltd. PCI I/O Card 8S RS232 */
991 { "Moxa Technologies, SmartIO C168H/PCI",
992 { 0x1393, 0x1680, 0, 0 },
993 { 0xffff, 0xffff, 0, 0 },
994 {
995 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
996 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 },
997 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 },
998 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 },
999 { PUC_PORT_TYPE_COM, 0x18, 0x20, COM_FREQ * 8 },
1000 { PUC_PORT_TYPE_COM, 0x18, 0x28, COM_FREQ * 8 },
1001 { PUC_PORT_TYPE_COM, 0x18, 0x30, COM_FREQ * 8 },
1002 { PUC_PORT_TYPE_COM, 0x18, 0x38, COM_FREQ * 8 },
1003 },
1004 },
1005
1006 /* NetMos 1P PCI : 1P */
1007 { "NetMos NM9805 1284 Printer port",
1008 { 0x9710, 0x9805, 0, 0 },
1009 { 0xffff, 0xffff, 0, 0 },
1010 {
1011 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
1012 },
1013 },
1014
1015 /* NetMos 2P PCI : 2P */
1016 { "NetMos NM9815 Dual 1284 Printer port",
1017 { 0x9710, 0x9815, 0, 0 },
1018 { 0xffff, 0xffff, 0, 0 },
1019 {
1020 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
1021 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
1022 },
1023 },
1024
1025 /* NetMos 2S PCI NM9835 : 2S */
1026 { "NetMos NM9835 Dual UART",
1027 { 0x9710, 0x9835, 0x1000, 0x0002 },
1028 { 0xffff, 0xffff, 0xffff, 0xffff },
1029 {
1030 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
1031 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
1032 },
1033 },
1034
1035 /* NetMos 2S1P PCI 16C650 : 2S, 1P */
1036 { "NetMos NM9835 Dual UART and 1284 Printer port",
1037 { 0x9710, 0x9835, 0, 0 },
1038 { 0xffff, 0xffff, 0, 0 },
1039 {
1040 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
1041 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
1042 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
1043 },
1044 },
1045
1046 /* NetMos 4S1P PCI NM9845 : 4S, 1P */
1047 { "NetMos NM9845 Quad UART and 1284 Printer port",
1048 { 0x9710, 0x9845, 0x1000, 0x0014 },
1049 { 0xffff, 0xffff, 0xffff, 0xffff },
1050 {
1051 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
1052 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
1053 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
1054 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
1055 { PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 },
1056 },
1057 },
1058
1059 /* NetMos 6S PCI 16C650 : 6S, 0P */
1060 { "NetMos NM9845 6 UART",
1061 { 0x9710, 0x9845, 0x1000, 0x0006 },
1062 { 0xffff, 0xffff, 0xffff, 0xffff },
1063 {
1064 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
1065 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
1066 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
1067 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
1068 { PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ },
1069 { PUC_PORT_TYPE_COM, 0x24, 0x00, COM_FREQ },
1070 },
1071 },
1072
1073 /* NetMos 4S1P PCI NM9845 : 4S, 1P */
1074 { "NetMos NM9845 Quad UART and 1284 Printer port (unknown type)",
1075 { 0x9710, 0x9845, 0, 0 },
1076 { 0xffff, 0xffff, 0, 0 },
1077 {
1078 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
1079 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
1080 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
1081 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
1082 { PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 },
1083 },
1084 },
1085
1086 /* NetMos 4S1P PCI NM9855 : 4S, 1P */
1087 { "NetMos NM9855 Quad UART and 1284 Printer port (unknown type)",
1088 { 0x9710, 0x9855, 0x1000, 0x0014 },
1089 { 0xffff, 0xffff, 0xffff, 0xffff },
1090 {
1091 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
1092 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
1093 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
1094 { PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ },
1095 { PUC_PORT_TYPE_COM, 0x24, 0x00, COM_FREQ },
1096 },
1097 },
1098
1099 /*
1100 * This is the Middle Digital, Inc. PCI-Weasel, which
1101 * uses a PCI interface implemented in FPGA.
1102 */
1103 { "Middle Digital, Inc. Weasel serial port",
1104 { 0xdeaf, 0x9051, 0, 0 },
1105 { 0xffff, 0xffff, 0, 0 },
1106 {
1107 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
1108 },
1109 },
1110
1111 /* Avlab Technology, Inc. Low Profile PCI 4 Serial: 4S */
1112 { "Avlab Low Profile PCI 4 Serial",
1113 { 0x14db, 0x2150, 0, 0 },
1114 { 0xffff, 0xffff, 0, 0 },
1115 {
1116 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
1117 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
1118 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
1119 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
1120 },
1121 },
1122
1123 /*
1124 * Perle PCI-RAS 4 Modem ports
1125 */
1126 { "Perle Systems PCI-RAS 4 modem ports",
1127 { 0x10b5, 0x9030, 0x155f, 0xf001 },
1128 { 0xffff, 0xffff, 0xffff, 0xffff },
1129 {
1130 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 4 },
1131 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 4 },
1132 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 4 },
1133 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 4 },
1134 },
1135 },
1136
1137 /*
1138 * Perle PCI-RASV92 4 Modem ports
1139 */
1140 { "Perle Systems PCI-RASV92 4 modem ports",
1141 { 0x10b5, 0x9050, 0x155f, 0xf001 },
1142 { 0xffff, 0xffff, 0xffff, 0xffff },
1143 {
1144 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 4 },
1145 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 4 },
1146 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 4 },
1147 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 4 },
1148 },
1149 },
1150
1151 /*
1152 * Perle PCI-RAS 8 Modem ports
1153 */
1154 { "Perle Systems PCI-RAS 8 modem ports",
1155 { 0x10b5, 0x9030, 0x155f, 0xf010 },
1156 { 0xffff, 0xffff, 0xffff, 0xffff },
1157 {
1158 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 4 },
1159 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 4 },
1160 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 4 },
1161 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 4 },
1162 { PUC_PORT_TYPE_COM, 0x18, 0x20, COM_FREQ * 4 },
1163 { PUC_PORT_TYPE_COM, 0x18, 0x28, COM_FREQ * 4 },
1164 { PUC_PORT_TYPE_COM, 0x18, 0x30, COM_FREQ * 4 },
1165 { PUC_PORT_TYPE_COM, 0x18, 0x38, COM_FREQ * 4 },
1166 },
1167 },
1168
1169 /*
1170 * Perle PCI-RASV92 8 Modem ports
1171 */
1172 { "Perle Systems PCI-RASV92 8 modem ports",
1173 { 0x10b5, 0x9050, 0x155f, 0xf010 },
1174 { 0xffff, 0xffff, 0xffff, 0xffff },
1175 {
1176 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 4 },
1177 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 4 },
1178 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 4 },
1179 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 4 },
1180 { PUC_PORT_TYPE_COM, 0x18, 0x20, COM_FREQ * 4 },
1181 { PUC_PORT_TYPE_COM, 0x18, 0x28, COM_FREQ * 4 },
1182 { PUC_PORT_TYPE_COM, 0x18, 0x30, COM_FREQ * 4 },
1183 { PUC_PORT_TYPE_COM, 0x18, 0x38, COM_FREQ * 4 },
1184 },
1185 },
1186
1187 /*
1188 * Boca Research Turbo Serial 654 (4 serial port) card.
1189 * Appears to be the same as Chase Research PLC PCI-FAST4
1190 * and Perle PCI-FAST4 Multi-Port serial cards.
1191 */
1192 { "Boca Research Turbo Serial 654",
1193 { 0x10b5, 0x9050, 0x12e0, 0x0031 },
1194 { 0xffff, 0xffff, 0xffff, 0xffff },
1195 {
1196 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 4 },
1197 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 4 },
1198 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 4 },
1199 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 4 },
1200 },
1201 },
1202
1203 /*
1204 * Boca Research Turbo Serial 658 (8 serial port) card.
1205 * Appears to be the same as Chase Research PLC PCI-FAST8
1206 * and Perle PCI-FAST8 Multi-Port serial cards.
1207 */
1208 { "Boca Research Turbo Serial 658",
1209 { 0x10b5, 0x9050, 0x12e0, 0x0021 },
1210 { 0xffff, 0xffff, 0xffff, 0xffff },
1211 {
1212 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 4 },
1213 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 4 },
1214 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 4 },
1215 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 4 },
1216 { PUC_PORT_TYPE_COM, 0x18, 0x20, COM_FREQ * 4 },
1217 { PUC_PORT_TYPE_COM, 0x18, 0x28, COM_FREQ * 4 },
1218 { PUC_PORT_TYPE_COM, 0x18, 0x30, COM_FREQ * 4 },
1219 { PUC_PORT_TYPE_COM, 0x18, 0x38, COM_FREQ * 4 },
1220 },
1221 },
1222
1223 /*
1224 * Addi-Data APCI-7800 8-port serial card.
1225 * Uses an AMCC chip as PCI bridge.
1226 */
1227 { "Addi-Data APCI-7800",
1228 { 0x10e8, 0x818e, 0, 0 },
1229 { 0xffff, 0xffff, 0, 0 },
1230 {
1231 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
1232 { PUC_PORT_TYPE_COM, 0x14, 0x08, COM_FREQ },
1233 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
1234 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ },
1235 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
1236 { PUC_PORT_TYPE_COM, 0x1c, 0x08, COM_FREQ },
1237 { PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ },
1238 { PUC_PORT_TYPE_COM, 0x20, 0x08, COM_FREQ },
1239 },
1240 },
1241
1242 { "EXAR XR17D152",
1243 { 0x13a8, 0x0152, 0, 0 },
1244 { 0xffff, 0xffff, 0, 0 },
1245 {
1246 { PUC_PORT_TYPE_COM, 0x10, 0x0000, COM_FREQ * 8 },
1247 { PUC_PORT_TYPE_COM, 0x10, 0x0200, COM_FREQ * 8 },
1248 },
1249 },
1250 { "EXAR XR17D154",
1251 { 0x13a8, 0x0154, 0, 0 },
1252 { 0xffff, 0xffff, 0, 0 },
1253 {
1254 { PUC_PORT_TYPE_COM, 0x10, 0x0000, COM_FREQ * 8 },
1255 { PUC_PORT_TYPE_COM, 0x10, 0x0200, COM_FREQ * 8 },
1256 { PUC_PORT_TYPE_COM, 0x10, 0x0400, COM_FREQ * 8 },
1257 { PUC_PORT_TYPE_COM, 0x10, 0x0600, COM_FREQ * 8 },
1258 },
1259 },
1260 { "EXAR XR17D158",
1261 { 0x13a8, 0x0154, 0, 0 },
1262 { 0xffff, 0xffff, 0, 0 },
1263 {
1264 { PUC_PORT_TYPE_COM, 0x10, 0x0000, COM_FREQ * 8 },
1265 { PUC_PORT_TYPE_COM, 0x10, 0x0200, COM_FREQ * 8 },
1266 { PUC_PORT_TYPE_COM, 0x10, 0x0400, COM_FREQ * 8 },
1267 { PUC_PORT_TYPE_COM, 0x10, 0x0600, COM_FREQ * 8 },
1268 { PUC_PORT_TYPE_COM, 0x10, 0x0800, COM_FREQ * 8 },
1269 { PUC_PORT_TYPE_COM, 0x10, 0x0a00, COM_FREQ * 8 },
1270 { PUC_PORT_TYPE_COM, 0x10, 0x0c00, COM_FREQ * 8 },
1271 { PUC_PORT_TYPE_COM, 0x10, 0x0e00, COM_FREQ * 8 },
1272 },
1273 },
1274
1275 { .name = NULL },
1276 };
1277