1 /* $NetBSD: pucdata.c,v 1.25 2001/12/16 22:23:01 thorpej Exp $ */
4 * Copyright (c) 1998, 1999 Christopher G. Demetriou. All rights reserved.
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
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
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.
32 * $FreeBSD: src/sys/dev/puc/pucdata.c,v 1.2.2.12 2003/05/14 09:43:22 wilko Exp $
33 * $DragonFly: src/sys/dev/misc/puc/pucdata.c,v 1.3 2003/08/07 21:16:58 dillon Exp $
37 * PCI "universal" communications card driver configuration data (used to
38 * match/attach the cards).
41 #include <sys/param.h>
44 #include <bus/pci/pcireg.h>
45 #include <bus/pci/pcivar.h>
46 #include <dev/serial/sio/sioreg.h>
49 #define COM_FREQ DEFAULT_RCLK
51 const struct puc_device_description puc_devices[] = {
53 { "Comtrol RocketPort 550/4 RJ45",
54 { 0x11fe, 0x8014, 0, 0 },
55 { 0xffff, 0xffff, 0, 0 },
57 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 4 },
58 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 4 },
59 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 4 },
60 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 4 },
64 { "Comtrol RocketPort 550/Quad",
65 { 0x11fe, 0x8015, 0, 0 },
66 { 0xffff, 0xffff, 0, 0 },
68 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 4 },
69 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 4 },
70 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 4 },
71 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 4 },
75 { "Comtrol RocketPort 550/8 RJ11 part A",
76 { 0x11fe, 0x8010, 0, 0 },
77 { 0xffff, 0xffff, 0, 0 },
79 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 4 },
80 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 4 },
81 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 4 },
82 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 4 },
85 { "Comtrol RocketPort 550/8 RJ11 part B",
86 { 0x11fe, 0x8011, 0, 0 },
87 { 0xffff, 0xffff, 0, 0 },
89 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 4 },
90 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 4 },
91 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 4 },
92 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 4 },
96 { "Comtrol RocketPort 550/8 Octa part A",
97 { 0x11fe, 0x8012, 0, 0 },
98 { 0xffff, 0xffff, 0, 0 },
100 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 4 },
101 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 4 },
102 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 4 },
103 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 4 },
106 { "Comtrol RocketPort 550/8 Octa part B",
107 { 0x11fe, 0x8013, 0, 0 },
108 { 0xffff, 0xffff, 0, 0 },
110 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 4 },
111 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 4 },
112 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 4 },
113 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 4 },
117 { "Comtrol RocketPort 550/8 part A",
118 { 0x11fe, 0x8018, 0, 0 },
119 { 0xffff, 0xffff, 0, 0 },
121 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 4 },
122 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 4 },
123 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 4 },
124 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 4 },
127 { "Comtrol RocketPort 550/8 part B",
128 { 0x11fe, 0x8019, 0, 0 },
129 { 0xffff, 0xffff, 0, 0 },
131 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 4 },
132 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 4 },
133 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 4 },
134 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 4 },
138 { "Comtrol RocketPort 550/16 part A",
139 { 0x11fe, 0x8016, 0, 0 },
140 { 0xffff, 0xffff, 0, 0 },
142 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 4 },
143 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 4 },
144 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 4 },
145 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 4 },
148 { "Comtrol RocketPort 550/16 part B",
149 { 0x11fe, 0x8017, 0, 0 },
150 { 0xffff, 0xffff, 0, 0 },
152 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 4 },
153 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 4 },
154 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 4 },
155 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 4 },
156 { PUC_PORT_TYPE_COM, 0x10, 0x20, COM_FREQ * 4 },
157 { PUC_PORT_TYPE_COM, 0x10, 0x28, COM_FREQ * 4 },
158 { PUC_PORT_TYPE_COM, 0x10, 0x30, COM_FREQ * 4 },
159 { PUC_PORT_TYPE_COM, 0x10, 0x38, COM_FREQ * 4 },
160 { PUC_PORT_TYPE_COM, 0x10, 0x40, COM_FREQ * 4 },
161 { PUC_PORT_TYPE_COM, 0x10, 0x48, COM_FREQ * 4 },
162 { PUC_PORT_TYPE_COM, 0x10, 0x50, COM_FREQ * 4 },
163 { PUC_PORT_TYPE_COM, 0x10, 0x58, COM_FREQ * 4 },
168 * XXX no entry because I have no data:
169 * XXX Dolphin Peripherals 4006 (single parallel)
173 * Dolphin Peripherals 4014 (dual parallel port) card. PLX 9050, with
174 * a seemingly-lame EEPROM setup that puts the Dolphin IDs
175 * into the subsystem fields, and claims that it's a
176 * network/misc (0x02/0x80) device.
178 { "Dolphin Peripherals 4014",
179 { 0x10b5, 0x9050, 0xd84d, 0x6810 },
180 { 0xffff, 0xffff, 0xffff, 0xffff },
182 { PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 },
183 { PUC_PORT_TYPE_LPT, 0x24, 0x00, 0x00 },
188 * XXX Dolphin Peripherals 4025 (single serial)
189 * (clashes with Dolphin Peripherals 4036 (2s variant)
193 * Dolphin Peripherals 4035 (dual serial port) card. PLX 9050, with
194 * a seemingly-lame EEPROM setup that puts the Dolphin IDs
195 * into the subsystem fields, and claims that it's a
196 * network/misc (0x02/0x80) device.
198 { "Dolphin Peripherals 4035",
199 { 0x10b5, 0x9050, 0xd84d, 0x6808 },
200 { 0xffff, 0xffff, 0xffff, 0xffff },
202 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
203 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
208 * Dolphin Peripherals 4036 (dual serial port) card.
209 * (Dolpin 4025 has the same ID but only one port)
211 { "Dolphin Peripherals 4036",
212 { 0x1409, 0x7168, 0x0, 0x0 },
213 { 0xffff, 0xffff, 0x0, 0x0 },
215 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8},
216 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8},
221 * XXX no entry because I have no data:
222 * XXX Dolphin Peripherals 4078 (dual serial and single parallel)
229 * SIIG provides documentation for their boards at:
230 * <URL:http://www.siig.com/driver.htm>
232 * Please excuse the weird ordering, it's the order they
233 * use in their documentation.
237 * SIIG "10x" family boards.
240 /* SIIG Cyber Serial PCI 16C550 (10x family): 1S */
241 { "SIIG Cyber Serial PCI 16C550 (10x family)",
242 { 0x131f, 0x1000, 0, 0 },
243 { 0xffff, 0xffff, 0, 0 },
245 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
249 /* SIIG Cyber Serial PCI 16C650 (10x family): 1S */
250 { "SIIG Cyber Serial PCI 16C650 (10x family)",
251 { 0x131f, 0x1001, 0, 0 },
252 { 0xffff, 0xffff, 0, 0 },
254 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
258 /* SIIG Cyber Serial PCI 16C850 (10x family): 1S */
259 { "SIIG Cyber Serial PCI 16C850 (10x family)",
260 { 0x131f, 0x1002, 0, 0 },
261 { 0xffff, 0xffff, 0, 0 },
263 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
267 /* SIIG Cyber I/O PCI 16C550 (10x family): 1S, 1P */
268 { "SIIG Cyber I/O PCI 16C550 (10x family)",
269 { 0x131f, 0x1010, 0, 0 },
270 { 0xffff, 0xffff, 0, 0 },
272 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
273 { PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 },
277 /* SIIG Cyber I/O PCI 16C650 (10x family): 1S, 1P */
278 { "SIIG Cyber I/O PCI 16C650 (10x family)",
279 { 0x131f, 0x1011, 0, 0 },
280 { 0xffff, 0xffff, 0, 0 },
282 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
283 { PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 },
287 /* SIIG Cyber I/O PCI 16C850 (10x family): 1S, 1P */
288 { "SIIG Cyber I/O PCI 16C850 (10x family)",
289 { 0x131f, 0x1012, 0, 0 },
290 { 0xffff, 0xffff, 0, 0 },
292 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
293 { PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 },
297 /* SIIG Cyber Parallel PCI (10x family): 1P */
298 { "SIIG Cyber Parallel PCI (10x family)",
299 { 0x131f, 0x1020, 0, 0 },
300 { 0xffff, 0xffff, 0, 0 },
302 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
306 /* SIIG Cyber Parallel Dual PCI (10x family): 2P */
307 { "SIIG Cyber Parallel Dual PCI (10x family)",
308 { 0x131f, 0x1021, 0, 0 },
309 { 0xffff, 0xffff, 0, 0 },
311 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
312 { PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 },
316 /* SIIG Cyber Serial Dual PCI 16C550 (10x family): 2S */
317 { "SIIG Cyber Serial Dual PCI 16C550 (10x family)",
318 { 0x131f, 0x1030, 0, 0 },
319 { 0xffff, 0xffff, 0, 0 },
321 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
322 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
326 /* SIIG Cyber Serial Dual PCI 16C650 (10x family): 2S */
327 { "SIIG Cyber Serial Dual PCI 16C650 (10x family)",
328 { 0x131f, 0x1031, 0, 0 },
329 { 0xffff, 0xffff, 0, 0 },
331 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
332 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
336 /* SIIG Cyber Serial Dual PCI 16C850 (10x family): 2S */
337 { "SIIG Cyber Serial Dual PCI 16C850 (10x family)",
338 { 0x131f, 0x1032, 0, 0 },
339 { 0xffff, 0xffff, 0, 0 },
341 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
342 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
346 /* SIIG Cyber 2S1P PCI 16C550 (10x family): 2S, 1P */
347 { "SIIG Cyber 2S1P PCI 16C550 (10x family)",
348 { 0x131f, 0x1034, 0, 0 }, /* XXX really? */
349 { 0xffff, 0xffff, 0, 0 },
351 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
352 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
353 { PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 },
357 /* SIIG Cyber 2S1P PCI 16C650 (10x family): 2S, 1P */
358 { "SIIG Cyber 2S1P PCI 16C650 (10x family)",
359 { 0x131f, 0x1035, 0, 0 }, /* XXX really? */
360 { 0xffff, 0xffff, 0, 0 },
362 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
363 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
364 { PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 },
368 /* SIIG Cyber 2S1P PCI 16C850 (10x family): 2S, 1P */
369 { "SIIG Cyber 2S1P PCI 16C850 (10x family)",
370 { 0x131f, 0x1036, 0, 0 }, /* XXX really? */
371 { 0xffff, 0xffff, 0, 0 },
373 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
374 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
375 { PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 },
379 /* SIIG Cyber 4S PCI 16C550 (10x family): 4S */
380 { "SIIG Cyber 4S PCI 16C550 (10x family)",
381 { 0x131f, 0x1050, 0, 0 },
382 { 0xffff, 0xffff, 0, 0 },
384 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
385 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
386 { PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ },
387 { PUC_PORT_TYPE_COM, 0x24, 0x00, COM_FREQ },
391 /* SIIG Cyber 4S PCI 16C650 (10x family): 4S */
392 { "SIIG Cyber 4S PCI 16C650 (10x family)",
393 { 0x131f, 0x1051, 0, 0 },
394 { 0xffff, 0xffff, 0, 0 },
396 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
397 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
398 { PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ },
399 { PUC_PORT_TYPE_COM, 0x24, 0x00, COM_FREQ },
403 /* SIIG Cyber 4S PCI 16C850 (10x family): 4S */
404 { "SIIG Cyber 4S PCI 16C850 (10x family)",
405 { 0x131f, 0x1052, 0, 0 },
406 { 0xffff, 0xffff, 0, 0 },
408 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
409 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
410 { PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ },
411 { PUC_PORT_TYPE_COM, 0x24, 0x00, COM_FREQ },
416 * SIIG "20x" family boards.
419 /* SIIG Cyber Parallel PCI (20x family): 1P */
420 { "SIIG Cyber Parallel PCI (20x family)",
421 { 0x131f, 0x2020, 0, 0 },
422 { 0xffff, 0xffff, 0, 0 },
424 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
428 /* SIIG Cyber Parallel Dual PCI (20x family): 2P */
429 { "SIIG Cyber Parallel Dual PCI (20x family)",
430 { 0x131f, 0x2021, 0, 0 },
431 { 0xffff, 0xffff, 0, 0 },
433 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
434 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
438 /* SIIG Cyber 2P1S PCI 16C550 (20x family): 1S, 2P */
439 { "SIIG Cyber 2P1S PCI 16C550 (20x family)",
440 { 0x131f, 0x2040, 0, 0 },
441 { 0xffff, 0xffff, 0, 0 },
443 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
444 { PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 },
445 { PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 },
449 /* SIIG Cyber 2P1S PCI 16C650 (20x family): 1S, 2P */
450 { "SIIG Cyber 2P1S PCI 16C650 (20x family)",
451 { 0x131f, 0x2041, 0, 0 },
452 { 0xffff, 0xffff, 0, 0 },
454 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
455 { PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 },
456 { PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 },
460 /* SIIG Cyber 2P1S PCI 16C850 (20x family): 1S, 2P */
461 { "SIIG Cyber 2P1S PCI 16C850 (20x family)",
462 { 0x131f, 0x2042, 0, 0 },
463 { 0xffff, 0xffff, 0, 0 },
465 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
466 { PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 },
467 { PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 },
471 /* SIIG Cyber Serial PCI 16C550 (20x family): 1S */
472 { "SIIG Cyber Serial PCI 16C550 (20x family)",
473 { 0x131f, 0x2000, 0, 0 },
474 { 0xffff, 0xffff, 0, 0 },
476 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
480 /* SIIG Cyber Serial PCI 16C650 (20x family): 1S */
481 { "SIIG Cyber Serial PCI 16C650 (20x family)",
482 { 0x131f, 0x2001, 0, 0 },
483 { 0xffff, 0xffff, 0, 0 },
485 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
489 /* SIIG Cyber Serial PCI 16C850 (20x family): 1S */
490 { "SIIG Cyber Serial PCI 16C850 (20x family)",
491 { 0x131f, 0x2002, 0, 0 },
492 { 0xffff, 0xffff, 0, 0 },
494 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
498 /* SIIG Cyber I/O PCI 16C550 (20x family): 1S, 1P */
499 { "SIIG Cyber I/O PCI 16C550 (20x family)",
500 { 0x131f, 0x2010, 0, 0 },
501 { 0xffff, 0xffff, 0, 0 },
503 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
504 { PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 },
508 /* SIIG Cyber I/O PCI 16C650 (20x family): 1S, 1P */
509 { "SIIG Cyber I/O PCI 16C650 (20x family)",
510 { 0x131f, 0x2011, 0, 0 },
511 { 0xffff, 0xffff, 0, 0 },
513 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
514 { PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 },
518 /* SIIG Cyber I/O PCI 16C850 (20x family): 1S, 1P */
519 { "SIIG Cyber I/O PCI 16C850 (20x family)",
520 { 0x131f, 0x2012, 0, 0 },
521 { 0xffff, 0xffff, 0, 0 },
523 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
524 { PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 },
528 /* SIIG Cyber Serial Dual PCI 16C550 (20x family): 2S */
529 { "SIIG Cyber Serial Dual PCI 16C550 (20x family)",
530 { 0x131f, 0x2030, 0, 0 },
531 { 0xffff, 0xffff, 0, 0 },
533 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
534 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
538 /* SIIG Cyber Serial Dual PCI 16C650 (20x family): 2S */
539 { "SIIG Cyber Serial Dual PCI 16C650 (20x family)",
540 { 0x131f, 0x2031, 0, 0 },
541 { 0xffff, 0xffff, 0, 0 },
543 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
544 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
548 /* SIIG Cyber Serial Dual PCI 16C850 (20x family): 2S */
549 { "SIIG Cyber Serial Dual PCI 16C850 (20x family)",
550 { 0x131f, 0x2032, 0, 0 },
551 { 0xffff, 0xffff, 0, 0 },
553 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
554 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
558 /* SIIG Cyber 2S1P PCI 16C550 (20x family): 2S, 1P */
559 { "SIIG Cyber 2S1P PCI 16C550 (20x family)",
560 { 0x131f, 0x2060, 0, 0 },
561 { 0xffff, 0xffff, 0, 0 },
563 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
564 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
565 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
569 /* SIIG Cyber 2S1P PCI 16C650 (20x family): 2S, 1P */
570 { "SIIG Cyber 2S1P PCI 16C650 (20x family)",
571 { 0x131f, 0x2061, 0, 0 },
572 { 0xffff, 0xffff, 0, 0 },
574 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
575 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
576 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
580 /* SIIG Cyber 2S1P PCI 16C850 (20x family): 2S, 1P */
581 { "SIIG Cyber 2S1P PCI 16C850 (20x family)",
582 { 0x131f, 0x2062, 0, 0 },
583 { 0xffff, 0xffff, 0, 0 },
585 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
586 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
587 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
591 /* SIIG Cyber 4S PCI 16C550 (20x family): 4S */
592 { "SIIG Cyber 4S PCI 16C550 (20x family)",
593 { 0x131f, 0x2050, 0, 0 },
594 { 0xffff, 0xffff, 0, 0 },
596 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
597 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
598 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
599 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
603 /* SIIG Cyber 4S PCI 16C650 (20x family): 4S */
604 { "SIIG Cyber 4S PCI 16C650 (20x family)",
605 { 0x131f, 0x2051, 0, 0 },
606 { 0xffff, 0xffff, 0, 0 },
608 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
609 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
610 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
611 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
615 /* SIIG Cyber 4S PCI 16C850 (20x family): 4S */
616 { "SIIG Cyber 4S PCI 16C850 (20x family)",
617 { 0x131f, 0x2052, 0, 0 },
618 { 0xffff, 0xffff, 0, 0 },
620 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
621 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
622 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
623 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
627 /* VScom PCI-200L: 2S */
629 { 0x14d2, 0x8020, 0, 0 },
630 { 0xffff, 0xffff, 0, 0 },
632 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ * 8},
633 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8},
637 /* VScom PCI-400: 4S */
639 { 0x10b5, 0x1077, 0x10b5, 0x1077 },
640 { 0xffff, 0xffff, 0xffff, 0xffff },
642 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
643 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 },
644 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 },
645 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 },
649 /* VScom PCI-800: 8S */
651 { 0x10b5, 0x1076, 0x10b5, 0x1076 },
652 { 0xffff, 0xffff, 0xffff, 0xffff },
654 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
655 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 },
656 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 },
657 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 },
658 { PUC_PORT_TYPE_COM, 0x18, 0x20, COM_FREQ * 8 },
659 { PUC_PORT_TYPE_COM, 0x18, 0x28, COM_FREQ * 8 },
660 { PUC_PORT_TYPE_COM, 0x18, 0x30, COM_FREQ * 8 },
661 { PUC_PORT_TYPE_COM, 0x18, 0x38, COM_FREQ * 8 },
665 * VScom PCI-800H. Uses 8 16950 UART, behind a PCI chips that offers
666 * 4 com port on PCI device 0 and 4 on PCI device 1. PCI device 0 has
667 * device ID 3 and PCI device 1 device ID 4.
670 { 0x14d2, 0xa003, 0, 0 },
671 { 0xffff, 0xffff, 0, 0 },
673 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 },
674 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8 },
675 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 8 },
676 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 8 },
680 { 0x14d2, 0xa004, 0, 0 },
681 { 0xffff, 0xffff, 0, 0 },
683 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 },
684 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8 },
685 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 8 },
686 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 8 },
690 { 0x14d2, 0xa005, 0, 0 },
691 { 0xffff, 0xffff, 0, 0 },
693 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 },
694 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8 },
698 /* NEC PK-UG-X001 K56flex PCI Modem card.
699 NEC MARTH bridge chip and Rockwell RCVDL56ACF/SP using. */
700 { "NEC PK-UG-X001 K56flex PCI Modem",
701 { 0x1033, 0x0074, 0x1033, 0x8014 },
702 { 0xffff, 0xffff, 0xffff, 0xffff },
704 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
710 { 0x1033, 0x007d, 0x1033, 0x8012 },
711 { 0xffff, 0xffff, 0xffff, 0xffff },
713 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ},
717 /* Lava Computers 2SP-PCI */
718 { "Lava Computers 2SP-PCI parallel port",
719 { 0x1407, 0x8000, 0, 0 },
720 { 0xffff, 0xffff, 0, 0 },
722 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
726 /* Lava Computers 2SP-PCI and Quattro-PCI serial ports */
727 { "Lava Computers dual serial port",
728 { 0x1407, 0x0100, 0, 0 },
729 { 0xffff, 0xfffc, 0, 0 },
731 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
732 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
736 /* Lava Computers newer Quattro-PCI serial ports */
737 { "Lava Computers Quattro-PCI serial port",
738 { 0x1407, 0x0120, 0, 0 },
739 { 0xffff, 0xfffc, 0, 0 },
741 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
742 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
746 /* Lava Computers DSerial PCI serial ports */
747 { "Lava Computers serial port",
748 { 0x1407, 0x0110, 0, 0 },
749 { 0xffff, 0xfffc, 0, 0 },
751 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
755 /* Lava Computers Octopus-550 serial ports */
756 { "Lava Computers Octopus-550 8-port serial",
757 { 0x1407, 0x0180, 0, 0 },
758 { 0xffff, 0xfffc, 0, 0 },
760 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
761 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
762 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
763 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
767 /* US Robotics (3Com) PCI Modems */
768 { "US Robotics (3Com) 3CP5609 PCI 16550 Modem",
769 { 0x12b9, 0x1008, 0, 0 },
770 { 0xffff, 0xffff, 0, 0 },
772 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
776 /* Actiontec 56K PCI Master */
777 { "Actiontec 56K PCI Master",
778 { 0x11c1, 0x0480, 0x0, 0x0 },
779 { 0xffff, 0xffff, 0x0, 0x0 },
781 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
786 * Boards with an Oxford Semiconductor chip.
788 * Oxford Semiconductor provides documentation for their chip at:
789 * <URL:http://www.oxsemi.com/products/uarts/index.html>
791 * As sold by Kouwell <URL:http://www.kouwell.com/>.
792 * I/O Flex PCI I/O Card Model-223 with 4 serial and 1 parallel ports.
795 /* Oxford Semiconductor OX16PCI954 PCI UARTs */
796 { "Oxford Semiconductor OX16PCI954 UARTs",
797 { 0x1415, 0x9501, 0, 0 },
798 { 0xffff, 0xffff, 0, 0 },
800 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
801 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ },
802 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ },
803 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ },
807 /* Oxford Semiconductor OX16PCI954 PCI Parallel port */
808 { "Oxford Semiconductor OX16PCI954 Parallel port",
809 { 0x1415, 0x9513, 0, 0 },
810 { 0xffff, 0xffff, 0, 0 },
812 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
816 /* NetMos 2S1P PCI 16C650 : 2S, 1P */
817 { "NetMos NM9835 Dual UART and 1284 Printer port",
818 { 0x9710, 0x9835, 0, 0 },
819 { 0xffff, 0xffff, 0, 0 },
821 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
822 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
823 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
827 /* NetMos 4S0P PCI: 4S, 0P */
828 { "NetMos NM9845 Quad UART",
829 { 0x9710, 0x9845, 0, 0 },
830 { 0xffff, 0xffff, 0, 0 },
832 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
833 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
834 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
835 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
840 * This is the Middle Digital, Inc. PCI-Weasel, which
841 * uses a PCI interface implemented in FPGA.
843 { "Middle Digital, Inc. Weasel serial port",
844 { 0xdeaf, 0x9051, 0, 0 },
845 { 0xffff, 0xffff, 0, 0 },
847 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
851 /* SD-LAB PCI I/O Card 4S2P */
852 { "Syba Tech Ltd. PCI-4S2P-550-ECP",
853 { 0x1592, 0x0781, 0, 0 },
854 { 0xffff, 0xffff, 0, 0 },
856 { PUC_PORT_TYPE_COM, 0x10, 0x2e8, COM_FREQ },
857 { PUC_PORT_TYPE_COM, 0x10, 0x2f8, COM_FREQ },
858 { PUC_PORT_TYPE_LPT, 0x10, 0x000, 0x00 },
859 { PUC_PORT_TYPE_COM, 0x10, 0x3e8, COM_FREQ },
860 { PUC_PORT_TYPE_COM, 0x10, 0x3f8, COM_FREQ },
861 { PUC_PORT_TYPE_LPT, 0x10, 0x000, 0x00 },
865 /* Moxa Technologies Co., Ltd. PCI I/O Card 4S RS232/422/485 */
866 { "Moxa Technologies, Industio CP-114",
867 { 0x1393, 0x1141, 0, 0 },
868 { 0xffff, 0xffff, 0, 0, },
870 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
871 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 },
872 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 },
873 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 },
877 /* Moxa Technologies Co., Ltd. PCI I/O Card 8S RS232 */
878 { "Moxa Technologies, C168H/PCI",
879 { 0x1393, 0x1680, 0, 0 },
880 { 0xffff, 0xffff, 0, 0, },
882 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
883 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 },
884 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 },
885 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 },
886 { PUC_PORT_TYPE_COM, 0x18, 0x20, COM_FREQ * 8 },
887 { PUC_PORT_TYPE_COM, 0x18, 0x28, COM_FREQ * 8 },
888 { PUC_PORT_TYPE_COM, 0x18, 0x30, COM_FREQ * 8 },
889 { PUC_PORT_TYPE_COM, 0x18, 0x38, COM_FREQ * 8 },
893 { "Avlab Technology, PCI IO 2S",
894 { 0x14db, 0x2130, 0, 0 },
895 { 0xffff, 0xffff, 0, 0 },
897 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
898 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
902 /* Avlab Technology, Inc. Low Profile PCI 4 Serial: 4S */
903 { "Avlab Low Profile PCI 4 Serial",
904 { 0x14db, 0x2150, 0, 0 },
905 { 0xffff, 0xffff, 0, 0 },
907 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
908 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
909 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
910 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
914 /* Decision Computer Inc, serial ports */
915 { "Decision Computer Inc, PCCOM 4-port serial",
916 { 0x6666, 0x0001, 0, 0 },
917 { 0xffff, 0xffff, 0, 0 },
919 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
920 { PUC_PORT_TYPE_COM, 0x1c, 0x08, COM_FREQ },
921 { PUC_PORT_TYPE_COM, 0x1c, 0x10, COM_FREQ },
922 { PUC_PORT_TYPE_COM, 0x1c, 0x18, COM_FREQ },
926 { "PCCOM dual port RS232/422/485",
927 { 0x6666, 0x0004, 0, 0 },
928 { 0xffff, 0xffff, 0, 0 },
930 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
931 { PUC_PORT_TYPE_COM, 0x1c, 0x08, COM_FREQ },
935 { "IC Book Labs Dreadnought x16 Lite",
936 { 0xb00c, 0x091c, 0, 0 },
937 { 0xffff, 0xffff, 0, 0 },
939 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
940 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ },
941 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ },
942 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ },
943 { PUC_PORT_TYPE_COM, 0x10, 0x20, COM_FREQ },
944 { PUC_PORT_TYPE_COM, 0x10, 0x28, COM_FREQ },
945 { PUC_PORT_TYPE_COM, 0x10, 0x30, COM_FREQ },
946 { PUC_PORT_TYPE_COM, 0x10, 0x38, COM_FREQ },
947 { PUC_PORT_TYPE_COM, 0x10, 0x40, COM_FREQ },
948 { PUC_PORT_TYPE_COM, 0x10, 0x48, COM_FREQ },
949 { PUC_PORT_TYPE_COM, 0x10, 0x50, COM_FREQ },
950 { PUC_PORT_TYPE_COM, 0x10, 0x58, COM_FREQ },
951 { PUC_PORT_TYPE_COM, 0x10, 0x60, COM_FREQ },
952 { PUC_PORT_TYPE_COM, 0x10, 0x68, COM_FREQ },
953 { PUC_PORT_TYPE_COM, 0x10, 0x70, COM_FREQ },
954 { PUC_PORT_TYPE_COM, 0x10, 0x78, COM_FREQ },
956 PUC_ILR_TYPE_DIGI, { 0x07, 0x47 },
959 { "IC Book Labs Dreadnought x16 Pro",
960 { 0xb00c, 0x081c, 0, 0 },
961 { 0xffff, 0xffff, 0, 0 },
963 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8, 0x200000 },
964 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8, 0x200000 },
965 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 8, 0x200000 },
966 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 8, 0x200000 },
967 { PUC_PORT_TYPE_COM, 0x10, 0x20, COM_FREQ * 8, 0x200000 },
968 { PUC_PORT_TYPE_COM, 0x10, 0x28, COM_FREQ * 8, 0x200000 },
969 { PUC_PORT_TYPE_COM, 0x10, 0x30, COM_FREQ * 8, 0x200000 },
970 { PUC_PORT_TYPE_COM, 0x10, 0x38, COM_FREQ * 8, 0x200000 },
971 { PUC_PORT_TYPE_COM, 0x10, 0x40, COM_FREQ * 8, 0x200000 },
972 { PUC_PORT_TYPE_COM, 0x10, 0x48, COM_FREQ * 8, 0x200000 },
973 { PUC_PORT_TYPE_COM, 0x10, 0x50, COM_FREQ * 8, 0x200000 },
974 { PUC_PORT_TYPE_COM, 0x10, 0x58, COM_FREQ * 8, 0x200000 },
975 { PUC_PORT_TYPE_COM, 0x10, 0x60, COM_FREQ * 8, 0x200000 },
976 { PUC_PORT_TYPE_COM, 0x10, 0x68, COM_FREQ * 8, 0x200000 },
977 { PUC_PORT_TYPE_COM, 0x10, 0x70, COM_FREQ * 8, 0x200000 },
978 { PUC_PORT_TYPE_COM, 0x10, 0x78, COM_FREQ * 8, 0x200000 },
980 PUC_ILR_TYPE_DIGI, { 0x07, 0x47 },