pucdata.c revision 1.26 1 /* $NetBSD: pucdata.c,v 1.26 2002/04/11 13:53:56 hannken 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.26 2002/04/11 13:53:56 hannken 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 /* VScom PCI-400: 4S */
610 { "VScom PCI-400",
611 { 0x10b5, 0x1077, 0x10b5, 0x1077 },
612 { 0xffff, 0xffff, 0xffff, 0xffff },
613 {
614 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
615 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 },
616 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 },
617 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 },
618 },
619 },
620
621 /* VScom PCI-800: 8S */
622 { "VScom PCI-800",
623 { 0x10b5, 0x1076, 0x10b5, 0x1076 },
624 { 0xffff, 0xffff, 0xffff, 0xffff },
625 {
626 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
627 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 },
628 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 },
629 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 },
630 { PUC_PORT_TYPE_COM, 0x18, 0x20, COM_FREQ * 8 },
631 { PUC_PORT_TYPE_COM, 0x18, 0x28, COM_FREQ * 8 },
632 { PUC_PORT_TYPE_COM, 0x18, 0x30, COM_FREQ * 8 },
633 { PUC_PORT_TYPE_COM, 0x18, 0x38, COM_FREQ * 8 },
634 },
635 },
636 /*
637 * VScom PCI-800H. Uses 8 16950 UART, behind a PCI chips that offers
638 * 4 com port on PCI device 0 and 4 on PCI device 1. PCI device 0 has
639 * device ID 3 and PCI device 1 device ID 4.
640 */
641 { "Titan PCI-800H",
642 { 0x14d2, 0xa003, 0, 0 },
643 { 0xffff, 0xffff, 0, 0 },
644 {
645 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 },
646 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8 },
647 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 8 },
648 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 8 },
649 },
650 },
651 { "Titan PCI-800H",
652 { 0x14d2, 0xa004, 0, 0 },
653 { 0xffff, 0xffff, 0, 0 },
654 {
655 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 },
656 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8 },
657 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 8 },
658 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 8 },
659 },
660 },
661 { "Titan PCI-200H",
662 { 0x14d2, 0xa005, 0, 0 },
663 { 0xffff, 0xffff, 0, 0 },
664 {
665 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 },
666 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8 },
667 },
668 },
669
670 /* NEC PK-UG-X001 K56flex PCI Modem card.
671 NEC MARTH bridge chip and Rockwell RCVDL56ACF/SP using. */
672 { "NEC PK-UG-X001 K56flex PCI Modem",
673 { 0x1033, 0x0074, 0x1033, 0x8014 },
674 { 0xffff, 0xffff, 0xffff, 0xffff },
675 {
676 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
677 },
678 },
679
680 /* NEC PK-UG-X008 */
681 { "NEC PK-UG-X008",
682 { 0x1033, 0x007d, 0x1033, 0x8012 },
683 { 0xffff, 0xffff, 0xffff, 0xffff },
684 {
685 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ},
686 },
687 },
688
689 /* Lava Computers 2SP-PCI */
690 { "Lava Computers 2SP-PCI parallel port",
691 { 0x1407, 0x8000, 0, 0 },
692 { 0xffff, 0xffff, 0, 0 },
693 {
694 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
695 },
696 },
697
698 /* Lava Computers 2SP-PCI and Quattro-PCI serial ports */
699 { "Lava Computers dual serial port",
700 { 0x1407, 0x0100, 0, 0 },
701 { 0xffff, 0xfffc, 0, 0 },
702 {
703 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
704 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
705 },
706 },
707
708 /* Lava Computers DSerial PCI serial ports */
709 { "Lava Computers serial port",
710 { 0x1407, 0x0110, 0, 0 },
711 { 0xffff, 0xfffc, 0, 0 },
712 {
713 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
714 },
715 },
716
717 /* Lava Computers Octopus-550 serial ports */
718 { "Lava Computers Octopus-550 8-port serial",
719 { 0x1407, 0x0180, 0, 0 },
720 { 0xffff, 0xfffc, 0, 0 },
721 {
722 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
723 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
724 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
725 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
726 },
727 },
728
729 /* US Robotics (3Com) PCI Modems */
730 { "US Robotics (3Com) 3CP5609 PCI 16550 Modem",
731 { 0x12b9, 0x1008, 0, 0 },
732 { 0xffff, 0xffff, 0, 0 },
733 {
734 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
735 },
736 },
737
738 /* Actiontec 56K PCI Master */
739 { "Actiontec 56K PCI Master",
740 { 0x11c1, 0x0480, 0x0, 0x0 },
741 { 0xffff, 0xffff, 0x0, 0x0 },
742 {
743 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
744 },
745 },
746
747 /*
748 * Boards with an Oxford Semiconductor chip.
749 *
750 * Oxford Semiconductor provides documentation for their chip at:
751 * <URL:http://www.oxsemi.com/products/uarts/index.html>
752 *
753 * As sold by Kouwell <URL:http://www.kouwell.com/>.
754 * I/O Flex PCI I/O Card Model-223 with 4 serial and 1 parallel ports.
755 */
756
757 /* Oxford Semiconductor OX16PCI954 PCI UARTs */
758 { "Qxford Semiconductor OX16PCI954 UARTs",
759 { 0x1415, 0x9501, 0, 0 },
760 { 0xffff, 0xffff, 0, 0 },
761 {
762 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
763 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ },
764 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ },
765 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ },
766 },
767 },
768
769 /* Oxford Semiconductor OX16PCI954 PCI Parallel port */
770 { "Qxford Semiconductor OX16PCI954 Parallel port",
771 { 0x1415, 0x9513, 0, 0 },
772 { 0xffff, 0xffff, 0, 0 },
773 {
774 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
775 },
776 },
777
778 /* NetMos 2S1P PCI 16C650 : 2S, 1P */
779 { "NetMos NM9835 Dual UART and 1284 Printer port",
780 { 0x9710, 0x9835, 0, 0 },
781 { 0xffff, 0xffff, 0, 0 },
782 {
783 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
784 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
785 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
786 },
787 },
788
789 /*
790 * This is the Middle Digital, Inc. PCI-Weasel, which
791 * uses a PCI interface implemented in FPGA.
792 */
793 { "Middle Digital, Inc. Weasel serial port",
794 { 0xdeaf, 0x9051, 0, 0 },
795 { 0xffff, 0xffff, 0, 0 },
796 {
797 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
798 },
799 },
800
801 { 0 }
802 };
803