xref: /netbsd-src/sys/dev/pci/pucdata.c (revision 7f21db1c0118155e0dd40b75182e30c589d9f63e)
1 /*	$NetBSD: pucdata.c,v 1.59 2010/01/19 12:11:21 mbalmer 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.59 2010/01/19 12:11:21 mbalmer Exp $");
40 
41 #include <sys/param.h>
42 #include <sys/systm.h>
43 #include <sys/device.h>
44 
45 #include <dev/pci/pcidevs.h>
46 #include <dev/pci/pcireg.h>
47 #include <dev/pci/pcivar.h>
48 #include <dev/pci/pucvar.h>
49 #include <dev/ic/comreg.h>
50 
51 const struct puc_device_description puc_devices[] = {
52 	/*
53 	 * SUNIX 40XX series of serial/parallel combo cards.
54 	 * Tested with 4055A and 4065A.
55 	 */
56 	{   "SUNIX 400X 1P",
57 	    {	0x1409,	0x7168,	0x1409,	0x4000 },
58 	    {	0xffff,	0xffff,	0xffff,	0xeff0 },
59 	    {
60 		{ PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
61 	    },
62 	},
63 
64 	{   "SUNIX 401X 2P",
65 	    {	0x1409,	0x7168,	0x1409,	0x4010 },
66 	    {	0xffff,	0xffff,	0xffff,	0xeff0 },
67 	    {
68 		{ PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
69 		{ PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
70 	    },
71 	},
72 
73 	{   "SUNIX 402X 1S",
74 	    {	0x1409,	0x7168,	0x1409,	0x4020 },
75 	    {	0xffff,	0xffff,	0xffff,	0xeff0 },
76 	    {
77 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8},
78 	    },
79 	},
80 
81 	{   "SUNIX 403X 2S",
82 	    {	0x1409,	0x7168,	0x1409,	0x4030 },
83 	    {	0xffff,	0xffff,	0xffff,	0xeff0 },
84 	    {
85 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8},
86 		{ PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8},
87 	    },
88 	},
89 
90 	{   "SUNIX 405X 4S",
91 	    {	0x1409,	0x7168,	0x1409,	0x4050 },
92 	    {	0xffff,	0xffff,	0xffff,	0xeff0 },
93 	    {
94 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8},
95 		{ PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8},
96 		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ},
97 		{ PUC_PORT_TYPE_COM, 0x14, 0x08, COM_FREQ},
98 	    },
99 	},
100 
101 	{   "SUNIX 406X 8S",
102 	    {	0x1409,	0x7168,	0x1409,	0x4060 },
103 	    {	0xffff,	0xffff,	0xffff,	0xeff0 },
104 	    {
105 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8},
106 		{ PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8},
107 		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ},
108 		{ PUC_PORT_TYPE_COM, 0x14, 0x08, COM_FREQ},
109 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ},
110 		{ PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ},
111 		{ PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ},
112 		{ PUC_PORT_TYPE_COM, 0x24, 0x00, COM_FREQ},
113 	    },
114 	},
115 
116 	{   "SUNIX 407X 2S/1P",
117 	    {	0x1409,	0x7168,	0x1409,	0x4070 },
118 	    {	0xffff,	0xffff,	0xffff,	0xeff0 },
119 	    {
120 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8},
121 		{ PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8},
122 		{ PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
123 	    },
124 	},
125 
126 	{   "SUNIX 408X 2S/2P",
127 	    {	0x1409,	0x7168,	0x1409,	0x4080 },
128 	    {	0xffff,	0xffff,	0xffff,	0xeff0 },
129 	    {
130 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8},
131 		{ PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8},
132 		{ PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
133 		{ PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 },
134 	    },
135 	},
136 
137 	{   "SUNIX 409X 4S/2P",
138 	    {	0x1409,	0x7168,	0x1409,	0x4090 },
139 	    {	0xffff,	0xffff,	0xffff,	0xeff0 },
140 	    {
141 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8},
142 		{ PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8},
143 		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ},
144 		{ PUC_PORT_TYPE_COM, 0x14, 0x08, COM_FREQ},
145 		{ PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
146 		{ PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 },
147 	    },
148 	},
149 
150 	/*
151 	 * XXX no entry because I have no data:
152 	 * XXX Dolphin Peripherals 4006 (single parallel)
153 	 */
154 
155 	/*
156 	 * Dolphin Peripherals 4014 (dual parallel port) card.  PLX 9050, with
157 	 * a seemingly-lame EEPROM setup that puts the Dolphin IDs
158 	 * into the subsystem fields, and claims that it's a
159 	 * network/misc (0x02/0x80) device.
160 	 */
161 	{   "Dolphin Peripherals 4014",
162 	    {	0x10b5,	0x9050,	0xd84d,	0x6810	},
163 	    {	0xffff,	0xffff,	0xffff,	0xffff	},
164 	    {
165 		{ PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 },
166 		{ PUC_PORT_TYPE_LPT, 0x24, 0x00, 0x00 },
167 	    },
168 	},
169 
170 	/*
171 	 * XXX Dolphin Peripherals 4025 (single serial)
172 	 * (clashes with Dolphin Peripherals  4036 (2s variant)
173 	 */
174 
175 	/*
176 	 * Dolphin Peripherals 4035 (dual serial port) card.  PLX 9050, with
177 	 * a seemingly-lame EEPROM setup that puts the Dolphin IDs
178 	 * into the subsystem fields, and claims that it's a
179 	 * network/misc (0x02/0x80) device.
180 	 */
181 	{   "Dolphin Peripherals 4035",
182 	    {	0x10b5,	0x9050,	0xd84d,	0x6808	},
183 	    {	0xffff,	0xffff,	0xffff,	0xffff	},
184 	    {
185 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
186 		{ PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
187 	    },
188 	},
189 
190 	/*
191 	 * Dolphin Peripherals 4036 (dual serial port) card.
192 	 * (Dolpin 4025 has the same ID but only one port)
193 	 */
194 	{   "Dolphin Peripherals 4036",
195 	    {	0x1409,	0x7168,	0x0,	0x0	},
196 	    {	0xffff,	0xffff,	0x0,	0x0	},
197 	    {
198 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8},
199 		{ PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8},
200 	    },
201 	},
202 
203 	/*
204 	 * XXX no entry because I have no data:
205 	 * XXX Dolphin Peripherals 4078 (dual serial and single parallel)
206 	 */
207 
208 	/* IBM SurePOS 300 Series (481033H) serial ports */
209 	{   "IBM SurePOS 300 Series (481033H)",
210 	    {   PCI_VENDOR_IBM, PCI_PRODUCT_IBM_4810_SCC, 0, 0 },
211 	    {   0xffff, 0xfff,                            0, 0 },
212 	    {
213 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, /* Port C */
214 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, /* Port D */
215 		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ }, /* Port E */
216 		{ PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ }, /* Port F */
217 	    },
218 	},
219 
220 	/*
221 	 * SIIG Boards.
222 	 *
223 	 * SIIG provides documentation for their boards at:
224 	 * <URL:http://www.siig.com/driver.htm>
225 	 *
226 	 * Please excuse the weird ordering, it's the order they
227 	 * use in their documentation.
228 	 */
229 
230 	/*
231 	 * SIIG "10x" family boards.
232 	 */
233 
234 	/* SIIG Cyber Serial PCI 16C550 (10x family): 1S */
235 	{   "SIIG Cyber Serial PCI 16C550 (10x family)",
236 	    {	0x131f,	0x1000,	0,	0	},
237 	    {	0xffff,	0xffff,	0,	0	},
238 	    {
239 		{ PUC_PORT_TYPE_COM, 0x18, 0x00,
240 		    (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR1 },
241 	    },
242 	},
243 
244 	/* SIIG Cyber Serial PCI 16C650 (10x family): 1S */
245 	{   "SIIG Cyber Serial PCI 16C650 (10x family)",
246 	    {	0x131f,	0x1001,	0,	0	},
247 	    {	0xffff,	0xffff,	0,	0	},
248 	    {
249 		{ PUC_PORT_TYPE_COM, 0x18, 0x00,
250 		    (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR1 },
251 	    },
252 	},
253 
254 	/* SIIG Cyber Serial PCI 16C850 (10x family): 1S */
255 	{   "SIIG Cyber Serial PCI 16C850 (10x family)",
256 	    {	0x131f,	0x1002,	0,	0	},
257 	    {	0xffff,	0xffff,	0,	0	},
258 	    {
259 		{ PUC_PORT_TYPE_COM, 0x18, 0x00,
260 		    (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR1 },
261 	    },
262 	},
263 
264 	/* SIIG Cyber I/O PCI 16C550 (10x family): 1S, 1P */
265 	{   "SIIG Cyber I/O PCI 16C550 (10x family)",
266 	    {	0x131f,	0x1010,	0,	0	},
267 	    {	0xffff,	0xffff,	0,	0	},
268 	    {
269 		{ PUC_PORT_TYPE_COM, 0x18, 0x00,
270 		    (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR0 },
271 		{ PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 },
272 	    },
273 	},
274 
275 	/* SIIG Cyber I/O PCI 16C650 (10x family): 1S, 1P */
276 	{   "SIIG Cyber I/O PCI 16C650 (10x family)",
277 	    {	0x131f,	0x1011,	0,	0	},
278 	    {	0xffff,	0xffff,	0,	0	},
279 	    {
280 		{ PUC_PORT_TYPE_COM, 0x18, 0x00,
281 		    (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR0 },
282 		{ PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 },
283 	    },
284 	},
285 
286 	/* SIIG Cyber I/O PCI 16C850 (10x family): 1S, 1P */
287 	{   "SIIG Cyber I/O PCI 16C850 (10x family)",
288 	    {	0x131f,	0x1012,	0,	0	},
289 	    {	0xffff,	0xffff,	0,	0	},
290 	    {
291 		{ PUC_PORT_TYPE_COM, 0x18, 0x00,
292 		    (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR0 },
293 		{ PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 },
294 	    },
295 	},
296 
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	},
301 	    {
302 		{ PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
303 	    },
304 	},
305 
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	},
310 	    {
311 		{ PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
312 		{ PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 },
313 	    },
314 	},
315 
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	},
320 	    {
321 		{ PUC_PORT_TYPE_COM, 0x18, 0x00,
322 		    (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR2 },
323 		{ PUC_PORT_TYPE_COM, 0x1c, 0x00,
324 		    (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR3 },
325 	    },
326 	},
327 
328 	/* SIIG Cyber Serial Dual PCI 16C650 (10x family): 2S */
329 	{   "SIIG Cyber Serial Dual PCI 16C650 (10x family)",
330 	    {	0x131f,	0x1031,	0,	0	},
331 	    {	0xffff,	0xffff,	0,	0	},
332 	    {
333 		{ PUC_PORT_TYPE_COM, 0x18, 0x00,
334 		    (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR2 },
335 		{ PUC_PORT_TYPE_COM, 0x1c, 0x00,
336 		    (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR3 },
337 	    },
338 	},
339 
340 	/* SIIG Cyber Serial Dual PCI 16C850 (10x family): 2S */
341 	{   "SIIG Cyber Serial Dual PCI 16C850 (10x family)",
342 	    {	0x131f,	0x1032,	0,	0	},
343 	    {	0xffff,	0xffff,	0,	0	},
344 	    {
345 		{ PUC_PORT_TYPE_COM, 0x18, 0x00,
346 		    (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR2 },
347 		{ PUC_PORT_TYPE_COM, 0x1c, 0x00,
348 		    (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR3 },
349 	    },
350 	},
351 
352 	/* SIIG Cyber 2S1P PCI 16C550 (10x family): 2S, 1P */
353 	{   "SIIG Cyber 2S1P PCI 16C550 (10x family)",
354 	    {	0x131f,	0x1034,	0,	0	},	/* XXX really? */
355 	    {	0xffff,	0xffff,	0,	0	},
356 	    {
357 		{ PUC_PORT_TYPE_COM, 0x18, 0x00,
358 		    (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR2 },
359 		{ PUC_PORT_TYPE_COM, 0x1c, 0x00,
360 		    (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR3 },
361 		{ PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 },
362 	    },
363 	},
364 
365 	/* SIIG Cyber 2S1P PCI 16C650 (10x family): 2S, 1P */
366 	{   "SIIG Cyber 2S1P PCI 16C650 (10x family)",
367 	    {	0x131f,	0x1035,	0,	0	},	/* XXX really? */
368 	    {	0xffff,	0xffff,	0,	0	},
369 	    {
370 		{ PUC_PORT_TYPE_COM, 0x18, 0x00,
371 		    (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR2 },
372 		{ PUC_PORT_TYPE_COM, 0x1c, 0x00,
373 		    (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR3 },
374 		{ PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 },
375 	    },
376 	},
377 
378 	/* SIIG Cyber 2S1P PCI 16C850 (10x family): 2S, 1P */
379 	{   "SIIG Cyber 2S1P PCI 16C850 (10x family)",
380 	    {	0x131f,	0x1036,	0,	0	},	/* XXX really? */
381 	    {	0xffff,	0xffff,	0,	0	},
382 	    {
383 		{ PUC_PORT_TYPE_COM, 0x18, 0x00,
384 		    (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR2 },
385 		{ PUC_PORT_TYPE_COM, 0x1c, 0x00,
386 		    (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR3 },
387 		{ PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 },
388 	    },
389 	},
390 
391 	/* SIIG Cyber 4S PCI 16C550 (10x family): 4S */
392 	{   "SIIG Cyber 4S PCI 16C550 (10x family)",
393 	    {	0x131f,	0x1050,	0,	0	},
394 	    {	0xffff,	0xffff,	0,	0	},
395 	    {
396 		{ PUC_PORT_TYPE_COM, 0x18, 0x00,
397 		    (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR0 },
398 		{ PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ * 8 },
399 		{ PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ * 8 },
400 		{ PUC_PORT_TYPE_COM, 0x24, 0x00, COM_FREQ * 8 },
401 	    },
402 	},
403 
404 	/* SIIG Cyber 4S PCI 16C650 (10x family): 4S */
405 	{   "SIIG Cyber 4S PCI 16C650 (10x family)",
406 	    {	0x131f,	0x1051,	0,	0	},
407 	    {	0xffff,	0xffff,	0,	0	},
408 	    {
409 		{ PUC_PORT_TYPE_COM, 0x18, 0x00,
410 		    (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR0 },
411 		{ PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ * 8 },
412 		{ PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ * 8 },
413 		{ PUC_PORT_TYPE_COM, 0x24, 0x00, COM_FREQ * 8 },
414 	    },
415 	},
416 
417 	/* SIIG Cyber 4S PCI 16C850 (10x family): 4S */
418 	{   "SIIG Cyber 4S PCI 16C850 (10x family)",
419 	    {	0x131f,	0x1052,	0,	0	},
420 	    {	0xffff,	0xffff,	0,	0	},
421 	    {
422 		{ PUC_PORT_TYPE_COM, 0x18, 0x00,
423 		    (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR0 },
424 		{ PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ * 8 },
425 		{ PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ * 8 },
426 		{ PUC_PORT_TYPE_COM, 0x24, 0x00, COM_FREQ * 8 },
427 	    },
428 	},
429 
430 	/*
431 	 * SIIG "20x" family boards.
432 	 */
433 
434 	/* SIIG Cyber Parallel PCI (20x family): 1P */
435 	{   "SIIG Cyber Parallel PCI (20x family)",
436 	    {	0x131f,	0x2020,	0,	0	},
437 	    {	0xffff,	0xffff,	0,	0	},
438 	    {
439 		{ PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
440 	    },
441 	},
442 
443 	/* SIIG Cyber Parallel Dual PCI (20x family): 2P */
444 	{   "SIIG Cyber Parallel Dual PCI (20x family)",
445 	    {	0x131f,	0x2021,	0,	0	},
446 	    {	0xffff,	0xffff,	0,	0	},
447 	    {
448 		{ PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
449 		{ PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
450 	    },
451 	},
452 
453 	/* SIIG Cyber 2P1S PCI 16C550 (20x family): 1S, 2P */
454 	{   "SIIG Cyber 2P1S PCI 16C550 (20x family)",
455 	    {	0x131f,	0x2040,	0,	0	},
456 	    {	0xffff,	0xffff,	0,	0	},
457 	    {
458 		{ PUC_PORT_TYPE_COM, 0x10, 0x00,
459 		    (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
460 		{ PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 },
461 		{ PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 },
462 	    },
463 	},
464 
465 	/* SIIG Cyber 2P1S PCI 16C650 (20x family): 1S, 2P */
466 	{   "SIIG Cyber 2P1S PCI 16C650 (20x family)",
467 	    {	0x131f,	0x2041,	0,	0	},
468 	    {	0xffff,	0xffff,	0,	0	},
469 	    {
470 		{ PUC_PORT_TYPE_COM, 0x10, 0x00,
471 		    (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
472 		{ PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 },
473 		{ PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 },
474 	    },
475 	},
476 
477 	/* SIIG Cyber 2P1S PCI 16C850 (20x family): 1S, 2P */
478 	{   "SIIG Cyber 2P1S PCI 16C850 (20x family)",
479 	    {	0x131f,	0x2042,	0,	0	},
480 	    {	0xffff,	0xffff,	0,	0	},
481 	    {
482 		{ PUC_PORT_TYPE_COM, 0x10, 0x00,
483 		    (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
484 		{ PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 },
485 		{ PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 },
486 	    },
487 	},
488 
489 	/* SIIG Cyber Serial PCI 16C550 (20x family): 1S */
490 	{   "SIIG Cyber Serial PCI 16C550 (20x family)",
491 	    {	0x131f,	0x2000,	0,	0	},
492 	    {	0xffff,	0xffff,	0,	0	},
493 	    {
494 		{ PUC_PORT_TYPE_COM, 0x10, 0x00,
495 		    (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
496 	    },
497 	},
498 
499 	/* SIIG Cyber Serial PCI 16C650 (20x family): 1S */
500 	{   "SIIG Cyber Serial PCI 16C650 (20x family)",
501 	    {	0x131f,	0x2001,	0,	0	},
502 	    {	0xffff,	0xffff,	0,	0	},
503 	    {
504 		{ PUC_PORT_TYPE_COM, 0x10, 0x00,
505 		    (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
506 	    },
507 	},
508 
509 	/* SIIG Cyber Serial PCI 16C850 (20x family): 1S */
510 	{   "SIIG Cyber Serial PCI 16C850 (20x family)",
511 	    {	0x131f,	0x2002,	0,	0	},
512 	    {	0xffff,	0xffff,	0,	0	},
513 	    {
514 		{ PUC_PORT_TYPE_COM, 0x10, 0x00,
515 		    (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
516 	    },
517 	},
518 
519 	/* SIIG Cyber I/O PCI 16C550 (20x family): 1S, 1P */
520 	{   "SIIG Cyber I/O PCI 16C550 (20x family)",
521 	    {	0x131f,	0x2010,	0,	0	},
522 	    {	0xffff,	0xffff,	0,	0	},
523 	    {
524 		{ PUC_PORT_TYPE_COM, 0x10, 0x00,
525 		    (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
526 		{ PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 },
527 	    },
528 	},
529 
530 	/* SIIG Cyber I/O PCI 16C650 (20x family): 1S, 1P */
531 	{   "SIIG Cyber I/O PCI 16C650 (20x family)",
532 	    {	0x131f,	0x2011,	0,	0	},
533 	    {	0xffff,	0xffff,	0,	0	},
534 	    {
535 		{ PUC_PORT_TYPE_COM, 0x10, 0x00,
536 		    (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
537 		{ PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 },
538 	    },
539 	},
540 
541 	/* SIIG Cyber I/O PCI 16C850 (20x family): 1S, 1P */
542 	{   "SIIG Cyber I/O PCI 16C850 (20x family)",
543 	    {	0x131f,	0x2012,	0,	0	},
544 	    {	0xffff,	0xffff,	0,	0	},
545 	    {
546 		{ PUC_PORT_TYPE_COM, 0x10, 0x00,
547 		    (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
548 		{ PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 },
549 	    },
550 	},
551 
552 	/* SIIG Cyber Serial Dual PCI 16C550 (20x family): 2S */
553 	{   "SIIG Cyber Serial Dual PCI 16C550 (20x family)",
554 	    {	0x131f,	0x2030,	0,	0	},
555 	    {	0xffff,	0xffff,	0,	0	},
556 	    {
557 		{ PUC_PORT_TYPE_COM, 0x10, 0x00,
558 		    (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
559 		{ PUC_PORT_TYPE_COM, 0x14, 0x00,
560 		    (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR1 },
561 	    },
562 	},
563 
564 	/* SIIG Cyber Serial Dual PCI 16C650 (20x family): 2S */
565 	{   "SIIG Cyber Serial Dual PCI 16C650 (20x family)",
566 	    {	0x131f,	0x2031,	0,	0	},
567 	    {	0xffff,	0xffff,	0,	0	},
568 	    {
569 		{ PUC_PORT_TYPE_COM, 0x10, 0x00,
570 		    (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
571 		{ PUC_PORT_TYPE_COM, 0x14, 0x00,
572 		    (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR1 },
573 	    },
574 	},
575 
576 	/* SIIG Cyber Serial Dual PCI 16C850 (20x family): 2S */
577 	{   "SIIG Cyber Serial Dual PCI 16C850 (20x family)",
578 	    {	0x131f,	0x2032,	0,	0	},
579 	    {	0xffff,	0xffff,	0,	0	},
580 	    {
581 		{ PUC_PORT_TYPE_COM, 0x10, 0x00,
582 		    (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
583 		{ PUC_PORT_TYPE_COM, 0x14, 0x00,
584 		    (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR1 },
585 	    },
586 	},
587 
588 	/* SIIG Cyber 2S1P PCI 16C550 (20x family): 2S, 1P */
589 	{   "SIIG Cyber 2S1P PCI 16C550 (20x family)",
590 	    {	0x131f,	0x2060,	0,	0	},
591 	    {	0xffff,	0xffff,	0,	0	},
592 	    {
593 		{ PUC_PORT_TYPE_COM, 0x10, 0x00,
594 		    (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
595 		{ PUC_PORT_TYPE_COM, 0x14, 0x00,
596 		    (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR1 },
597 		{ PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
598 	    },
599 	},
600 
601 	/* SIIG Cyber 2S1P PCI 16C650 (20x family): 2S, 1P */
602 	{   "SIIG Cyber 2S1P PCI 16C650 (20x family)",
603 	    {	0x131f,	0x2061,	0,	0	},
604 	    {	0xffff,	0xffff,	0,	0	},
605 	    {
606 		{ PUC_PORT_TYPE_COM, 0x10, 0x00,
607 		    (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
608 		{ PUC_PORT_TYPE_COM, 0x14, 0x00,
609 		    (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR1 },
610 		{ PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
611 	    },
612 	},
613 
614 	/* SIIG Cyber 2S1P PCI 16C850 (20x family): 2S, 1P */
615 	{   "SIIG Cyber 2S1P PCI 16C850 (20x family)",
616 	    {	0x131f,	0x2062,	0,	0	},
617 	    {	0xffff,	0xffff,	0,	0	},
618 	    {
619 		{ PUC_PORT_TYPE_COM, 0x10, 0x00,
620 		    (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
621 		{ PUC_PORT_TYPE_COM, 0x14, 0x00,
622 		    (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR1 },
623 		{ PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
624 	    },
625 	},
626 
627 	/* SIIG Cyber 4S PCI 16C550 (20x family): 4S */
628 	{   "SIIG Cyber 4S PCI 16C550 (20x family)",
629 	    {	0x131f,	0x2050,	0,	0	},
630 	    {	0xffff,	0xffff,	0,	0	},
631 	    {
632 		{ PUC_PORT_TYPE_COM, 0x10, 0x00,
633 		    (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
634 		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ * 8 },
635 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
636 		{ PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ * 8 },
637 	    },
638 	},
639 
640 	/* SIIG Cyber 4S PCI 16C650 (20x family): 4S */
641 	{   "SIIG Cyber 4S PCI 16C650 (20x family)",
642 	    {	0x131f,	0x2051,	0,	0	},
643 	    {	0xffff,	0xffff,	0,	0	},
644 	    {
645 		{ PUC_PORT_TYPE_COM, 0x10, 0x00,
646 		    (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
647 		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ * 8 },
648 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
649 		{ PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ * 8 },
650 	    },
651 	},
652 
653 	/* SIIG Cyber 4S PCI 16C850 (20x family): 4S */
654 	{   "SIIG Cyber 4S PCI 16C850 (20x family)",
655 	    {	0x131f,	0x2052,	0,	0	},
656 	    {	0xffff,	0xffff,	0,	0	},
657 	    {
658 		{ PUC_PORT_TYPE_COM, 0x10, 0x00,
659 		    (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
660 		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ * 8 },
661 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
662 		{ PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ * 8 },
663 	    },
664 	},
665 
666 	/* SIIG PS8000 PCI 8S 16C550 (20x family): 8S - 16 Byte FIFOs */
667 	{   "SIIG PS8000 PCI 8S 16C550 (20x family)",
668 	    {	0x131f,	0x2080,	0,	0	},
669 	    {	0xffff,	0xffff,	0,	0	},
670 	    {
671 		{ PUC_PORT_TYPE_COM, 0x10, 0x00,
672 		    (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
673 		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ * 8 },
674 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
675 		{ PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ * 8 },
676 		{ PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ * 8 },
677 		{ PUC_PORT_TYPE_COM, 0x20, 0x08, COM_FREQ * 8 },
678 		{ PUC_PORT_TYPE_COM, 0x20, 0x10, COM_FREQ * 8 },
679 		{ PUC_PORT_TYPE_COM, 0x20, 0x18, COM_FREQ * 8 },
680 	    },
681 	},
682 
683 	/* SIIG PS8000 PCI 8S 16C650 (20x family): 8S - 32 Byte FIFOs */
684 	{   "SIIG PS8000 PCI 8S 16C650 (20x family)",
685 	    {	0x131f,	0x2081,	0,	0	},
686 	    {	0xffff,	0xffff,	0,	0	},
687 	    {
688 		{ PUC_PORT_TYPE_COM, 0x10, 0x00,
689 		    (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
690 		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ * 8 },
691 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
692 		{ PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ * 8 },
693 		{ PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ * 8 },
694 		{ PUC_PORT_TYPE_COM, 0x20, 0x08, COM_FREQ * 8 },
695 		{ PUC_PORT_TYPE_COM, 0x20, 0x10, COM_FREQ * 8 },
696 		{ PUC_PORT_TYPE_COM, 0x20, 0x18, COM_FREQ * 8 },
697 	    },
698 	},
699 
700 	/* SIIG PS8000 PCI 8S 16C850 (20x family): 8S - 128 Byte FIFOs */
701 	{   "SIIG PS8000 PCI 8S 16C850 (20x family)",
702 	    {	0x131f,	0x2082,	0,	0	},
703 	    {	0xffff,	0xffff,	0,	0	},
704 	    {
705 		{ PUC_PORT_TYPE_COM, 0x10, 0x00,
706 		    (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
707 		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ * 8 },
708 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
709 		{ PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ * 8 },
710 		{ PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ * 8 },
711 		{ PUC_PORT_TYPE_COM, 0x20, 0x08, COM_FREQ * 8 },
712 		{ PUC_PORT_TYPE_COM, 0x20, 0x10, COM_FREQ * 8 },
713 		{ PUC_PORT_TYPE_COM, 0x20, 0x18, COM_FREQ * 8 },
714 	    },
715 	},
716 	/* VScom PCI-200: 2S */
717 	{   "VScom PCI-200",
718 	    {	0x10b5,	0x1103,	0x10b5,	0x1103	},
719 	    {	0xffff,	0xffff,	0xffff,	0xffff	},
720 	    {
721 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
722 		{ PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ * 8 },
723 	    },
724 	},
725 
726 	/* VScom PCI-400: 4S */
727 	{   "VScom PCI-400",
728 	    {	0x10b5,	0x1077,	0x10b5,	0x1077	},
729 	    {	0xffff,	0xffff,	0xffff,	0xffff	},
730 	    {
731 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
732 		{ PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 },
733 		{ PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 },
734 		{ PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 },
735 	    },
736 	},
737 
738 	/* VScom PCI-800: 8S */
739 	{   "VScom PCI-800",
740 	    {	0x10b5,	0x1076,	0x10b5,	0x1076	},
741 	    {	0xffff,	0xffff,	0xffff,	0xffff	},
742 	    {
743 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
744 		{ PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 },
745 		{ PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 },
746 		{ PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 },
747 		{ PUC_PORT_TYPE_COM, 0x18, 0x20, COM_FREQ * 8 },
748 		{ PUC_PORT_TYPE_COM, 0x18, 0x28, COM_FREQ * 8 },
749 		{ PUC_PORT_TYPE_COM, 0x18, 0x30, COM_FREQ * 8 },
750 		{ PUC_PORT_TYPE_COM, 0x18, 0x38, COM_FREQ * 8 },
751 	    },
752 	},
753 
754 	{   "Titan PCI-010HV2",
755 	    {   0x14d2, 0xe001, 0,      0       },
756 	    {   0xffff, 0xffff, 0,      0       },
757 	    {
758 		{ PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
759 	    },
760 	},
761 	{   "Titan PCI-200HV2",
762 	    {   0x14d2, 0xe020, 0,      0       },
763 	    {   0xffff, 0xffff, 0,      0       },
764 	    {
765 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 },
766 		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ * 8 },
767 	    },
768 	},
769 
770 	/*
771 	 * VScom PCI-800H. Uses 8 16950 UART, behind a PCI chips that offers
772 	 * 4 com port on PCI device 0 and 4 on PCI device 1. PCI device 0 has
773 	 * device ID 3 and PCI device 1 device ID 4.
774 	 */
775 	{   "Titan PCI-800H",
776 	    {	0x14d2,	0xa003,	0,	0	},
777 	    {	0xffff,	0xffff,	0,	0	},
778 	    {
779 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 },
780 		{ PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8 },
781 		{ PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 8 },
782 		{ PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 8 },
783 	    },
784 	},
785 	{   "Titan PCI-800H",
786 	    {	0x14d2,	0xa004,	0,	0	},
787 	    {	0xffff,	0xffff,	0,	0	},
788 	    {
789 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 },
790 		{ PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8 },
791 		{ PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 8 },
792 		{ PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 8 },
793 	    },
794 	},
795         {   "Titan PCI-200H",
796             {   0x14d2, 0xa005, 0,      0       },
797             {   0xffff, 0xffff, 0,      0       },
798             {
799                 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 },
800                 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8 },
801             },
802         },
803 	{   "Titan PCI-800L",
804 	    {	0x14d2,	0x8080,	0,	0	},
805 	    {	0xffff,	0xffff,	0,	0	},
806 	    {
807 		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ * 8 },
808 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
809 		{ PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ * 8 },
810 		{ PUC_PORT_TYPE_COM, 0x20, 0x08, COM_FREQ * 8 },
811 		{ PUC_PORT_TYPE_COM, 0x20, 0x10, COM_FREQ * 8 },
812 		{ PUC_PORT_TYPE_COM, 0x20, 0x18, COM_FREQ * 8 },
813 		{ PUC_PORT_TYPE_COM, 0x20, 0x20, COM_FREQ * 8 },
814 		{ PUC_PORT_TYPE_COM, 0x20, 0x28, COM_FREQ * 8 },
815 	    },
816 	},
817 	/* NEC PK-UG-X001 K56flex PCI Modem card.
818 	   NEC MARTH bridge chip and Rockwell RCVDL56ACF/SP using. */
819 	{   "NEC PK-UG-X001 K56flex PCI Modem",
820 	    {	0x1033,	0x0074,	0x1033,	0x8014	},
821 	    {	0xffff,	0xffff,	0xffff,	0xffff	},
822 	    {
823 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
824 	    },
825 	},
826 
827 	/* NEC PK-UG-X008 */
828 	{   "NEC PK-UG-X008",
829 	    {	0x1033,	0x007d,	0x1033,	0x8012	},
830 	    {	0xffff,	0xffff,	0xffff,	0xffff	},
831 	    {
832 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ},
833 	    },
834 	},
835 
836 	/* Lava Computers 2SP-PCI */
837 	{   "Lava Computers 2SP-PCI parallel port",
838 	    {	0x1407,	0x8000,	0,	0	},
839 	    {	0xffff,	0xffff,	0,	0	},
840 	    {
841 		{ PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
842 	    },
843 	},
844 
845 	/* Lava Computers 2SP-PCI and Quattro-PCI serial ports */
846 	{   "Lava Computers dual serial port",
847 	    {	0x1407,	0x0100,	0,	0	},
848 	    {	0xffff,	0xfffc,	0,	0	},
849 	    {
850 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
851 		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
852 	    },
853 	},
854 
855 	/* Lava Computers DSerial PCI serial ports */
856 	{   "Lava Computers serial port",
857 	    {	0x1407,	0x0110,	0,	0	},
858 	    {	0xffff,	0xfffc,	0,	0	},
859 	    {
860 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
861 	    },
862 	},
863 
864 	/* Lava Computers Quattro-PCI serial ports */
865 	{   "Lava Quattro-PCI 4-port serial",
866 	    {   0x1407, 0x0120, 0,	0	},
867 	    {   0xffff, 0xfffc, 0,	0	},
868 	    {
869 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
870 		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
871 	    },
872 	},
873 
874 	/* Lava Computers Octopus-550 serial ports */
875 	{   "Lava Computers Octopus-550 8-port serial",
876 	    {	0x1407,	0x0180,	0,	0	},
877 	    {	0xffff,	0xfffc,	0,	0	},
878 	    {
879 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
880 		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
881 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
882 		{ PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
883 	    },
884 	},
885 
886 	/* US Robotics (3Com) PCI Modems */
887 	{   "US Robotics (3Com) 3CP5609 PCI 16550 Modem",
888 	    {	0x12b9,	0x1008,	0,	0	},
889 	    {	0xffff,	0xffff,	0,	0	},
890 	    {
891 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
892 	    },
893 	},
894 
895 	/* Actiontec  56K PCI Master */
896 	{   "Actiontec 56K PCI Master",
897 	    {	0x11c1,	0x0480,	0x0, 	0x0	},
898 	    {	0xffff,	0xffff,	0x0,	0x0	},
899 	    {
900 		{ PUC_PORT_TYPE_COM,	0x14,	0x00, COM_FREQ },
901 	    },
902 	},
903 
904 	/*
905 	 * Boards with an Oxford Semiconductor chip.
906 	 *
907 	 * Oxford Semiconductor provides documentation for their chip at:
908 	 * <URL:http://www.plxtech.com/products/uart>
909 	 *
910 	 * As sold by Kouwell <URL:http://www.kouwell.com/>.
911 	 * I/O Flex PCI I/O Card Model-223 with 4 serial and 1 parallel ports.
912 	 */
913 
914 	/* Oxford Semiconductor OXmPCI952 PCI UARTs */
915 	{   "Oxford Semiconductor OXmPCI952 UARTs",
916 	    {	0x1415,	0x950a,	0,	0	},
917 	    {	0xffff,	0xffff,	0,	0	},
918 	    {
919 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 10 },
920 		{ PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 10 },
921 	    },
922 	},
923 
924 	/* Oxford Semiconductor OX16PCI952 PCI `950 UARTs - 128 byte FIFOs */
925 	{   "Oxford Semiconductor OX16PCI952 UARTs",
926 	    {   0x1415, 0x9521, 0,	0	},
927 	    {   0xffff, 0xffff, 0,	0	},
928 	    {
929 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
930 		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
931 	    },
932 	},
933 
934 	/* Oxford Semiconductor OX16PCI952 PCI Parallel port */
935 	{   "Oxford Semiconductor OX16PCI952 Parallel port",
936 	    {   0x1415, 0x9523, 0,	0	},
937 	    {   0xffff, 0xffff, 0,	0	},
938 	    {
939 		{ PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
940 	    },
941 	},
942 
943 	/* OEM of Oxford Semiconductor PCI UARTs? */
944 	{   "Avlab LP PCI 4S Quartet",
945 	    {	0x1415,	0x9501,	0x14db,	0x2150	},
946 	    {	0xffff,	0xffff,	0xffff,	0xffff	},
947 	    {
948 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 10 },
949 		{ PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 10 },
950 		{ PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 10 },
951 		{ PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 10 },
952 	    },
953 	},
954 
955 	/* Oxford Semiconductor OX16PCI954 PCI UARTs */
956 	{   "Oxford Semiconductor OX16PCI954 UARTs",
957 	    {	0x1415,	0x9501,	0,	0	},
958 	    {	0xffff,	0xffff,	0,	0	},
959 	    {
960 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
961 		{ PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ },
962 		{ PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ },
963 		{ PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ },
964 	    },
965 	},
966 
967 	/* Oxford Semiconductor OX16PCI954 PCI Parallel port */
968 	{   "Oxford Semiconductor OX16PCI954 Parallel port",
969 	    {	0x1415,	0x9513,	0,	0	},
970 	    {	0xffff,	0xffff,	0,	0	},
971 	    {
972 		{ PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
973 	    },
974 	},
975 
976 	/* Moxa Technologies Co., Ltd. PCI I/O Card 4S RS232/422/485 */
977 	{   "Moxa Technologies, SmartIO C104H/PCI",
978 	    {	0x1393,	0x1040,	0,	0	},
979 	    {	0xffff,	0xffff,	0,	0	},
980 	    {
981 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
982 		{ PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 },
983 		{ PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 },
984 		{ PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 },
985 	    },
986 	},
987 
988 	/* Moxa Technologies Co., Ltd. PCI I/O Card 4S RS232 */
989 	{   "Moxa Technologies, SmartIO CP104/PCI",
990 	    {	0x1393,	0x1041,	0,	0	},
991 	    {	0xffff,	0xffff,	0,	0	},
992 	    {
993 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
994 		{ PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 },
995 		{ PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 },
996 		{ PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 },
997 	    },
998 	},
999 
1000 	/* Moxa Technologies Co., Ltd. PCI I/O Card 4S RS232 */
1001 	{   "Moxa Technologies, SmartIO CP104-V2/PCI",
1002 	    {	0x1393,	0x1042,	0,	0	},
1003 	    {	0xffff,	0xffff,	0,	0	},
1004 	    {
1005 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
1006 		{ PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 },
1007 		{ PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 },
1008 		{ PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 },
1009 	    },
1010 	},
1011 
1012 	/* Moxa Technologies Co., Ltd. PCI I/O Card 4S RS232/422/485 */
1013 	{   "Moxa Technologies, SmartIO CP-114/PCI",
1014 	    {	0x1393,	0x1141,	0,	0	},
1015 	    {	0xffff,	0xffff,	0,	0	},
1016 	    {
1017 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
1018 		{ PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 },
1019 		{ PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 },
1020 		{ PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 },
1021 	    },
1022 	},
1023 
1024 	/* Moxa Technologies Co., Ltd. PCI I/O Card 8S RS232 */
1025 	{   "Moxa Technologies, SmartIO C168H/PCI",
1026 	    {	0x1393,	0x1680,	0,	0	},
1027 	    {	0xffff,	0xffff,	0,	0	},
1028 	    {
1029 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
1030 		{ PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 },
1031 		{ PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 },
1032 		{ PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 },
1033 		{ PUC_PORT_TYPE_COM, 0x18, 0x20, COM_FREQ * 8 },
1034 		{ PUC_PORT_TYPE_COM, 0x18, 0x28, COM_FREQ * 8 },
1035 		{ PUC_PORT_TYPE_COM, 0x18, 0x30, COM_FREQ * 8 },
1036 		{ PUC_PORT_TYPE_COM, 0x18, 0x38, COM_FREQ * 8 },
1037 	    },
1038 	},
1039 
1040 	/* NetMos 1P PCI : 1P */
1041 	{   "NetMos NM9805 1284 Printer port",
1042 	    {	0x9710,	0x9805,	0,	0	},
1043 	    {	0xffff,	0xffff,	0,	0	},
1044 	    {
1045 		{ PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
1046 	    },
1047 	},
1048 
1049 	/* NetMos 2P PCI : 2P */
1050 	{   "NetMos NM9815 Dual 1284 Printer port",
1051 	    {	0x9710,	0x9815,	0,	0	},
1052 	    {	0xffff,	0xffff,	0,	0	},
1053 	    {
1054 		{ PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
1055 		{ PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
1056 	    },
1057 	},
1058 
1059 	/* NetMos 2S PCI NM9835 : 2S */
1060 	{   "NetMos NM9835 Dual UART",
1061 	    {	0x9710, 0x9835, 0x1000, 0x0002	},
1062 	    {	0xffff, 0xffff, 0xffff, 0xffff	},
1063 	    {
1064 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
1065 		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
1066 	    },
1067 	},
1068 
1069 	/* NetMos 2S1P PCI 16C650 : 2S, 1P */
1070 	{   "NetMos NM9835 Dual UART and 1284 Printer port",
1071 	    {	0x9710,	0x9835,	0,	0	},
1072 	    {	0xffff,	0xffff,	0,	0	},
1073 	    {
1074 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
1075 		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
1076 		{ PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
1077 	    },
1078 	},
1079 
1080 	/* NetMos 4S0P PCI NM9845 : 4S, 0P */
1081 	{   "NetMos NM9845 Quad UART",
1082 	   {   0x9710, 0x9845, 0x1000, 0x0004  },
1083 	   {   0xffff, 0xffff, 0xffff, 0xffff  },
1084 	   {
1085 	       { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
1086 	       { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
1087 	       { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
1088 	       { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
1089 	   },
1090        },
1091 
1092 	/* NetMos 4S1P PCI NM9845 : 4S, 1P */
1093 	{   "NetMos NM9845 Quad UART and 1284 Printer port",
1094 	   {   0x9710, 0x9845, 0x1000, 0x0014  },
1095 	   {   0xffff, 0xffff, 0xffff, 0xffff  },
1096 	   {
1097 	       { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
1098 	       { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
1099 	       { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
1100 	       { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
1101 	       { PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 },
1102 	   },
1103        },
1104 
1105        /* NetMos 6S PCI 16C650 : 6S, 0P */
1106        {   "NetMos NM9845 6 UART",
1107 	   {   0x9710, 0x9845, 0x1000, 0x0006  },
1108 	   {   0xffff, 0xffff, 0xffff, 0xffff  },
1109 	   {
1110 	       { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
1111 	       { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
1112 	       { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
1113 	       { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
1114 	       { PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ },
1115 	       { PUC_PORT_TYPE_COM, 0x24, 0x00, COM_FREQ },
1116 	   },
1117        },
1118 
1119        /* NetMos 4S1P PCI NM9845 : 4S, 1P */
1120        {   "NetMos NM9845 Quad UART and 1284 Printer port (unknown type)",
1121 	    {	0x9710,	0x9845,	0,	0	},
1122 	    {	0xffff,	0xffff,	0,	0	},
1123 	    {
1124 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
1125 		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
1126 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
1127 		{ PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
1128 		{ PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 },
1129 	    },
1130 	},
1131 
1132        /* NetMos 4S1P PCI NM9855 : 4S, 1P */
1133        {   "NetMos NM9855 Quad UART and 1284 Printer port (unknown type)",
1134 	    {	0x9710,	0x9855,	0x1000,	0x0014	},
1135 	    {	0xffff,	0xffff,	0xffff,	0xffff	},
1136 	    {
1137 		{ PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
1138 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
1139 		{ PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
1140 		{ PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ },
1141 		{ PUC_PORT_TYPE_COM, 0x24, 0x00, COM_FREQ },
1142 	    },
1143 	},
1144 
1145 	/*
1146 	 * This is the Middle Digital, Inc. PCI-Weasel, which
1147 	 * uses a PCI interface implemented in FPGA.
1148 	 */
1149 	{   "Middle Digital, Inc. Weasel serial port",
1150 	    {	0xdeaf,	0x9051,	0,	0	},
1151 	    {	0xffff,	0xffff,	0,	0	},
1152 	    {
1153 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
1154 	    },
1155 	},
1156 
1157 	/* Avlab Technology, Inc. Low Profile PCI 4 Serial: 4S */
1158 	{   "Avlab Low Profile PCI 4 Serial",
1159 	    {	0x14db,	0x2150,	0,	0	},
1160 	    {	0xffff,	0xffff,	0,	0	},
1161 	    {
1162 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
1163 		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
1164 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
1165 		{ PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
1166 	    },
1167 	},
1168 
1169 	/*
1170 	 * Perle PCI-RAS 4 Modem ports
1171 	 */
1172 	{   "Perle Systems PCI-RAS 4 modem ports",
1173 	    {	0x10b5, 0x9030, 0x155f, 0xf001	},
1174 	    {	0xffff, 0xffff, 0xffff, 0xffff	},
1175 	    {
1176 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 4 },
1177 		{ PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 4 },
1178 		{ PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 4 },
1179 		{ PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 4 },
1180 	    },
1181 	},
1182 
1183 	/*
1184 	 * Perle PCI-RASV92 4 Modem ports
1185 	 */
1186 	{   "Perle Systems PCI-RASV92 4 modem ports",
1187 	    {	0x10b5, 0x9050, 0x155f, 0xf001	},
1188 	    {	0xffff, 0xffff, 0xffff, 0xffff	},
1189 	    {
1190 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 4 },
1191 		{ PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 4 },
1192 		{ PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 4 },
1193 		{ PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 4 },
1194 	    },
1195 	},
1196 
1197 	/*
1198 	 * Perle PCI-RAS 8 Modem ports
1199 	 */
1200 	{   "Perle Systems PCI-RAS 8 modem ports",
1201 	    {	0x10b5, 0x9030, 0x155f, 0xf010	},
1202 	    {	0xffff, 0xffff, 0xffff, 0xffff	},
1203 	    {
1204 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 4 },
1205 		{ PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 4 },
1206 		{ PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 4 },
1207 		{ PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 4 },
1208 		{ PUC_PORT_TYPE_COM, 0x18, 0x20, COM_FREQ * 4 },
1209 		{ PUC_PORT_TYPE_COM, 0x18, 0x28, COM_FREQ * 4 },
1210 		{ PUC_PORT_TYPE_COM, 0x18, 0x30, COM_FREQ * 4 },
1211 		{ PUC_PORT_TYPE_COM, 0x18, 0x38, COM_FREQ * 4 },
1212 	    },
1213 	},
1214 
1215 	/*
1216 	 * Perle PCI-RASV92 8 Modem ports
1217 	 */
1218 	{   "Perle Systems PCI-RASV92 8 modem ports",
1219 	    {	0x10b5, 0x9050, 0x155f, 0xf010	},
1220 	    {	0xffff, 0xffff, 0xffff, 0xffff	},
1221 	    {
1222 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 4 },
1223 		{ PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 4 },
1224 		{ PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 4 },
1225 		{ PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 4 },
1226 		{ PUC_PORT_TYPE_COM, 0x18, 0x20, COM_FREQ * 4 },
1227 		{ PUC_PORT_TYPE_COM, 0x18, 0x28, COM_FREQ * 4 },
1228 		{ PUC_PORT_TYPE_COM, 0x18, 0x30, COM_FREQ * 4 },
1229 		{ PUC_PORT_TYPE_COM, 0x18, 0x38, COM_FREQ * 4 },
1230 	    },
1231 	},
1232 
1233 	/*
1234 	 * Boca Research Turbo Serial 654 (4 serial port) card.
1235 	 * Appears to be the same as Chase Research PLC PCI-FAST4
1236 	 * and Perle PCI-FAST4 Multi-Port serial cards.
1237 	 */
1238 	{   "Boca Research Turbo Serial 654",
1239 	    {   0x10b5, 0x9050, 0x12e0, 0x0031  },
1240 	    {   0xffff, 0xffff, 0xffff, 0xffff  },
1241 	    {
1242 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 4 },
1243 		{ PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 4 },
1244 		{ PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 4 },
1245 		{ PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 4 },
1246 	    },
1247 	},
1248 
1249 	/*
1250 	 * Boca Research Turbo Serial 658 (8 serial port) card.
1251 	 * Appears to be the same as Chase Research PLC PCI-FAST8
1252 	 * and Perle PCI-FAST8 Multi-Port serial cards.
1253 	 */
1254 	{   "Boca Research Turbo Serial 658",
1255 	    {   0x10b5, 0x9050, 0x12e0, 0x0021  },
1256 	    {   0xffff, 0xffff, 0xffff, 0xffff  },
1257 	    {
1258 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 4 },
1259 		{ PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 4 },
1260 		{ PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 4 },
1261 		{ PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 4 },
1262 		{ PUC_PORT_TYPE_COM, 0x18, 0x20, COM_FREQ * 4 },
1263 		{ PUC_PORT_TYPE_COM, 0x18, 0x28, COM_FREQ * 4 },
1264 		{ PUC_PORT_TYPE_COM, 0x18, 0x30, COM_FREQ * 4 },
1265 		{ PUC_PORT_TYPE_COM, 0x18, 0x38, COM_FREQ * 4 },
1266 	    },
1267 	},
1268 
1269 	/*
1270 	 * Addi-Data APCI-7800 8-port serial card.
1271 	 * Uses an AMCC chip as PCI bridge.
1272 	 */
1273 	{   "Addi-Data APCI-7800",
1274 	    {   0x10e8, 0x818e, 0, 0  },
1275 	    {   0xffff, 0xffff, 0, 0  },
1276 	    {
1277 		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
1278 		{ PUC_PORT_TYPE_COM, 0x14, 0x08, COM_FREQ },
1279 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
1280 		{ PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ },
1281 		{ PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
1282 		{ PUC_PORT_TYPE_COM, 0x1c, 0x08, COM_FREQ },
1283 		{ PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ },
1284 		{ PUC_PORT_TYPE_COM, 0x20, 0x08, COM_FREQ },
1285 	    },
1286 	},
1287 
1288 	{   "EXAR XR17D152",
1289 	    {   0x13a8, 0x0152, 0,      0       },
1290 	    {   0xffff, 0xffff, 0,      0       },
1291 	    {
1292 		{ PUC_PORT_TYPE_COM, 0x10, 0x0000, COM_FREQ * 8 },
1293 		{ PUC_PORT_TYPE_COM, 0x10, 0x0200, COM_FREQ * 8 },
1294 	    },
1295 	},
1296 	{   "EXAR XR17D154",
1297 	    {   0x13a8, 0x0154, 0,      0       },
1298 	    {   0xffff, 0xffff, 0,      0       },
1299 	    {
1300 		{ PUC_PORT_TYPE_COM, 0x10, 0x0000, COM_FREQ * 8 },
1301 		{ PUC_PORT_TYPE_COM, 0x10, 0x0200, COM_FREQ * 8 },
1302 		{ PUC_PORT_TYPE_COM, 0x10, 0x0400, COM_FREQ * 8 },
1303 		{ PUC_PORT_TYPE_COM, 0x10, 0x0600, COM_FREQ * 8 },
1304 	    },
1305 	},
1306 	{   "EXAR XR17D158",
1307 	    {   0x13a8, 0x0158, 0,      0       },
1308 	    {   0xffff, 0xffff, 0,      0       },
1309 	    {
1310 		{ PUC_PORT_TYPE_COM, 0x10, 0x0000, COM_FREQ * 8 },
1311 		{ PUC_PORT_TYPE_COM, 0x10, 0x0200, COM_FREQ * 8 },
1312 		{ PUC_PORT_TYPE_COM, 0x10, 0x0400, COM_FREQ * 8 },
1313 		{ PUC_PORT_TYPE_COM, 0x10, 0x0600, COM_FREQ * 8 },
1314 		{ PUC_PORT_TYPE_COM, 0x10, 0x0800, COM_FREQ * 8 },
1315 		{ PUC_PORT_TYPE_COM, 0x10, 0x0a00, COM_FREQ * 8 },
1316 		{ PUC_PORT_TYPE_COM, 0x10, 0x0c00, COM_FREQ * 8 },
1317 		{ PUC_PORT_TYPE_COM, 0x10, 0x0e00, COM_FREQ * 8 },
1318 	    },
1319 	},
1320 
1321 	/* I-O DATA RSA-PCI: 2S */
1322 	{   "I-O DATA RSA-PCI 2-port serial",
1323 	    {	0x10fc, 0x0007, 0, 0 },
1324 	    {	0xffff, 0xffff, 0, 0 },
1325 	    {
1326 		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
1327 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
1328 	    },
1329 	},
1330 
1331 	/* Digi International Digi Neo 4 Serial */
1332 	{ "Digi International Digi Neo 4 Serial",
1333 	    {	PCI_VENDOR_DIGI, PCI_PRODUCT_DIGI_NEO4,		0, 0  },
1334 	    {	0xffff, 0xffff,					0, 0  },
1335 	    {
1336 		{ PUC_PORT_TYPE_COM, 0x10, 0x0000, COM_FREQ * 8 },
1337 		{ PUC_PORT_TYPE_COM, 0x10, 0x0200, COM_FREQ * 8 },
1338 		{ PUC_PORT_TYPE_COM, 0x10, 0x0400, COM_FREQ * 8 },
1339 		{ PUC_PORT_TYPE_COM, 0x10, 0x0600, COM_FREQ * 8 },
1340 	    },
1341 	},
1342 
1343 	/* Digi International Digi Neo 8 Serial */
1344 	{ "Digi International Digi Neo 8 Serial",
1345 	    {	PCI_VENDOR_DIGI, PCI_PRODUCT_DIGI_NEO8,		0, 0  },
1346 	    {	0xffff, 0xffff,					0, 0  },
1347 	    {
1348 		{ PUC_PORT_TYPE_COM, 0x10, 0x0000, COM_FREQ * 8 },
1349 		{ PUC_PORT_TYPE_COM, 0x10, 0x0200, COM_FREQ * 8 },
1350 		{ PUC_PORT_TYPE_COM, 0x10, 0x0400, COM_FREQ * 8 },
1351 		{ PUC_PORT_TYPE_COM, 0x10, 0x0600, COM_FREQ * 8 },
1352 		{ PUC_PORT_TYPE_COM, 0x10, 0x0800, COM_FREQ * 8 },
1353 		{ PUC_PORT_TYPE_COM, 0x10, 0x0a00, COM_FREQ * 8 },
1354 		{ PUC_PORT_TYPE_COM, 0x10, 0x0c00, COM_FREQ * 8 },
1355 		{ PUC_PORT_TYPE_COM, 0x10, 0x0e00, COM_FREQ * 8 },
1356 	    },
1357 	},
1358 
1359 	/*
1360 	 * B&B Electronics MIPort Serial cards.
1361 	 */
1362 	{ "BBELEC ISOLATED_2_PORT",
1363 	    {	PCI_VENDOR_BBELEC, PCI_PRODUCT_BBELEC_ISOLATED_2_PORT, 0, 0 },
1364 	    {	0xffff, 0xffff, 0,	0	},
1365 	    {
1366 		{ PUC_PORT_TYPE_COM, 0x10, 0x0000, COM_FREQ * 8 },
1367 		{ PUC_PORT_TYPE_COM, 0x10, 0x0200, COM_FREQ * 8 },
1368 	    },
1369 	},
1370 	{ "BBELEC ISOLATED_4_PORT",
1371 	    {	PCI_VENDOR_BBELEC, PCI_PRODUCT_BBELEC_ISOLATED_4_PORT, 0, 0 },
1372 	    {	0xffff, 0xffff, 0,	0	},
1373 	    {
1374 		{ PUC_PORT_TYPE_COM, 0x10, 0x0000, COM_FREQ * 8 },
1375 		{ PUC_PORT_TYPE_COM, 0x10, 0x0200, COM_FREQ * 8 },
1376 		{ PUC_PORT_TYPE_COM, 0x10, 0x0400, COM_FREQ * 8 },
1377 		{ PUC_PORT_TYPE_COM, 0x10, 0x0600, COM_FREQ * 8 },
1378 	    },
1379 	},
1380 	{ "BBELEC ISOLATED_8_PORT",
1381 	    {	PCI_VENDOR_BBELEC, PCI_PRODUCT_BBELEC_ISOLATED_8_PORT, 0, 0 },
1382 	    {	0xffff, 0xffff, 0,	0	},
1383 	    {
1384 		{ PUC_PORT_TYPE_COM, 0x10, 0x0000, COM_FREQ * 8 },
1385 		{ PUC_PORT_TYPE_COM, 0x10, 0x0200, COM_FREQ * 8 },
1386 		{ PUC_PORT_TYPE_COM, 0x10, 0x0400, COM_FREQ * 8 },
1387 		{ PUC_PORT_TYPE_COM, 0x10, 0x0600, COM_FREQ * 8 },
1388 		{ PUC_PORT_TYPE_COM, 0x10, 0x0800, COM_FREQ * 8 },
1389 		{ PUC_PORT_TYPE_COM, 0x10, 0x0a00, COM_FREQ * 8 },
1390 		{ PUC_PORT_TYPE_COM, 0x10, 0x0c00, COM_FREQ * 8 },
1391 		{ PUC_PORT_TYPE_COM, 0x10, 0x0e00, COM_FREQ * 8 },
1392 	    },
1393 	},
1394 
1395 	{ .name = NULL },
1396 };
1397