pucdata.c revision 1.15 1 /* $NetBSD: pucdata.c,v 1.15 2001/02/14 15:07:28 christos 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
496 /*
497 * VScom PCI-800, as sold on http://www.swann.com.au/isp/titan.html.
498 * Some PLX chip. Note: This board has a software selectable(?)
499 * clock multiplier which this driver doesn't support, so you'll
500 * have to use an appropriately scaled baud rate when talking to
501 * the card.
502 */
503 { "VScom PCI-800",
504 { 0x10b5, 0x1076, 0x10b5, 0x1076 },
505 { 0xffff, 0xffff, 0xffff, 0xffff },
506 {
507 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
508 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ },
509 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ },
510 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ },
511 { PUC_PORT_TYPE_COM, 0x18, 0x20, COM_FREQ },
512 { PUC_PORT_TYPE_COM, 0x18, 0x28, COM_FREQ },
513 { PUC_PORT_TYPE_COM, 0x18, 0x30, COM_FREQ },
514 { PUC_PORT_TYPE_COM, 0x18, 0x38, COM_FREQ },
515 },
516 },
517 /*
518 * VScom PCI-800H. Uses 8 16950 UART, behind a PCI chips that offers
519 * 4 com port on PCI device 0 and 4 on PCI device 1. PCI device 0 has
520 * device ID 3 and PCI device 1 device ID 4. Uses a 14.7456 Mhz crystal
521 * instead of the standart 1.8432Mhz.
522 */
523 { "VScom PCI-800H",
524 { 0x14d2, 0xa003, 0, 0 },
525 { 0xffff, 0xffff, 0, 0 },
526 {
527 { PUC_PORT_TYPE_COM, 0x10, 0x00, 14745600 },
528 { PUC_PORT_TYPE_COM, 0x10, 0x08, 14745600 },
529 { PUC_PORT_TYPE_COM, 0x10, 0x10, 14745600 },
530 { PUC_PORT_TYPE_COM, 0x10, 0x18, 14745600 },
531 },
532 },
533 { "VScom PCI-800H",
534 { 0x14d2, 0xa004, 0, 0 },
535 { 0xffff, 0xffff, 0, 0 },
536 {
537 { PUC_PORT_TYPE_COM, 0x10, 0x00, 14745600 },
538 { PUC_PORT_TYPE_COM, 0x10, 0x08, 14745600 },
539 { PUC_PORT_TYPE_COM, 0x10, 0x10, 14745600 },
540 { PUC_PORT_TYPE_COM, 0x10, 0x18, 14745600 },
541 },
542 },
543
544 /* NEC PK-UG-X001 K56flex PCI Modem card.
545 NEC MARTH bridge chip and Rockwell RCVDL56ACF/SP using. */
546 { "NEC PK-UG-X001 K56flex PCI Modem",
547 { 0x1033, 0x0074, 0x1033, 0x8014 },
548 { 0xffff, 0xffff, 0xffff, 0xffff },
549 {
550 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
551 },
552 },
553
554 /*NEC PK-UG-X008 */
555 { "NEC PK-UG-X008",
556 { 0x1033, 0x007d, 0x1033, 0x8012 },
557 { 0xffff, 0xffff, 0xffff, 0xffff },
558 {
559 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ},
560 },
561 },
562
563 /* Lava Computers 2SP-PCI */
564 { "Lava Computers 2SP-PCI parallel port",
565 { 0x1407, 0x8000, 0, 0 },
566 { 0xffff, 0xffff, 0, 0 },
567 {
568 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
569 },
570 },
571
572 /* Lava Computers 2SP-PCI and Quattro-PCI serial ports */
573 { "Lava Computers dual serial port",
574 { 0x1407, 0x0100, 0, 0 },
575 { 0xffff, 0xfffc, 0, 0 },
576 {
577 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
578 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
579 },
580 },
581
582 /* Lava Computers Octopus-550 serial ports */
583 { "Lava Computers Octopus-550 8-port serial",
584 { 0x1407, 0x0180, 0, 0 },
585 { 0xffff, 0xfffc, 0, 0 },
586 {
587 { PUC_PORT_TYPE_COM, 0x10, 0x00 },
588 { PUC_PORT_TYPE_COM, 0x14, 0x00 },
589 { PUC_PORT_TYPE_COM, 0x18, 0x00 },
590 { PUC_PORT_TYPE_COM, 0x1c, 0x00 },
591 },
592 },
593
594 /* US Robotics (3Com) PCI Modems */
595 { "US Robotics (3Com) 3CP5609 PCI 16550 Modem",
596 { 0x12b9, 0x1008, 0, 0 },
597 { 0xffff, 0xffff, 0, 0 },
598 {
599 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
600 },
601 },
602
603 /* Actiontec 56K PCI Master */
604 { "Actiontec 56K PCI Master",
605 { 0x11c1, 0x0480, 0x0, 0x0 },
606 { 0xffff, 0xffff, 0x0, 0x0 },
607 {
608 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
609 },
610 },
611
612 /*
613 * Boards with an Oxford Semiconductor chip.
614 *
615 * Oxford Semiconductor provides documentation for their chip at:
616 * <URL:http://www.oxsemi.com/products/uarts/index.html>
617 *
618 * As sold by Kouwell <URL:http://www.kouwell.com/>.
619 * I/O Flex PCI I/O Card Model-223 with 4 serial and 1 parallel ports.
620 */
621
622 /* Oxford Semiconductor OX16PCI954 PCI UARTs */
623 { "Qxford Semiconductor OX16PCI954 UARTs",
624 { 0x1415, 0x9501, 0, 0 },
625 { 0xffff, 0xffff, 0, 0 },
626 {
627 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
628 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ },
629 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ },
630 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ },
631 },
632 },
633
634 /* Oxford Semiconductor OX16PCI954 PCI Parallel port */
635 { "Qxford Semiconductor OX16PCI954 Parallel port",
636 { 0x1415, 0x9513, 0, 0 },
637 { 0xffff, 0xffff, 0, 0 },
638 {
639 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
640 },
641 },
642
643 { 0 }
644 };
645