pucdata.c revision 1.55 1 /* $NetBSD: pucdata.c,v 1.55 2008/09/06 22:36:40 rmind 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.55 2008/09/06 22:36:40 rmind Exp $");
40
41 #include <sys/param.h>
42 #include <sys/systm.h>
43 #include <sys/device.h>
44
45 #include <dev/pci/pcidevs.h>
46 #include <dev/pci/pcireg.h>
47 #include <dev/pci/pcivar.h>
48 #include <dev/pci/pucvar.h>
49 #include <dev/ic/comreg.h>
50
51 const struct puc_device_description puc_devices[] = {
52 /*
53 * SUNIX 40XX series of serial/parallel combo cards.
54 * Tested with 4055A and 4065A.
55 */
56 { "SUNIX 400X 1P",
57 { 0x1409, 0x7168, 0x1409, 0x4000 },
58 { 0xffff, 0xffff, 0xffff, 0xeff0 },
59 {
60 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
61 },
62 },
63
64 { "SUNIX 401X 2P",
65 { 0x1409, 0x7168, 0x1409, 0x4010 },
66 { 0xffff, 0xffff, 0xffff, 0xeff0 },
67 {
68 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
69 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
70 },
71 },
72
73 { "SUNIX 402X 1S",
74 { 0x1409, 0x7168, 0x1409, 0x4020 },
75 { 0xffff, 0xffff, 0xffff, 0xeff0 },
76 {
77 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8},
78 },
79 },
80
81 { "SUNIX 403X 2S",
82 { 0x1409, 0x7168, 0x1409, 0x4030 },
83 { 0xffff, 0xffff, 0xffff, 0xeff0 },
84 {
85 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8},
86 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8},
87 },
88 },
89
90 { "SUNIX 405X 4S",
91 { 0x1409, 0x7168, 0x1409, 0x4050 },
92 { 0xffff, 0xffff, 0xffff, 0xeff0 },
93 {
94 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8},
95 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8},
96 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ},
97 { PUC_PORT_TYPE_COM, 0x14, 0x08, COM_FREQ},
98 },
99 },
100
101 { "SUNIX 406X 8S",
102 { 0x1409, 0x7168, 0x1409, 0x4060 },
103 { 0xffff, 0xffff, 0xffff, 0xeff0 },
104 {
105 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8},
106 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8},
107 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ},
108 { PUC_PORT_TYPE_COM, 0x14, 0x08, COM_FREQ},
109 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ},
110 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ},
111 { PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ},
112 { PUC_PORT_TYPE_COM, 0x24, 0x00, COM_FREQ},
113 },
114 },
115
116 { "SUNIX 407X 2S/1P",
117 { 0x1409, 0x7168, 0x1409, 0x4070 },
118 { 0xffff, 0xffff, 0xffff, 0xeff0 },
119 {
120 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8},
121 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8},
122 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
123 },
124 },
125
126 { "SUNIX 408X 2S/2P",
127 { 0x1409, 0x7168, 0x1409, 0x4080 },
128 { 0xffff, 0xffff, 0xffff, 0xeff0 },
129 {
130 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8},
131 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8},
132 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
133 { PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 },
134 },
135 },
136
137 { "SUNIX 409X 4S/2P",
138 { 0x1409, 0x7168, 0x1409, 0x4090 },
139 { 0xffff, 0xffff, 0xffff, 0xeff0 },
140 {
141 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8},
142 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8},
143 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ},
144 { PUC_PORT_TYPE_COM, 0x14, 0x08, COM_FREQ},
145 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
146 { PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 },
147 },
148 },
149
150 /*
151 * XXX no entry because I have no data:
152 * XXX Dolphin Peripherals 4006 (single parallel)
153 */
154
155 /*
156 * Dolphin Peripherals 4014 (dual parallel port) card. PLX 9050, with
157 * a seemingly-lame EEPROM setup that puts the Dolphin IDs
158 * into the subsystem fields, and claims that it's a
159 * network/misc (0x02/0x80) device.
160 */
161 { "Dolphin Peripherals 4014",
162 { 0x10b5, 0x9050, 0xd84d, 0x6810 },
163 { 0xffff, 0xffff, 0xffff, 0xffff },
164 {
165 { PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 },
166 { PUC_PORT_TYPE_LPT, 0x24, 0x00, 0x00 },
167 },
168 },
169
170 /*
171 * XXX Dolphin Peripherals 4025 (single serial)
172 * (clashes with Dolphin Peripherals 4036 (2s variant)
173 */
174
175 /*
176 * Dolphin Peripherals 4035 (dual serial port) card. PLX 9050, with
177 * a seemingly-lame EEPROM setup that puts the Dolphin IDs
178 * into the subsystem fields, and claims that it's a
179 * network/misc (0x02/0x80) device.
180 */
181 { "Dolphin Peripherals 4035",
182 { 0x10b5, 0x9050, 0xd84d, 0x6808 },
183 { 0xffff, 0xffff, 0xffff, 0xffff },
184 {
185 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
186 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
187 },
188 },
189
190 /*
191 * Dolphin Peripherals 4036 (dual serial port) card.
192 * (Dolpin 4025 has the same ID but only one port)
193 */
194 { "Dolphin Peripherals 4036",
195 { 0x1409, 0x7168, 0x0, 0x0 },
196 { 0xffff, 0xffff, 0x0, 0x0 },
197 {
198 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8},
199 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8},
200 },
201 },
202
203 /*
204 * XXX no entry because I have no data:
205 * XXX Dolphin Peripherals 4078 (dual serial and single parallel)
206 */
207
208
209 /*
210 * SIIG Boards.
211 *
212 * SIIG provides documentation for their boards at:
213 * <URL:http://www.siig.com/driver.htm>
214 *
215 * Please excuse the weird ordering, it's the order they
216 * use in their documentation.
217 */
218
219 /*
220 * SIIG "10x" family boards.
221 */
222
223 /* SIIG Cyber Serial PCI 16C550 (10x family): 1S */
224 { "SIIG Cyber Serial PCI 16C550 (10x family)",
225 { 0x131f, 0x1000, 0, 0 },
226 { 0xffff, 0xffff, 0, 0 },
227 {
228 { PUC_PORT_TYPE_COM, 0x18, 0x00,
229 (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR1 },
230 },
231 },
232
233 /* SIIG Cyber Serial PCI 16C650 (10x family): 1S */
234 { "SIIG Cyber Serial PCI 16C650 (10x family)",
235 { 0x131f, 0x1001, 0, 0 },
236 { 0xffff, 0xffff, 0, 0 },
237 {
238 { PUC_PORT_TYPE_COM, 0x18, 0x00,
239 (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR1 },
240 },
241 },
242
243 /* SIIG Cyber Serial PCI 16C850 (10x family): 1S */
244 { "SIIG Cyber Serial PCI 16C850 (10x family)",
245 { 0x131f, 0x1002, 0, 0 },
246 { 0xffff, 0xffff, 0, 0 },
247 {
248 { PUC_PORT_TYPE_COM, 0x18, 0x00,
249 (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR1 },
250 },
251 },
252
253 /* SIIG Cyber I/O PCI 16C550 (10x family): 1S, 1P */
254 { "SIIG Cyber I/O PCI 16C550 (10x family)",
255 { 0x131f, 0x1010, 0, 0 },
256 { 0xffff, 0xffff, 0, 0 },
257 {
258 { PUC_PORT_TYPE_COM, 0x18, 0x00,
259 (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR0 },
260 { PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 },
261 },
262 },
263
264 /* SIIG Cyber I/O PCI 16C650 (10x family): 1S, 1P */
265 { "SIIG Cyber I/O PCI 16C650 (10x family)",
266 { 0x131f, 0x1011, 0, 0 },
267 { 0xffff, 0xffff, 0, 0 },
268 {
269 { PUC_PORT_TYPE_COM, 0x18, 0x00,
270 (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR0 },
271 { PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 },
272 },
273 },
274
275 /* SIIG Cyber I/O PCI 16C850 (10x family): 1S, 1P */
276 { "SIIG Cyber I/O PCI 16C850 (10x family)",
277 { 0x131f, 0x1012, 0, 0 },
278 { 0xffff, 0xffff, 0, 0 },
279 {
280 { PUC_PORT_TYPE_COM, 0x18, 0x00,
281 (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR0 },
282 { PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 },
283 },
284 },
285
286 /* SIIG Cyber Parallel PCI (10x family): 1P */
287 { "SIIG Cyber Parallel PCI (10x family)",
288 { 0x131f, 0x1020, 0, 0 },
289 { 0xffff, 0xffff, 0, 0 },
290 {
291 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
292 },
293 },
294
295 /* SIIG Cyber Parallel Dual PCI (10x family): 2P */
296 { "SIIG Cyber Parallel Dual PCI (10x family)",
297 { 0x131f, 0x1021, 0, 0 },
298 { 0xffff, 0xffff, 0, 0 },
299 {
300 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
301 { PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 },
302 },
303 },
304
305 /* SIIG Cyber Serial Dual PCI 16C550 (10x family): 2S */
306 { "SIIG Cyber Serial Dual PCI 16C550 (10x family)",
307 { 0x131f, 0x1030, 0, 0 },
308 { 0xffff, 0xffff, 0, 0 },
309 {
310 { PUC_PORT_TYPE_COM, 0x18, 0x00,
311 (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR2 },
312 { PUC_PORT_TYPE_COM, 0x1c, 0x00,
313 (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR3 },
314 },
315 },
316
317 /* SIIG Cyber Serial Dual PCI 16C650 (10x family): 2S */
318 { "SIIG Cyber Serial Dual PCI 16C650 (10x family)",
319 { 0x131f, 0x1031, 0, 0 },
320 { 0xffff, 0xffff, 0, 0 },
321 {
322 { PUC_PORT_TYPE_COM, 0x18, 0x00,
323 (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR2 },
324 { PUC_PORT_TYPE_COM, 0x1c, 0x00,
325 (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR3 },
326 },
327 },
328
329 /* SIIG Cyber Serial Dual PCI 16C850 (10x family): 2S */
330 { "SIIG Cyber Serial Dual PCI 16C850 (10x family)",
331 { 0x131f, 0x1032, 0, 0 },
332 { 0xffff, 0xffff, 0, 0 },
333 {
334 { PUC_PORT_TYPE_COM, 0x18, 0x00,
335 (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR2 },
336 { PUC_PORT_TYPE_COM, 0x1c, 0x00,
337 (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR3 },
338 },
339 },
340
341 /* SIIG Cyber 2S1P PCI 16C550 (10x family): 2S, 1P */
342 { "SIIG Cyber 2S1P PCI 16C550 (10x family)",
343 { 0x131f, 0x1034, 0, 0 }, /* XXX really? */
344 { 0xffff, 0xffff, 0, 0 },
345 {
346 { PUC_PORT_TYPE_COM, 0x18, 0x00,
347 (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR2 },
348 { PUC_PORT_TYPE_COM, 0x1c, 0x00,
349 (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR3 },
350 { PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 },
351 },
352 },
353
354 /* SIIG Cyber 2S1P PCI 16C650 (10x family): 2S, 1P */
355 { "SIIG Cyber 2S1P PCI 16C650 (10x family)",
356 { 0x131f, 0x1035, 0, 0 }, /* XXX really? */
357 { 0xffff, 0xffff, 0, 0 },
358 {
359 { PUC_PORT_TYPE_COM, 0x18, 0x00,
360 (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR2 },
361 { PUC_PORT_TYPE_COM, 0x1c, 0x00,
362 (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR3 },
363 { PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 },
364 },
365 },
366
367 /* SIIG Cyber 2S1P PCI 16C850 (10x family): 2S, 1P */
368 { "SIIG Cyber 2S1P PCI 16C850 (10x family)",
369 { 0x131f, 0x1036, 0, 0 }, /* XXX really? */
370 { 0xffff, 0xffff, 0, 0 },
371 {
372 { PUC_PORT_TYPE_COM, 0x18, 0x00,
373 (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR2 },
374 { PUC_PORT_TYPE_COM, 0x1c, 0x00,
375 (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR3 },
376 { PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 },
377 },
378 },
379
380 /* SIIG Cyber 4S PCI 16C550 (10x family): 4S */
381 { "SIIG Cyber 4S PCI 16C550 (10x family)",
382 { 0x131f, 0x1050, 0, 0 },
383 { 0xffff, 0xffff, 0, 0 },
384 {
385 { PUC_PORT_TYPE_COM, 0x18, 0x00,
386 (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR0 },
387 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ * 8 },
388 { PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ * 8 },
389 { PUC_PORT_TYPE_COM, 0x24, 0x00, COM_FREQ * 8 },
390 },
391 },
392
393 /* SIIG Cyber 4S PCI 16C650 (10x family): 4S */
394 { "SIIG Cyber 4S PCI 16C650 (10x family)",
395 { 0x131f, 0x1051, 0, 0 },
396 { 0xffff, 0xffff, 0, 0 },
397 {
398 { PUC_PORT_TYPE_COM, 0x18, 0x00,
399 (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR0 },
400 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ * 8 },
401 { PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ * 8 },
402 { PUC_PORT_TYPE_COM, 0x24, 0x00, COM_FREQ * 8 },
403 },
404 },
405
406 /* SIIG Cyber 4S PCI 16C850 (10x family): 4S */
407 { "SIIG Cyber 4S PCI 16C850 (10x family)",
408 { 0x131f, 0x1052, 0, 0 },
409 { 0xffff, 0xffff, 0, 0 },
410 {
411 { PUC_PORT_TYPE_COM, 0x18, 0x00,
412 (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR0 },
413 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ * 8 },
414 { PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ * 8 },
415 { PUC_PORT_TYPE_COM, 0x24, 0x00, COM_FREQ * 8 },
416 },
417 },
418
419 /*
420 * SIIG "20x" family boards.
421 */
422
423 /* SIIG Cyber Parallel PCI (20x family): 1P */
424 { "SIIG Cyber Parallel PCI (20x family)",
425 { 0x131f, 0x2020, 0, 0 },
426 { 0xffff, 0xffff, 0, 0 },
427 {
428 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
429 },
430 },
431
432 /* SIIG Cyber Parallel Dual PCI (20x family): 2P */
433 { "SIIG Cyber Parallel Dual PCI (20x family)",
434 { 0x131f, 0x2021, 0, 0 },
435 { 0xffff, 0xffff, 0, 0 },
436 {
437 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
438 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
439 },
440 },
441
442 /* SIIG Cyber 2P1S PCI 16C550 (20x family): 1S, 2P */
443 { "SIIG Cyber 2P1S PCI 16C550 (20x family)",
444 { 0x131f, 0x2040, 0, 0 },
445 { 0xffff, 0xffff, 0, 0 },
446 {
447 { PUC_PORT_TYPE_COM, 0x10, 0x00,
448 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
449 { PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 },
450 { PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 },
451 },
452 },
453
454 /* SIIG Cyber 2P1S PCI 16C650 (20x family): 1S, 2P */
455 { "SIIG Cyber 2P1S PCI 16C650 (20x family)",
456 { 0x131f, 0x2041, 0, 0 },
457 { 0xffff, 0xffff, 0, 0 },
458 {
459 { PUC_PORT_TYPE_COM, 0x10, 0x00,
460 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
461 { PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 },
462 { PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 },
463 },
464 },
465
466 /* SIIG Cyber 2P1S PCI 16C850 (20x family): 1S, 2P */
467 { "SIIG Cyber 2P1S PCI 16C850 (20x family)",
468 { 0x131f, 0x2042, 0, 0 },
469 { 0xffff, 0xffff, 0, 0 },
470 {
471 { PUC_PORT_TYPE_COM, 0x10, 0x00,
472 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
473 { PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 },
474 { PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 },
475 },
476 },
477
478 /* SIIG Cyber Serial PCI 16C550 (20x family): 1S */
479 { "SIIG Cyber Serial PCI 16C550 (20x family)",
480 { 0x131f, 0x2000, 0, 0 },
481 { 0xffff, 0xffff, 0, 0 },
482 {
483 { PUC_PORT_TYPE_COM, 0x10, 0x00,
484 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
485 },
486 },
487
488 /* SIIG Cyber Serial PCI 16C650 (20x family): 1S */
489 { "SIIG Cyber Serial PCI 16C650 (20x family)",
490 { 0x131f, 0x2001, 0, 0 },
491 { 0xffff, 0xffff, 0, 0 },
492 {
493 { PUC_PORT_TYPE_COM, 0x10, 0x00,
494 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
495 },
496 },
497
498 /* SIIG Cyber Serial PCI 16C850 (20x family): 1S */
499 { "SIIG Cyber Serial PCI 16C850 (20x family)",
500 { 0x131f, 0x2002, 0, 0 },
501 { 0xffff, 0xffff, 0, 0 },
502 {
503 { PUC_PORT_TYPE_COM, 0x10, 0x00,
504 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
505 },
506 },
507
508 /* SIIG Cyber I/O PCI 16C550 (20x family): 1S, 1P */
509 { "SIIG Cyber I/O PCI 16C550 (20x family)",
510 { 0x131f, 0x2010, 0, 0 },
511 { 0xffff, 0xffff, 0, 0 },
512 {
513 { PUC_PORT_TYPE_COM, 0x10, 0x00,
514 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
515 { PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 },
516 },
517 },
518
519 /* SIIG Cyber I/O PCI 16C650 (20x family): 1S, 1P */
520 { "SIIG Cyber I/O PCI 16C650 (20x family)",
521 { 0x131f, 0x2011, 0, 0 },
522 { 0xffff, 0xffff, 0, 0 },
523 {
524 { PUC_PORT_TYPE_COM, 0x10, 0x00,
525 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
526 { PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 },
527 },
528 },
529
530 /* SIIG Cyber I/O PCI 16C850 (20x family): 1S, 1P */
531 { "SIIG Cyber I/O PCI 16C850 (20x family)",
532 { 0x131f, 0x2012, 0, 0 },
533 { 0xffff, 0xffff, 0, 0 },
534 {
535 { PUC_PORT_TYPE_COM, 0x10, 0x00,
536 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
537 { PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 },
538 },
539 },
540
541 /* SIIG Cyber Serial Dual PCI 16C550 (20x family): 2S */
542 { "SIIG Cyber Serial Dual PCI 16C550 (20x family)",
543 { 0x131f, 0x2030, 0, 0 },
544 { 0xffff, 0xffff, 0, 0 },
545 {
546 { PUC_PORT_TYPE_COM, 0x10, 0x00,
547 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
548 { PUC_PORT_TYPE_COM, 0x14, 0x00,
549 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR1 },
550 },
551 },
552
553 /* SIIG Cyber Serial Dual PCI 16C650 (20x family): 2S */
554 { "SIIG Cyber Serial Dual PCI 16C650 (20x family)",
555 { 0x131f, 0x2031, 0, 0 },
556 { 0xffff, 0xffff, 0, 0 },
557 {
558 { PUC_PORT_TYPE_COM, 0x10, 0x00,
559 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
560 { PUC_PORT_TYPE_COM, 0x14, 0x00,
561 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR1 },
562 },
563 },
564
565 /* SIIG Cyber Serial Dual PCI 16C850 (20x family): 2S */
566 { "SIIG Cyber Serial Dual PCI 16C850 (20x family)",
567 { 0x131f, 0x2032, 0, 0 },
568 { 0xffff, 0xffff, 0, 0 },
569 {
570 { PUC_PORT_TYPE_COM, 0x10, 0x00,
571 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
572 { PUC_PORT_TYPE_COM, 0x14, 0x00,
573 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR1 },
574 },
575 },
576
577 /* SIIG Cyber 2S1P PCI 16C550 (20x family): 2S, 1P */
578 { "SIIG Cyber 2S1P PCI 16C550 (20x family)",
579 { 0x131f, 0x2060, 0, 0 },
580 { 0xffff, 0xffff, 0, 0 },
581 {
582 { PUC_PORT_TYPE_COM, 0x10, 0x00,
583 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
584 { PUC_PORT_TYPE_COM, 0x14, 0x00,
585 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR1 },
586 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
587 },
588 },
589
590 /* SIIG Cyber 2S1P PCI 16C650 (20x family): 2S, 1P */
591 { "SIIG Cyber 2S1P PCI 16C650 (20x family)",
592 { 0x131f, 0x2061, 0, 0 },
593 { 0xffff, 0xffff, 0, 0 },
594 {
595 { PUC_PORT_TYPE_COM, 0x10, 0x00,
596 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
597 { PUC_PORT_TYPE_COM, 0x14, 0x00,
598 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR1 },
599 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
600 },
601 },
602
603 /* SIIG Cyber 2S1P PCI 16C850 (20x family): 2S, 1P */
604 { "SIIG Cyber 2S1P PCI 16C850 (20x family)",
605 { 0x131f, 0x2062, 0, 0 },
606 { 0xffff, 0xffff, 0, 0 },
607 {
608 { PUC_PORT_TYPE_COM, 0x10, 0x00,
609 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
610 { PUC_PORT_TYPE_COM, 0x14, 0x00,
611 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR1 },
612 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
613 },
614 },
615
616 /* SIIG Cyber 4S PCI 16C550 (20x family): 4S */
617 { "SIIG Cyber 4S PCI 16C550 (20x family)",
618 { 0x131f, 0x2050, 0, 0 },
619 { 0xffff, 0xffff, 0, 0 },
620 {
621 { PUC_PORT_TYPE_COM, 0x10, 0x00,
622 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
623 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ * 8 },
624 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
625 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ * 8 },
626 },
627 },
628
629 /* SIIG Cyber 4S PCI 16C650 (20x family): 4S */
630 { "SIIG Cyber 4S PCI 16C650 (20x family)",
631 { 0x131f, 0x2051, 0, 0 },
632 { 0xffff, 0xffff, 0, 0 },
633 {
634 { PUC_PORT_TYPE_COM, 0x10, 0x00,
635 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
636 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ * 8 },
637 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
638 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ * 8 },
639 },
640 },
641
642 /* SIIG Cyber 4S PCI 16C850 (20x family): 4S */
643 { "SIIG Cyber 4S PCI 16C850 (20x family)",
644 { 0x131f, 0x2052, 0, 0 },
645 { 0xffff, 0xffff, 0, 0 },
646 {
647 { PUC_PORT_TYPE_COM, 0x10, 0x00,
648 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
649 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ * 8 },
650 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
651 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ * 8 },
652 },
653 },
654
655 /* SIIG PS8000 PCI 8S 16C550 (20x family): 8S - 16 Byte FIFOs */
656 { "SIIG PS8000 PCI 8S 16C550 (20x family)",
657 { 0x131f, 0x2080, 0, 0 },
658 { 0xffff, 0xffff, 0, 0 },
659 {
660 { PUC_PORT_TYPE_COM, 0x10, 0x00,
661 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
662 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ * 8 },
663 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
664 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ * 8 },
665 { PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ * 8 },
666 { PUC_PORT_TYPE_COM, 0x20, 0x08, COM_FREQ * 8 },
667 { PUC_PORT_TYPE_COM, 0x20, 0x10, COM_FREQ * 8 },
668 { PUC_PORT_TYPE_COM, 0x20, 0x18, COM_FREQ * 8 },
669 },
670 },
671
672 /* SIIG PS8000 PCI 8S 16C650 (20x family): 8S - 32 Byte FIFOs */
673 { "SIIG PS8000 PCI 8S 16C650 (20x family)",
674 { 0x131f, 0x2081, 0, 0 },
675 { 0xffff, 0xffff, 0, 0 },
676 {
677 { PUC_PORT_TYPE_COM, 0x10, 0x00,
678 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
679 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ * 8 },
680 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
681 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ * 8 },
682 { PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ * 8 },
683 { PUC_PORT_TYPE_COM, 0x20, 0x08, COM_FREQ * 8 },
684 { PUC_PORT_TYPE_COM, 0x20, 0x10, COM_FREQ * 8 },
685 { PUC_PORT_TYPE_COM, 0x20, 0x18, COM_FREQ * 8 },
686 },
687 },
688
689 /* SIIG PS8000 PCI 8S 16C850 (20x family): 8S - 128 Byte FIFOs */
690 { "SIIG PS8000 PCI 8S 16C850 (20x family)",
691 { 0x131f, 0x2082, 0, 0 },
692 { 0xffff, 0xffff, 0, 0 },
693 {
694 { PUC_PORT_TYPE_COM, 0x10, 0x00,
695 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
696 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ * 8 },
697 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
698 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ * 8 },
699 { PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ * 8 },
700 { PUC_PORT_TYPE_COM, 0x20, 0x08, COM_FREQ * 8 },
701 { PUC_PORT_TYPE_COM, 0x20, 0x10, COM_FREQ * 8 },
702 { PUC_PORT_TYPE_COM, 0x20, 0x18, COM_FREQ * 8 },
703 },
704 },
705 /* VScom PCI-200: 2S */
706 { "VScom PCI-200",
707 { 0x10b5, 0x1103, 0x10b5, 0x1103 },
708 { 0xffff, 0xffff, 0xffff, 0xffff },
709 {
710 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
711 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ * 8 },
712 },
713 },
714
715 /* VScom PCI-400: 4S */
716 { "VScom PCI-400",
717 { 0x10b5, 0x1077, 0x10b5, 0x1077 },
718 { 0xffff, 0xffff, 0xffff, 0xffff },
719 {
720 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
721 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 },
722 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 },
723 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 },
724 },
725 },
726
727 /* VScom PCI-800: 8S */
728 { "VScom PCI-800",
729 { 0x10b5, 0x1076, 0x10b5, 0x1076 },
730 { 0xffff, 0xffff, 0xffff, 0xffff },
731 {
732 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
733 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 },
734 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 },
735 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 },
736 { PUC_PORT_TYPE_COM, 0x18, 0x20, COM_FREQ * 8 },
737 { PUC_PORT_TYPE_COM, 0x18, 0x28, COM_FREQ * 8 },
738 { PUC_PORT_TYPE_COM, 0x18, 0x30, COM_FREQ * 8 },
739 { PUC_PORT_TYPE_COM, 0x18, 0x38, COM_FREQ * 8 },
740 },
741 },
742
743 { "Titan PCI-010HV2",
744 { 0x14d2, 0xe001, 0, 0 },
745 { 0xffff, 0xffff, 0, 0 },
746 {
747 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
748 },
749 },
750 { "Titan PCI-200HV2",
751 { 0x14d2, 0xe020, 0, 0 },
752 { 0xffff, 0xffff, 0, 0 },
753 {
754 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 },
755 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ * 8 },
756 },
757 },
758
759 /*
760 * VScom PCI-800H. Uses 8 16950 UART, behind a PCI chips that offers
761 * 4 com port on PCI device 0 and 4 on PCI device 1. PCI device 0 has
762 * device ID 3 and PCI device 1 device ID 4.
763 */
764 { "Titan PCI-800H",
765 { 0x14d2, 0xa003, 0, 0 },
766 { 0xffff, 0xffff, 0, 0 },
767 {
768 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 },
769 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8 },
770 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 8 },
771 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 8 },
772 },
773 },
774 { "Titan PCI-800H",
775 { 0x14d2, 0xa004, 0, 0 },
776 { 0xffff, 0xffff, 0, 0 },
777 {
778 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 },
779 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8 },
780 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 8 },
781 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 8 },
782 },
783 },
784 { "Titan PCI-200H",
785 { 0x14d2, 0xa005, 0, 0 },
786 { 0xffff, 0xffff, 0, 0 },
787 {
788 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 },
789 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8 },
790 },
791 },
792 { "Titan PCI-800L",
793 { 0x14d2, 0x8080, 0, 0 },
794 { 0xffff, 0xffff, 0, 0 },
795 {
796 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ * 8 },
797 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
798 { PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ * 8 },
799 { PUC_PORT_TYPE_COM, 0x20, 0x08, COM_FREQ * 8 },
800 { PUC_PORT_TYPE_COM, 0x20, 0x10, COM_FREQ * 8 },
801 { PUC_PORT_TYPE_COM, 0x20, 0x18, COM_FREQ * 8 },
802 { PUC_PORT_TYPE_COM, 0x20, 0x20, COM_FREQ * 8 },
803 { PUC_PORT_TYPE_COM, 0x20, 0x28, COM_FREQ * 8 },
804 },
805 },
806 /* NEC PK-UG-X001 K56flex PCI Modem card.
807 NEC MARTH bridge chip and Rockwell RCVDL56ACF/SP using. */
808 { "NEC PK-UG-X001 K56flex PCI Modem",
809 { 0x1033, 0x0074, 0x1033, 0x8014 },
810 { 0xffff, 0xffff, 0xffff, 0xffff },
811 {
812 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
813 },
814 },
815
816 /* NEC PK-UG-X008 */
817 { "NEC PK-UG-X008",
818 { 0x1033, 0x007d, 0x1033, 0x8012 },
819 { 0xffff, 0xffff, 0xffff, 0xffff },
820 {
821 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ},
822 },
823 },
824
825 /* Lava Computers 2SP-PCI */
826 { "Lava Computers 2SP-PCI parallel port",
827 { 0x1407, 0x8000, 0, 0 },
828 { 0xffff, 0xffff, 0, 0 },
829 {
830 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
831 },
832 },
833
834 /* Lava Computers 2SP-PCI and Quattro-PCI serial ports */
835 { "Lava Computers dual serial port",
836 { 0x1407, 0x0100, 0, 0 },
837 { 0xffff, 0xfffc, 0, 0 },
838 {
839 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
840 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
841 },
842 },
843
844 /* Lava Computers DSerial PCI serial ports */
845 { "Lava Computers serial port",
846 { 0x1407, 0x0110, 0, 0 },
847 { 0xffff, 0xfffc, 0, 0 },
848 {
849 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
850 },
851 },
852
853 /* Lava Computers Quattro-PCI serial ports */
854 { "Lava Quattro-PCI 4-port serial",
855 { 0x1407, 0x0120, 0, 0 },
856 { 0xffff, 0xfffc, 0, 0 },
857 {
858 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
859 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
860 },
861 },
862
863 /* Lava Computers Octopus-550 serial ports */
864 { "Lava Computers Octopus-550 8-port serial",
865 { 0x1407, 0x0180, 0, 0 },
866 { 0xffff, 0xfffc, 0, 0 },
867 {
868 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
869 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
870 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
871 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
872 },
873 },
874
875 /* US Robotics (3Com) PCI Modems */
876 { "US Robotics (3Com) 3CP5609 PCI 16550 Modem",
877 { 0x12b9, 0x1008, 0, 0 },
878 { 0xffff, 0xffff, 0, 0 },
879 {
880 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
881 },
882 },
883
884 /* Actiontec 56K PCI Master */
885 { "Actiontec 56K PCI Master",
886 { 0x11c1, 0x0480, 0x0, 0x0 },
887 { 0xffff, 0xffff, 0x0, 0x0 },
888 {
889 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
890 },
891 },
892
893 /*
894 * Boards with an Oxford Semiconductor chip.
895 *
896 * Oxford Semiconductor provides documentation for their chip at:
897 * <URL:http://www.oxsemi.com/products/uarts/index.html>
898 *
899 * As sold by Kouwell <URL:http://www.kouwell.com/>.
900 * I/O Flex PCI I/O Card Model-223 with 4 serial and 1 parallel ports.
901 */
902
903 /* Oxford Semiconductor OX16PCI952 PCI `950 UARTs - 128 byte FIFOs */
904 { "Oxford Semiconductor OX16PCI952 UARTs",
905 { 0x1415, 0x9521, 0, 0 },
906 { 0xffff, 0xffff, 0, 0 },
907 {
908 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
909 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
910 },
911 },
912
913 /* Oxford Semiconductor OX16PCI952 PCI Parallel port */
914 { "Oxford Semiconductor OX16PCI952 Parallel port",
915 { 0x1415, 0x9523, 0, 0 },
916 { 0xffff, 0xffff, 0, 0 },
917 {
918 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
919 },
920 },
921
922 /* Oxford Semiconductor OX16PCI954 PCI UARTs */
923 { "Oxford Semiconductor OX16PCI954 UARTs",
924 { 0x1415, 0x9501, 0, 0 },
925 { 0xffff, 0xffff, 0, 0 },
926 {
927 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
928 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ },
929 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ },
930 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ },
931 },
932 },
933
934 /* Oxford Semiconductor OX16PCI954 PCI Parallel port */
935 { "Oxford Semiconductor OX16PCI954 Parallel port",
936 { 0x1415, 0x9513, 0, 0 },
937 { 0xffff, 0xffff, 0, 0 },
938 {
939 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
940 },
941 },
942
943 /* Moxa Technologies Co., Ltd. PCI I/O Card 4S RS232/422/485 */
944 { "Moxa Technologies, SmartIO C104H/PCI",
945 { 0x1393, 0x1040, 0, 0 },
946 { 0xffff, 0xffff, 0, 0 },
947 {
948 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
949 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 },
950 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 },
951 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 },
952 },
953 },
954
955 /* Moxa Technologies Co., Ltd. PCI I/O Card 4S RS232 */
956 { "Moxa Technologies, SmartIO CP104/PCI",
957 { 0x1393, 0x1041, 0, 0 },
958 { 0xffff, 0xffff, 0, 0 },
959 {
960 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
961 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 },
962 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 },
963 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 },
964 },
965 },
966
967 /* Moxa Technologies Co., Ltd. PCI I/O Card 4S RS232 */
968 { "Moxa Technologies, SmartIO CP104-V2/PCI",
969 { 0x1393, 0x1042, 0, 0 },
970 { 0xffff, 0xffff, 0, 0 },
971 {
972 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
973 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 },
974 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 },
975 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 },
976 },
977 },
978
979 /* Moxa Technologies Co., Ltd. PCI I/O Card 4S RS232/422/485 */
980 { "Moxa Technologies, SmartIO CP-114/PCI",
981 { 0x1393, 0x1141, 0, 0 },
982 { 0xffff, 0xffff, 0, 0 },
983 {
984 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
985 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 },
986 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 },
987 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 },
988 },
989 },
990
991 /* Moxa Technologies Co., Ltd. PCI I/O Card 8S RS232 */
992 { "Moxa Technologies, SmartIO C168H/PCI",
993 { 0x1393, 0x1680, 0, 0 },
994 { 0xffff, 0xffff, 0, 0 },
995 {
996 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
997 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 },
998 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 },
999 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 },
1000 { PUC_PORT_TYPE_COM, 0x18, 0x20, COM_FREQ * 8 },
1001 { PUC_PORT_TYPE_COM, 0x18, 0x28, COM_FREQ * 8 },
1002 { PUC_PORT_TYPE_COM, 0x18, 0x30, COM_FREQ * 8 },
1003 { PUC_PORT_TYPE_COM, 0x18, 0x38, COM_FREQ * 8 },
1004 },
1005 },
1006
1007 /* NetMos 1P PCI : 1P */
1008 { "NetMos NM9805 1284 Printer port",
1009 { 0x9710, 0x9805, 0, 0 },
1010 { 0xffff, 0xffff, 0, 0 },
1011 {
1012 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
1013 },
1014 },
1015
1016 /* NetMos 2P PCI : 2P */
1017 { "NetMos NM9815 Dual 1284 Printer port",
1018 { 0x9710, 0x9815, 0, 0 },
1019 { 0xffff, 0xffff, 0, 0 },
1020 {
1021 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
1022 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
1023 },
1024 },
1025
1026 /* NetMos 2S PCI NM9835 : 2S */
1027 { "NetMos NM9835 Dual UART",
1028 { 0x9710, 0x9835, 0x1000, 0x0002 },
1029 { 0xffff, 0xffff, 0xffff, 0xffff },
1030 {
1031 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
1032 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
1033 },
1034 },
1035
1036 /* NetMos 2S1P PCI 16C650 : 2S, 1P */
1037 { "NetMos NM9835 Dual UART and 1284 Printer port",
1038 { 0x9710, 0x9835, 0, 0 },
1039 { 0xffff, 0xffff, 0, 0 },
1040 {
1041 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
1042 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
1043 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
1044 },
1045 },
1046
1047 /* NetMos 4S1P PCI NM9845 : 4S, 1P */
1048 { "NetMos NM9845 Quad UART and 1284 Printer port",
1049 { 0x9710, 0x9845, 0x1000, 0x0014 },
1050 { 0xffff, 0xffff, 0xffff, 0xffff },
1051 {
1052 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
1053 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
1054 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
1055 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
1056 { PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 },
1057 },
1058 },
1059
1060 /* NetMos 6S PCI 16C650 : 6S, 0P */
1061 { "NetMos NM9845 6 UART",
1062 { 0x9710, 0x9845, 0x1000, 0x0006 },
1063 { 0xffff, 0xffff, 0xffff, 0xffff },
1064 {
1065 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
1066 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
1067 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
1068 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
1069 { PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ },
1070 { PUC_PORT_TYPE_COM, 0x24, 0x00, COM_FREQ },
1071 },
1072 },
1073
1074 /* NetMos 4S1P PCI NM9845 : 4S, 1P */
1075 { "NetMos NM9845 Quad UART and 1284 Printer port (unknown type)",
1076 { 0x9710, 0x9845, 0, 0 },
1077 { 0xffff, 0xffff, 0, 0 },
1078 {
1079 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
1080 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
1081 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
1082 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
1083 { PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 },
1084 },
1085 },
1086
1087 /* NetMos 4S1P PCI NM9855 : 4S, 1P */
1088 { "NetMos NM9855 Quad UART and 1284 Printer port (unknown type)",
1089 { 0x9710, 0x9855, 0x1000, 0x0014 },
1090 { 0xffff, 0xffff, 0xffff, 0xffff },
1091 {
1092 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
1093 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
1094 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
1095 { PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ },
1096 { PUC_PORT_TYPE_COM, 0x24, 0x00, COM_FREQ },
1097 },
1098 },
1099
1100 /*
1101 * This is the Middle Digital, Inc. PCI-Weasel, which
1102 * uses a PCI interface implemented in FPGA.
1103 */
1104 { "Middle Digital, Inc. Weasel serial port",
1105 { 0xdeaf, 0x9051, 0, 0 },
1106 { 0xffff, 0xffff, 0, 0 },
1107 {
1108 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
1109 },
1110 },
1111
1112 /* Avlab Technology, Inc. Low Profile PCI 4 Serial: 4S */
1113 { "Avlab Low Profile PCI 4 Serial",
1114 { 0x14db, 0x2150, 0, 0 },
1115 { 0xffff, 0xffff, 0, 0 },
1116 {
1117 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
1118 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
1119 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
1120 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
1121 },
1122 },
1123
1124 /*
1125 * Perle PCI-RAS 4 Modem ports
1126 */
1127 { "Perle Systems PCI-RAS 4 modem ports",
1128 { 0x10b5, 0x9030, 0x155f, 0xf001 },
1129 { 0xffff, 0xffff, 0xffff, 0xffff },
1130 {
1131 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 4 },
1132 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 4 },
1133 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 4 },
1134 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 4 },
1135 },
1136 },
1137
1138 /*
1139 * Perle PCI-RASV92 4 Modem ports
1140 */
1141 { "Perle Systems PCI-RASV92 4 modem ports",
1142 { 0x10b5, 0x9050, 0x155f, 0xf001 },
1143 { 0xffff, 0xffff, 0xffff, 0xffff },
1144 {
1145 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 4 },
1146 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 4 },
1147 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 4 },
1148 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 4 },
1149 },
1150 },
1151
1152 /*
1153 * Perle PCI-RAS 8 Modem ports
1154 */
1155 { "Perle Systems PCI-RAS 8 modem ports",
1156 { 0x10b5, 0x9030, 0x155f, 0xf010 },
1157 { 0xffff, 0xffff, 0xffff, 0xffff },
1158 {
1159 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 4 },
1160 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 4 },
1161 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 4 },
1162 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 4 },
1163 { PUC_PORT_TYPE_COM, 0x18, 0x20, COM_FREQ * 4 },
1164 { PUC_PORT_TYPE_COM, 0x18, 0x28, COM_FREQ * 4 },
1165 { PUC_PORT_TYPE_COM, 0x18, 0x30, COM_FREQ * 4 },
1166 { PUC_PORT_TYPE_COM, 0x18, 0x38, COM_FREQ * 4 },
1167 },
1168 },
1169
1170 /*
1171 * Perle PCI-RASV92 8 Modem ports
1172 */
1173 { "Perle Systems PCI-RASV92 8 modem ports",
1174 { 0x10b5, 0x9050, 0x155f, 0xf010 },
1175 { 0xffff, 0xffff, 0xffff, 0xffff },
1176 {
1177 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 4 },
1178 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 4 },
1179 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 4 },
1180 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 4 },
1181 { PUC_PORT_TYPE_COM, 0x18, 0x20, COM_FREQ * 4 },
1182 { PUC_PORT_TYPE_COM, 0x18, 0x28, COM_FREQ * 4 },
1183 { PUC_PORT_TYPE_COM, 0x18, 0x30, COM_FREQ * 4 },
1184 { PUC_PORT_TYPE_COM, 0x18, 0x38, COM_FREQ * 4 },
1185 },
1186 },
1187
1188 /*
1189 * Boca Research Turbo Serial 654 (4 serial port) card.
1190 * Appears to be the same as Chase Research PLC PCI-FAST4
1191 * and Perle PCI-FAST4 Multi-Port serial cards.
1192 */
1193 { "Boca Research Turbo Serial 654",
1194 { 0x10b5, 0x9050, 0x12e0, 0x0031 },
1195 { 0xffff, 0xffff, 0xffff, 0xffff },
1196 {
1197 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 4 },
1198 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 4 },
1199 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 4 },
1200 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 4 },
1201 },
1202 },
1203
1204 /*
1205 * Boca Research Turbo Serial 658 (8 serial port) card.
1206 * Appears to be the same as Chase Research PLC PCI-FAST8
1207 * and Perle PCI-FAST8 Multi-Port serial cards.
1208 */
1209 { "Boca Research Turbo Serial 658",
1210 { 0x10b5, 0x9050, 0x12e0, 0x0021 },
1211 { 0xffff, 0xffff, 0xffff, 0xffff },
1212 {
1213 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 4 },
1214 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 4 },
1215 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 4 },
1216 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 4 },
1217 { PUC_PORT_TYPE_COM, 0x18, 0x20, COM_FREQ * 4 },
1218 { PUC_PORT_TYPE_COM, 0x18, 0x28, COM_FREQ * 4 },
1219 { PUC_PORT_TYPE_COM, 0x18, 0x30, COM_FREQ * 4 },
1220 { PUC_PORT_TYPE_COM, 0x18, 0x38, COM_FREQ * 4 },
1221 },
1222 },
1223
1224 /*
1225 * Addi-Data APCI-7800 8-port serial card.
1226 * Uses an AMCC chip as PCI bridge.
1227 */
1228 { "Addi-Data APCI-7800",
1229 { 0x10e8, 0x818e, 0, 0 },
1230 { 0xffff, 0xffff, 0, 0 },
1231 {
1232 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
1233 { PUC_PORT_TYPE_COM, 0x14, 0x08, COM_FREQ },
1234 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
1235 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ },
1236 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
1237 { PUC_PORT_TYPE_COM, 0x1c, 0x08, COM_FREQ },
1238 { PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ },
1239 { PUC_PORT_TYPE_COM, 0x20, 0x08, COM_FREQ },
1240 },
1241 },
1242
1243 { "EXAR XR17D152",
1244 { 0x13a8, 0x0152, 0, 0 },
1245 { 0xffff, 0xffff, 0, 0 },
1246 {
1247 { PUC_PORT_TYPE_COM, 0x10, 0x0000, COM_FREQ * 8 },
1248 { PUC_PORT_TYPE_COM, 0x10, 0x0200, COM_FREQ * 8 },
1249 },
1250 },
1251 { "EXAR XR17D154",
1252 { 0x13a8, 0x0154, 0, 0 },
1253 { 0xffff, 0xffff, 0, 0 },
1254 {
1255 { PUC_PORT_TYPE_COM, 0x10, 0x0000, COM_FREQ * 8 },
1256 { PUC_PORT_TYPE_COM, 0x10, 0x0200, COM_FREQ * 8 },
1257 { PUC_PORT_TYPE_COM, 0x10, 0x0400, COM_FREQ * 8 },
1258 { PUC_PORT_TYPE_COM, 0x10, 0x0600, COM_FREQ * 8 },
1259 },
1260 },
1261 { "EXAR XR17D158",
1262 { 0x13a8, 0x0158, 0, 0 },
1263 { 0xffff, 0xffff, 0, 0 },
1264 {
1265 { PUC_PORT_TYPE_COM, 0x10, 0x0000, COM_FREQ * 8 },
1266 { PUC_PORT_TYPE_COM, 0x10, 0x0200, COM_FREQ * 8 },
1267 { PUC_PORT_TYPE_COM, 0x10, 0x0400, COM_FREQ * 8 },
1268 { PUC_PORT_TYPE_COM, 0x10, 0x0600, COM_FREQ * 8 },
1269 { PUC_PORT_TYPE_COM, 0x10, 0x0800, COM_FREQ * 8 },
1270 { PUC_PORT_TYPE_COM, 0x10, 0x0a00, COM_FREQ * 8 },
1271 { PUC_PORT_TYPE_COM, 0x10, 0x0c00, COM_FREQ * 8 },
1272 { PUC_PORT_TYPE_COM, 0x10, 0x0e00, COM_FREQ * 8 },
1273 },
1274 },
1275
1276 /* I-O DATA RSA-PCI: 2S */
1277 { "I-O DATA RSA-PCI 2-port serial",
1278 { 0x10fc, 0x0007, 0, 0 },
1279 { 0xffff, 0xffff, 0, 0 },
1280 {
1281 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
1282 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
1283 },
1284 },
1285
1286 /* Digi International Digi Neo 4 Serial */
1287 { "Digi International Digi Neo 4 Serial",
1288 { PCI_VENDOR_DIGI, PCI_PRODUCT_DIGI_NEO4, 0, 0 },
1289 { 0xffff, 0xffff, 0, 0 },
1290 {
1291 { PUC_PORT_TYPE_COM, 0x10, 0x0000, COM_FREQ * 8 },
1292 { PUC_PORT_TYPE_COM, 0x10, 0x0200, COM_FREQ * 8 },
1293 { PUC_PORT_TYPE_COM, 0x10, 0x0400, COM_FREQ * 8 },
1294 { PUC_PORT_TYPE_COM, 0x10, 0x0600, COM_FREQ * 8 },
1295 },
1296 },
1297
1298 /* Digi International Digi Neo 8 Serial */
1299 { "Digi International Digi Neo 8 Serial",
1300 { PCI_VENDOR_DIGI, PCI_PRODUCT_DIGI_NEO8, 0, 0 },
1301 { 0xffff, 0xffff, 0, 0 },
1302 {
1303 { PUC_PORT_TYPE_COM, 0x10, 0x0000, COM_FREQ * 8 },
1304 { PUC_PORT_TYPE_COM, 0x10, 0x0200, COM_FREQ * 8 },
1305 { PUC_PORT_TYPE_COM, 0x10, 0x0400, COM_FREQ * 8 },
1306 { PUC_PORT_TYPE_COM, 0x10, 0x0600, COM_FREQ * 8 },
1307 { PUC_PORT_TYPE_COM, 0x10, 0x0800, COM_FREQ * 8 },
1308 { PUC_PORT_TYPE_COM, 0x10, 0x0a00, COM_FREQ * 8 },
1309 { PUC_PORT_TYPE_COM, 0x10, 0x0c00, COM_FREQ * 8 },
1310 { PUC_PORT_TYPE_COM, 0x10, 0x0e00, COM_FREQ * 8 },
1311 },
1312 },
1313
1314 /*
1315 * B&B Electronics MIPort Serial cards.
1316 */
1317 { "BBELEC ISOLATED_2_PORT",
1318 { PCI_VENDOR_BBELEC, PCI_PRODUCT_BBELEC_ISOLATED_2_PORT, 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 },
1324 },
1325 { "BBELEC ISOLATED_4_PORT",
1326 { PCI_VENDOR_BBELEC, PCI_PRODUCT_BBELEC_ISOLATED_4_PORT, 0, 0 },
1327 { 0xffff, 0xffff, 0, 0 },
1328 {
1329 { PUC_PORT_TYPE_COM, 0x10, 0x0000, COM_FREQ * 8 },
1330 { PUC_PORT_TYPE_COM, 0x10, 0x0200, COM_FREQ * 8 },
1331 { PUC_PORT_TYPE_COM, 0x10, 0x0400, COM_FREQ * 8 },
1332 { PUC_PORT_TYPE_COM, 0x10, 0x0600, COM_FREQ * 8 },
1333 },
1334 },
1335 { "BBELEC ISOLATED_8_PORT",
1336 { PCI_VENDOR_BBELEC, PCI_PRODUCT_BBELEC_ISOLATED_8_PORT, 0, 0 },
1337 { 0xffff, 0xffff, 0, 0 },
1338 {
1339 { PUC_PORT_TYPE_COM, 0x10, 0x0000, COM_FREQ * 8 },
1340 { PUC_PORT_TYPE_COM, 0x10, 0x0200, COM_FREQ * 8 },
1341 { PUC_PORT_TYPE_COM, 0x10, 0x0400, COM_FREQ * 8 },
1342 { PUC_PORT_TYPE_COM, 0x10, 0x0600, COM_FREQ * 8 },
1343 { PUC_PORT_TYPE_COM, 0x10, 0x0800, COM_FREQ * 8 },
1344 { PUC_PORT_TYPE_COM, 0x10, 0x0a00, COM_FREQ * 8 },
1345 { PUC_PORT_TYPE_COM, 0x10, 0x0c00, COM_FREQ * 8 },
1346 { PUC_PORT_TYPE_COM, 0x10, 0x0e00, COM_FREQ * 8 },
1347 },
1348 },
1349
1350 { .name = NULL },
1351 };
1352