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