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