pucdata.c revision 1.21 1 /* $NetBSD: pucdata.c,v 1.21 2001/11/13 07:48:48 lukem 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.21 2001/11/13 07:48:48 lukem 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 * XXX no entry because I have no data:
53 * XXX Dolphin Peripherals 4006 (single parallel)
54 */
55
56 /*
57 * Dolphin Peripherals 4014 (dual parallel port) card. PLX 9050, with
58 * a seemingly-lame EEPROM setup that puts the Dolphin IDs
59 * into the subsystem fields, and claims that it's a
60 * network/misc (0x02/0x80) device.
61 */
62 { "Dolphin Peripherals 4014",
63 { 0x10b5, 0x9050, 0xd84d, 0x6810 },
64 { 0xffff, 0xffff, 0xffff, 0xffff },
65 {
66 { PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 },
67 { PUC_PORT_TYPE_LPT, 0x24, 0x00, 0x00 },
68 },
69 },
70
71 /*
72 * XXX no entry because I have no data:
73 * XXX Dolphin Peripherals 4025 (single serial)
74 */
75
76 /*
77 * Dolphin Peripherals 4035 (dual serial port) card. PLX 9050, with
78 * a seemingly-lame EEPROM setup that puts the Dolphin IDs
79 * into the subsystem fields, and claims that it's a
80 * network/misc (0x02/0x80) device.
81 */
82 { "Dolphin Peripherals 4035",
83 { 0x10b5, 0x9050, 0xd84d, 0x6808 },
84 { 0xffff, 0xffff, 0xffff, 0xffff },
85 {
86 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
87 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
88 },
89 },
90
91 /*
92 * XXX no entry because I have no data:
93 * XXX Dolphin Peripherals 4078 (dual serial and single parallel)
94 */
95
96
97 /*
98 * SIIG Boards.
99 *
100 * SIIG provides documentation for their boards at:
101 * <URL:http://www.siig.com/driver.htm>
102 *
103 * Please excuse the weird ordering, it's the order they
104 * use in their documentation.
105 */
106
107 /*
108 * SIIG "10x" family boards.
109 */
110
111 /* SIIG Cyber Serial PCI 16C550 (10x family): 1S */
112 { "SIIG Cyber Serial PCI 16C550 (10x family)",
113 { 0x131f, 0x1000, 0, 0 },
114 { 0xffff, 0xffff, 0, 0 },
115 {
116 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
117 },
118 },
119
120 /* SIIG Cyber Serial PCI 16C650 (10x family): 1S */
121 { "SIIG Cyber Serial PCI 16C650 (10x family)",
122 { 0x131f, 0x1001, 0, 0 },
123 { 0xffff, 0xffff, 0, 0 },
124 {
125 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
126 },
127 },
128
129 /* SIIG Cyber Serial PCI 16C850 (10x family): 1S */
130 { "SIIG Cyber Serial PCI 16C850 (10x family)",
131 { 0x131f, 0x1002, 0, 0 },
132 { 0xffff, 0xffff, 0, 0 },
133 {
134 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
135 },
136 },
137
138 /* SIIG Cyber I/O PCI 16C550 (10x family): 1S, 1P */
139 { "SIIG Cyber I/O PCI 16C550 (10x family)",
140 { 0x131f, 0x1010, 0, 0 },
141 { 0xffff, 0xffff, 0, 0 },
142 {
143 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
144 { PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 },
145 },
146 },
147
148 /* SIIG Cyber I/O PCI 16C650 (10x family): 1S, 1P */
149 { "SIIG Cyber I/O PCI 16C650 (10x family)",
150 { 0x131f, 0x1011, 0, 0 },
151 { 0xffff, 0xffff, 0, 0 },
152 {
153 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
154 { PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 },
155 },
156 },
157
158 /* SIIG Cyber I/O PCI 16C850 (10x family): 1S, 1P */
159 { "SIIG Cyber I/O PCI 16C850 (10x family)",
160 { 0x131f, 0x1012, 0, 0 },
161 { 0xffff, 0xffff, 0, 0 },
162 {
163 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
164 { PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 },
165 },
166 },
167
168 /* SIIG Cyber Parallel PCI (10x family): 1P */
169 { "SIIG Cyber Parallel PCI (10x family)",
170 { 0x131f, 0x1020, 0, 0 },
171 { 0xffff, 0xffff, 0, 0 },
172 {
173 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
174 },
175 },
176
177 /* SIIG Cyber Parallel Dual PCI (10x family): 2P */
178 { "SIIG Cyber Parallel Dual PCI (10x family)",
179 { 0x131f, 0x1021, 0, 0 },
180 { 0xffff, 0xffff, 0, 0 },
181 {
182 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
183 { PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 },
184 },
185 },
186
187 /* SIIG Cyber Serial Dual PCI 16C550 (10x family): 2S */
188 { "SIIG Cyber Serial Dual PCI 16C550 (10x family)",
189 { 0x131f, 0x1030, 0, 0 },
190 { 0xffff, 0xffff, 0, 0 },
191 {
192 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
193 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
194 },
195 },
196
197 /* SIIG Cyber Serial Dual PCI 16C650 (10x family): 2S */
198 { "SIIG Cyber Serial Dual PCI 16C650 (10x family)",
199 { 0x131f, 0x1031, 0, 0 },
200 { 0xffff, 0xffff, 0, 0 },
201 {
202 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
203 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
204 },
205 },
206
207 /* SIIG Cyber Serial Dual PCI 16C850 (10x family): 2S */
208 { "SIIG Cyber Serial Dual PCI 16C850 (10x family)",
209 { 0x131f, 0x1032, 0, 0 },
210 { 0xffff, 0xffff, 0, 0 },
211 {
212 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
213 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
214 },
215 },
216
217 /* SIIG Cyber 2S1P PCI 16C550 (10x family): 2S, 1P */
218 { "SIIG Cyber 2S1P PCI 16C550 (10x family)",
219 { 0x131f, 0x1034, 0, 0 }, /* XXX really? */
220 { 0xffff, 0xffff, 0, 0 },
221 {
222 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
223 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
224 { PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 },
225 },
226 },
227
228 /* SIIG Cyber 2S1P PCI 16C650 (10x family): 2S, 1P */
229 { "SIIG Cyber 2S1P PCI 16C650 (10x family)",
230 { 0x131f, 0x1035, 0, 0 }, /* XXX really? */
231 { 0xffff, 0xffff, 0, 0 },
232 {
233 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
234 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
235 { PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 },
236 },
237 },
238
239 /* SIIG Cyber 2S1P PCI 16C850 (10x family): 2S, 1P */
240 { "SIIG Cyber 2S1P PCI 16C850 (10x family)",
241 { 0x131f, 0x1036, 0, 0 }, /* XXX really? */
242 { 0xffff, 0xffff, 0, 0 },
243 {
244 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
245 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
246 { PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 },
247 },
248 },
249
250 /* SIIG Cyber 4S PCI 16C550 (10x family): 4S */
251 { "SIIG Cyber 4S PCI 16C550 (10x family)",
252 { 0x131f, 0x1050, 0, 0 },
253 { 0xffff, 0xffff, 0, 0 },
254 {
255 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
256 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
257 { PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ },
258 { PUC_PORT_TYPE_COM, 0x24, 0x00, COM_FREQ },
259 },
260 },
261
262 /* SIIG Cyber 4S PCI 16C650 (10x family): 4S */
263 { "SIIG Cyber 4S PCI 16C650 (10x family)",
264 { 0x131f, 0x1051, 0, 0 },
265 { 0xffff, 0xffff, 0, 0 },
266 {
267 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
268 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
269 { PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ },
270 { PUC_PORT_TYPE_COM, 0x24, 0x00, COM_FREQ },
271 },
272 },
273
274 /* SIIG Cyber 4S PCI 16C850 (10x family): 4S */
275 { "SIIG Cyber 4S PCI 16C850 (10x family)",
276 { 0x131f, 0x1052, 0, 0 },
277 { 0xffff, 0xffff, 0, 0 },
278 {
279 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
280 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
281 { PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ },
282 { PUC_PORT_TYPE_COM, 0x24, 0x00, COM_FREQ },
283 },
284 },
285
286 /*
287 * SIIG "20x" family boards.
288 */
289
290 /* SIIG Cyber Parallel PCI (20x family): 1P */
291 { "SIIG Cyber Parallel PCI (20x family)",
292 { 0x131f, 0x2020, 0, 0 },
293 { 0xffff, 0xffff, 0, 0 },
294 {
295 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
296 },
297 },
298
299 /* SIIG Cyber Parallel Dual PCI (20x family): 2P */
300 { "SIIG Cyber Parallel Dual PCI (20x family)",
301 { 0x131f, 0x2021, 0, 0 },
302 { 0xffff, 0xffff, 0, 0 },
303 {
304 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
305 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
306 },
307 },
308
309 /* SIIG Cyber 2P1S PCI 16C550 (20x family): 1S, 2P */
310 { "SIIG Cyber 2P1S PCI 16C550 (20x family)",
311 { 0x131f, 0x2040, 0, 0 },
312 { 0xffff, 0xffff, 0, 0 },
313 {
314 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
315 { PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 },
316 { PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 },
317 },
318 },
319
320 /* SIIG Cyber 2P1S PCI 16C650 (20x family): 1S, 2P */
321 { "SIIG Cyber 2P1S PCI 16C650 (20x family)",
322 { 0x131f, 0x2041, 0, 0 },
323 { 0xffff, 0xffff, 0, 0 },
324 {
325 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
326 { PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 },
327 { PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 },
328 },
329 },
330
331 /* SIIG Cyber 2P1S PCI 16C850 (20x family): 1S, 2P */
332 { "SIIG Cyber 2P1S PCI 16C850 (20x family)",
333 { 0x131f, 0x2042, 0, 0 },
334 { 0xffff, 0xffff, 0, 0 },
335 {
336 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
337 { PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 },
338 { PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 },
339 },
340 },
341
342 /* SIIG Cyber Serial PCI 16C550 (20x family): 1S */
343 { "SIIG Cyber Serial PCI 16C550 (20x family)",
344 { 0x131f, 0x2000, 0, 0 },
345 { 0xffff, 0xffff, 0, 0 },
346 {
347 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
348 },
349 },
350
351 /* SIIG Cyber Serial PCI 16C650 (20x family): 1S */
352 { "SIIG Cyber Serial PCI 16C650 (20x family)",
353 { 0x131f, 0x2001, 0, 0 },
354 { 0xffff, 0xffff, 0, 0 },
355 {
356 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
357 },
358 },
359
360 /* SIIG Cyber Serial PCI 16C850 (20x family): 1S */
361 { "SIIG Cyber Serial PCI 16C850 (20x family)",
362 { 0x131f, 0x2002, 0, 0 },
363 { 0xffff, 0xffff, 0, 0 },
364 {
365 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
366 },
367 },
368
369 /* SIIG Cyber I/O PCI 16C550 (20x family): 1S, 1P */
370 { "SIIG Cyber I/O PCI 16C550 (20x family)",
371 { 0x131f, 0x2010, 0, 0 },
372 { 0xffff, 0xffff, 0, 0 },
373 {
374 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
375 { PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 },
376 },
377 },
378
379 /* SIIG Cyber I/O PCI 16C650 (20x family): 1S, 1P */
380 { "SIIG Cyber I/O PCI 16C650 (20x family)",
381 { 0x131f, 0x2011, 0, 0 },
382 { 0xffff, 0xffff, 0, 0 },
383 {
384 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
385 { PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 },
386 },
387 },
388
389 /* SIIG Cyber I/O PCI 16C850 (20x family): 1S, 1P */
390 { "SIIG Cyber I/O PCI 16C850 (20x family)",
391 { 0x131f, 0x2012, 0, 0 },
392 { 0xffff, 0xffff, 0, 0 },
393 {
394 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
395 { PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 },
396 },
397 },
398
399 /* SIIG Cyber Serial Dual PCI 16C550 (20x family): 2S */
400 { "SIIG Cyber Serial Dual PCI 16C550 (20x family)",
401 { 0x131f, 0x2030, 0, 0 },
402 { 0xffff, 0xffff, 0, 0 },
403 {
404 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
405 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
406 },
407 },
408
409 /* SIIG Cyber Serial Dual PCI 16C650 (20x family): 2S */
410 { "SIIG Cyber Serial Dual PCI 16C650 (20x family)",
411 { 0x131f, 0x2031, 0, 0 },
412 { 0xffff, 0xffff, 0, 0 },
413 {
414 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
415 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
416 },
417 },
418
419 /* SIIG Cyber Serial Dual PCI 16C850 (20x family): 2S */
420 { "SIIG Cyber Serial Dual PCI 16C850 (20x family)",
421 { 0x131f, 0x2032, 0, 0 },
422 { 0xffff, 0xffff, 0, 0 },
423 {
424 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
425 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
426 },
427 },
428
429 /* SIIG Cyber 2S1P PCI 16C550 (20x family): 2S, 1P */
430 { "SIIG Cyber 2S1P PCI 16C550 (20x family)",
431 { 0x131f, 0x2060, 0, 0 },
432 { 0xffff, 0xffff, 0, 0 },
433 {
434 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
435 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
436 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
437 },
438 },
439
440 /* SIIG Cyber 2S1P PCI 16C650 (20x family): 2S, 1P */
441 { "SIIG Cyber 2S1P PCI 16C650 (20x family)",
442 { 0x131f, 0x2061, 0, 0 },
443 { 0xffff, 0xffff, 0, 0 },
444 {
445 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
446 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
447 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
448 },
449 },
450
451 /* SIIG Cyber 2S1P PCI 16C850 (20x family): 2S, 1P */
452 { "SIIG Cyber 2S1P PCI 16C850 (20x family)",
453 { 0x131f, 0x2062, 0, 0 },
454 { 0xffff, 0xffff, 0, 0 },
455 {
456 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
457 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
458 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
459 },
460 },
461
462 /* SIIG Cyber 4S PCI 16C550 (20x family): 4S */
463 { "SIIG Cyber 4S PCI 16C550 (20x family)",
464 { 0x131f, 0x2050, 0, 0 },
465 { 0xffff, 0xffff, 0, 0 },
466 {
467 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
468 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
469 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
470 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
471 },
472 },
473
474 /* SIIG Cyber 4S PCI 16C650 (20x family): 4S */
475 { "SIIG Cyber 4S PCI 16C650 (20x family)",
476 { 0x131f, 0x2051, 0, 0 },
477 { 0xffff, 0xffff, 0, 0 },
478 {
479 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
480 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
481 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
482 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
483 },
484 },
485
486 /* SIIG Cyber 4S PCI 16C850 (20x family): 4S */
487 { "SIIG Cyber 4S PCI 16C850 (20x family)",
488 { 0x131f, 0x2052, 0, 0 },
489 { 0xffff, 0xffff, 0, 0 },
490 {
491 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
492 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
493 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
494 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
495 },
496 },
497
498 /* VScom PCI-400: 4S */
499 { "VScom PCI-400",
500 { 0x10b5, 0x1077, 0x10b5, 0x1077 },
501 { 0xffff, 0xffff, 0xffff, 0xffff },
502 {
503 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
504 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 },
505 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 },
506 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 },
507 },
508 },
509
510 /* VScom PCI-800: 8S */
511 { "VScom PCI-800",
512 { 0x10b5, 0x1076, 0x10b5, 0x1076 },
513 { 0xffff, 0xffff, 0xffff, 0xffff },
514 {
515 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
516 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 },
517 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 },
518 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 },
519 { PUC_PORT_TYPE_COM, 0x18, 0x20, COM_FREQ * 8 },
520 { PUC_PORT_TYPE_COM, 0x18, 0x28, COM_FREQ * 8 },
521 { PUC_PORT_TYPE_COM, 0x18, 0x30, COM_FREQ * 8 },
522 { PUC_PORT_TYPE_COM, 0x18, 0x38, COM_FREQ * 8 },
523 },
524 },
525 /*
526 * VScom PCI-800H. Uses 8 16950 UART, behind a PCI chips that offers
527 * 4 com port on PCI device 0 and 4 on PCI device 1. PCI device 0 has
528 * device ID 3 and PCI device 1 device ID 4.
529 */
530 { "Titan PCI-800H",
531 { 0x14d2, 0xa003, 0, 0 },
532 { 0xffff, 0xffff, 0, 0 },
533 {
534 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 },
535 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8 },
536 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 8 },
537 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 8 },
538 },
539 },
540 { "Titan PCI-800H",
541 { 0x14d2, 0xa004, 0, 0 },
542 { 0xffff, 0xffff, 0, 0 },
543 {
544 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 },
545 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8 },
546 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 8 },
547 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 8 },
548 },
549 },
550
551 /* NEC PK-UG-X001 K56flex PCI Modem card.
552 NEC MARTH bridge chip and Rockwell RCVDL56ACF/SP using. */
553 { "NEC PK-UG-X001 K56flex PCI Modem",
554 { 0x1033, 0x0074, 0x1033, 0x8014 },
555 { 0xffff, 0xffff, 0xffff, 0xffff },
556 {
557 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
558 },
559 },
560
561 /* NEC PK-UG-X008 */
562 { "NEC PK-UG-X008",
563 { 0x1033, 0x007d, 0x1033, 0x8012 },
564 { 0xffff, 0xffff, 0xffff, 0xffff },
565 {
566 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ},
567 },
568 },
569
570 /* Lava Computers 2SP-PCI */
571 { "Lava Computers 2SP-PCI parallel port",
572 { 0x1407, 0x8000, 0, 0 },
573 { 0xffff, 0xffff, 0, 0 },
574 {
575 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
576 },
577 },
578
579 /* Lava Computers 2SP-PCI and Quattro-PCI serial ports */
580 { "Lava Computers dual serial port",
581 { 0x1407, 0x0100, 0, 0 },
582 { 0xffff, 0xfffc, 0, 0 },
583 {
584 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
585 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
586 },
587 },
588
589 /* Lava Computers DSerial PCI serial ports */
590 { "Lava Computers serial port",
591 { 0x1407, 0x0110, 0, 0 },
592 { 0xffff, 0xfffc, 0, 0 },
593 {
594 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
595 },
596 },
597
598 /* Lava Computers Octopus-550 serial ports */
599 { "Lava Computers Octopus-550 8-port serial",
600 { 0x1407, 0x0180, 0, 0 },
601 { 0xffff, 0xfffc, 0, 0 },
602 {
603 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
604 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
605 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
606 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
607 },
608 },
609
610 /* US Robotics (3Com) PCI Modems */
611 { "US Robotics (3Com) 3CP5609 PCI 16550 Modem",
612 { 0x12b9, 0x1008, 0, 0 },
613 { 0xffff, 0xffff, 0, 0 },
614 {
615 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
616 },
617 },
618
619 /* Actiontec 56K PCI Master */
620 { "Actiontec 56K PCI Master",
621 { 0x11c1, 0x0480, 0x0, 0x0 },
622 { 0xffff, 0xffff, 0x0, 0x0 },
623 {
624 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
625 },
626 },
627
628 /*
629 * Boards with an Oxford Semiconductor chip.
630 *
631 * Oxford Semiconductor provides documentation for their chip at:
632 * <URL:http://www.oxsemi.com/products/uarts/index.html>
633 *
634 * As sold by Kouwell <URL:http://www.kouwell.com/>.
635 * I/O Flex PCI I/O Card Model-223 with 4 serial and 1 parallel ports.
636 */
637
638 /* Oxford Semiconductor OX16PCI954 PCI UARTs */
639 { "Qxford Semiconductor OX16PCI954 UARTs",
640 { 0x1415, 0x9501, 0, 0 },
641 { 0xffff, 0xffff, 0, 0 },
642 {
643 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
644 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ },
645 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ },
646 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ },
647 },
648 },
649
650 /* Oxford Semiconductor OX16PCI954 PCI Parallel port */
651 { "Qxford Semiconductor OX16PCI954 Parallel port",
652 { 0x1415, 0x9513, 0, 0 },
653 { 0xffff, 0xffff, 0, 0 },
654 {
655 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
656 },
657 },
658
659 /* NetMos 2S1P PCI 16C650 : 2S, 1P */
660 { "NetMos NM9835 Dual UART and 1284 Printer port",
661 { 0x9710, 0x9835, 0, 0 },
662 { 0xffff, 0xffff, 0, 0 },
663 {
664 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
665 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
666 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
667 },
668 },
669
670 { 0 }
671 };
672