xref: /openbsd/sys/dev/pci/pucdata.c (revision 272d3fc4)
1 /*	$OpenBSD: pucdata.c,v 1.120 2024/03/06 00:11:25 jsg Exp $	*/
2 /*	$NetBSD: pucdata.c,v 1.6 1999/07/03 05:55:23 cgd Exp $	*/
3 
4 /*
5  * Copyright (c) 1998, 1999 Christopher G. Demetriou.  All rights reserved.
6  *
7  * Redistribution and use in source and binary forms, with or without
8  * modification, are permitted provided that the following conditions
9  * are met:
10  * 1. Redistributions of source code must retain the above copyright
11  *    notice, this list of conditions and the following disclaimer.
12  * 2. Redistributions in binary form must reproduce the above copyright
13  *    notice, this list of conditions and the following disclaimer in the
14  *    documentation and/or other materials provided with the distribution.
15  * 3. All advertising materials mentioning features or use of this software
16  *    must display the following acknowledgement:
17  *      This product includes software developed by Christopher G. Demetriou
18  *	for the NetBSD Project.
19  * 4. The name of the author may not be used to endorse or promote products
20  *    derived from this software without specific prior written permission
21  *
22  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
23  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
24  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
25  * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
26  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
27  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
28  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
29  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
30  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
31  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32  */
33 
34 /*
35  * PCI "universal" communications card driver configuration data (used to
36  * match/attach the cards).
37  */
38 
39 #include <sys/param.h>
40 #include <sys/systm.h>
41 #include <sys/device.h>
42 
43 #include <dev/pci/pcireg.h>
44 #include <dev/pci/pcivar.h>
45 #include <dev/pci/pucvar.h>
46 #include <dev/pci/pcidevs.h>
47 
48 const struct puc_device_description puc_devs[] = {
49 
50 	{	/* 6 Series KT */
51 	    {	PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_6SERIES_KT, 0x0000, 0x0000 },
52 	    {	0xffff, 0xffff,					0x0000, 0x0000 },
53 	    {
54 		{ PUC_PORT_COM, 0x10, 0x0000 },
55 	    },
56 	},
57 	{	/* 7 Series KT */
58 	    {	PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_7SERIES_KT, 0x0000, 0x0000 },
59 	    {	0xffff, 0xffff,					0x0000, 0x0000 },
60 	    {
61 		{ PUC_PORT_COM, 0x10, 0x0000 },
62 	    },
63 	},
64 	{	/* 8 Series KT */
65 	    {	PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_8SERIES_KT, 0x0000, 0x0000 },
66 	    {	0xffff, 0xffff,					0x0000, 0x0000 },
67 	    {
68 		{ PUC_PORT_COM, 0x10, 0x0000 },
69 	    },
70 	},
71 	{	/* 8 Series LP KT */
72 	    {	PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_8SERIES_LP_KT, 0x0000, 0x0000 },
73 	    {	0xffff, 0xffff,					0x0000, 0x0000 },
74 	    {
75 		{ PUC_PORT_COM, 0x10, 0x0000 },
76 	    },
77 	},
78 	{	/* 9 Series KT */
79 	    {	PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_9SERIES_KT, 0x0000, 0x0000 },
80 	    {	0xffff, 0xffff,					0x0000, 0x0000 },
81 	    {
82 		{ PUC_PORT_COM, 0x10, 0x0000 },
83 	    },
84 	},
85 	{	/* 9 Series LP KT */
86 	    {	PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_9SERIES_LP_KT, 0x0000, 0x0000 },
87 	    {	0xffff, 0xffff,					0x0000, 0x0000 },
88 	    {
89 		{ PUC_PORT_COM, 0x10, 0x0000 },
90 	    },
91 	},
92 	{	/* 100 Series KT */
93 	    {	PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_100SERIES_KT, 0x0000, 0x0000 },
94 	    {	0xffff, 0xffff,					0x0000, 0x0000 },
95 	    {
96 		{ PUC_PORT_COM, 0x10, 0x0000 },
97 	    },
98 	},
99 	{	/* 100 Series LP KT */
100 	    {	PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_100SERIES_LP_KT, 0x0000, 0x0000 },
101 	    {	0xffff, 0xffff,					0x0000, 0x0000 },
102 	    {
103 		{ PUC_PORT_COM, 0x10, 0x0000 },
104 	    },
105 	},
106 	{	/* 200 Series KT */
107 	    {	PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_200SERIES_KT, 0x0000, 0x0000 },
108 	    {	0xffff, 0xffff,					0x0000, 0x0000 },
109 	    {
110 		{ PUC_PORT_COM, 0x10, 0x0000 },
111 	    },
112 	},
113 	{	/* 300 Series KT */
114 	    {	PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_300SERIES_KT, 0x0000, 0x0000 },
115 	    {	0xffff, 0xffff,					0x0000, 0x0000 },
116 	    {
117 		{ PUC_PORT_COM, 0x10, 0x0000 },
118 	    },
119 	},
120 	{	/* 300 Series U KT */
121 	    {	PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_300SERIES_U_KT, 0x0000, 0x0000 },
122 	    {	0xffff, 0xffff,					0x0000, 0x0000 },
123 	    {
124 		{ PUC_PORT_COM, 0x10, 0x0000 },
125 	    },
126 	},
127 	{	/* 400 Series KT */
128 	    {	PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_400SERIES_KT, 0x0000, 0x0000 },
129 	    {	0xffff, 0xffff,					0x0000, 0x0000 },
130 	    {
131 		{ PUC_PORT_COM, 0x10, 0x0000 },
132 	    },
133 	},
134 	{	/* 400 Series LP KT */
135 	    {	PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_400SERIES_LP_KT, 0x0000, 0x0000 },
136 	    {	0xffff, 0xffff,					0x0000, 0x0000 },
137 	    {
138 		{ PUC_PORT_COM, 0x10, 0x0000 },
139 	    },
140 	},
141 	{	/* 400 Series V KT */
142 	    {	PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_400SERIES_V_KT, 0x0000, 0x0000 },
143 	    {	0xffff, 0xffff,					0x0000, 0x0000 },
144 	    {
145 		{ PUC_PORT_COM, 0x10, 0x0000 },
146 	    },
147 	},
148 	{	/* 495 Series LP KT */
149 	    {	PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_495SERIES_LP_KT, 0x0000, 0x0000 },
150 	    {	0xffff, 0xffff,					0x0000, 0x0000 },
151 	    {
152 		{ PUC_PORT_COM, 0x10, 0x0000 },
153 	    },
154 	},
155 	{	/* 500 Series KT */
156 	    {	PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_500SERIES_KT, 0x0000, 0x0000 },
157 	    {	0xffff, 0xffff,					0x0000, 0x0000 },
158 	    {
159 		{ PUC_PORT_COM, 0x10, 0x0000 },
160 	    },
161 	},
162 	{	/* 500 Series LP KT */
163 	    {	PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_500SERIES_LP_KT, 0x0000, 0x0000 },
164 	    {	0xffff, 0xffff,					0x0000, 0x0000 },
165 	    {
166 		{ PUC_PORT_COM, 0x10, 0x0000 },
167 	    },
168 	},
169 	{	/* 600 Series KT */
170 	    {	PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_600SERIES_KT, 0x0000, 0x0000 },
171 	    {	0xffff, 0xffff,					0x0000, 0x0000 },
172 	    {
173 		{ PUC_PORT_COM, 0x10, 0x0000 },
174 	    },
175 	},
176 	{	/* 600 Series LP KT */
177 	    {	PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_600SERIES_LP_KT, 0x0000, 0x0000 },
178 	    {	0xffff, 0xffff,					0x0000, 0x0000 },
179 	    {
180 		{ PUC_PORT_COM, 0x10, 0x0000 },
181 	    },
182 	},
183 	{	/* 700 Series KT */
184 	    {	PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_700SERIES_KT, 0x0000, 0x0000 },
185 	    {	0xffff, 0xffff,					0x0000, 0x0000 },
186 	    {
187 		{ PUC_PORT_COM, 0x10, 0x0000 },
188 	    },
189 	},
190 	{	/* MTL KT */
191 	    {	PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_MTL_KT, 0x0000, 0x0000 },
192 	    {	0xffff, 0xffff,					0x0000, 0x0000 },
193 	    {
194 		{ PUC_PORT_COM, 0x10, 0x0000 },
195 	    },
196 	},
197 	{	/* 82946GZ KT */
198 	    {	PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_82946GZ_KT, 0x0000, 0x0000 },
199 	    {	0xffff, 0xffff,					0x0000, 0x0000 },
200 	    {
201 		{ PUC_PORT_COM, 0x10, 0x0000 },
202 	    },
203 	},
204 	{	/* 82Q965 KT */
205 	    {	PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_82Q965_KT, 0x0000, 0x0000 },
206 	    {	0xffff, 0xffff,					0x0000, 0x0000 },
207 	    {
208 		{ PUC_PORT_COM, 0x10, 0x0000 },
209 	    },
210 	},
211 	{	/* 82G965 KT */
212 	    {	PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_82G965_KT, 0x0000, 0x0000 },
213 	    {	0xffff, 0xffff,					0x0000, 0x0000 },
214 	    {
215 		{ PUC_PORT_COM, 0x10, 0x0000 },
216 	    },
217 	},
218 	{	/* 82Q35 KT */
219 	    {	PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_82Q35_KT, 0x0000, 0x0000 },
220 	    {	0xffff, 0xffff,					0x0000, 0x0000 },
221 	    {
222 		{ PUC_PORT_COM, 0x10, 0x0000 },
223 	    },
224 	},
225 	{	/* 82G33 KT */
226 	    {	PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_82G33_KT, 0x0000, 0x0000 },
227 	    {	0xffff, 0xffff,					0x0000, 0x0000 },
228 	    {
229 		{ PUC_PORT_COM, 0x10, 0x0000 },
230 	    },
231 	},
232 	{	/* 82Q33 KT */
233 	    {	PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_82Q33_KT, 0x0000, 0x0000 },
234 	    {	0xffff, 0xffff,					0x0000, 0x0000 },
235 	    {
236 		{ PUC_PORT_COM, 0x10, 0x0000 },
237 	    },
238 	},
239 	{	/* 82X38 KT */
240 	    {	PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_82X38_KT, 0x0000, 0x0000 },
241 	    {	0xffff, 0xffff,					0x0000, 0x0000 },
242 	    {
243 		{ PUC_PORT_COM, 0x10, 0x0000 },
244 	    },
245 	},
246 	{	/* GM965 KT */
247 	    {	PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_82GM965_KT, 0x0000, 0x0000 },
248 	    {	0xffff, 0xffff,					0x0000, 0x0000 },
249 	    {
250 		{ PUC_PORT_COM, 0x10, 0x0000 },
251 	    },
252 	},
253 	{	/* GME965 KT */
254 	    {	PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_82GME965_KT, 0x0000, 0x0000 },
255 	    {	0xffff, 0xffff,					0x0000, 0x0000 },
256 	    {
257 		{ PUC_PORT_COM, 0x10, 0x0000 },
258 	    },
259 	},
260 	{	/* GM45 KT */
261 	    {	PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_82GM45_KT, 0x0000, 0x0000 },
262 	    {	0xffff, 0xffff,					0x0000, 0x0000 },
263 	    {
264 		{ PUC_PORT_COM, 0x10, 0x0000 },
265 	    },
266 	},
267 	{	/* Q45 KT */
268 	    {	PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_82Q45_KT, 0x0000, 0x0000 },
269 	    {	0xffff, 0xffff,					0x0000, 0x0000 },
270 	    {
271 		{ PUC_PORT_COM, 0x10, 0x0000 },
272 	    },
273 	},
274 	{	/* 3400 KT */
275 	    {	PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_3400_KT, 0x0000, 0x0000 },
276 	    {	0xffff, 0xffff,					0x0000, 0x0000 },
277 	    {
278 		{ PUC_PORT_COM, 0x10, 0x0000 },
279 	    },
280 	},
281 	{   /* Intel EG20T */
282 	    {   PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_EG20T_SERIAL_1, 0x0000, 0x0000 },
283 	    {	0xffff,	0xffff,				      0x0000, 0x0000 },
284 	    {
285 		{ PUC_PORT_COM, 0x10, 0x0000 },
286 	    },
287 	},
288 	{   /* Intel EG20T */
289 	    {   PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_EG20T_SERIAL_2, 0x0000, 0x0000 },
290 	    {	0xffff,	0xffff,				      0x0000, 0x0000 },
291 	    {
292 		{ PUC_PORT_COM, 0x10, 0x0000 },
293 	    },
294 	},
295 	{   /* Intel EG20T */
296 	    {   PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_EG20T_SERIAL_3, 0x0000, 0x0000 },
297 	    {	0xffff,	0xffff,				      0x0000, 0x0000 },
298 	    {
299 		{ PUC_PORT_COM, 0x10, 0x0000 },
300 	    },
301 	},
302 	{   /* Intel EG20T */
303 	    {   PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_EG20T_SERIAL_4, 0x0000, 0x0000 },
304 	    {	0xffff,	0xffff,				      0x0000, 0x0000 },
305 	    {
306 		{ PUC_PORT_COM, 0x10, 0x0000 },
307 	    },
308 	},
309 	{	/* Atom S1200 UART */
310 	    {	PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_ATOM_S1200_UART, 0x0000, 0x0000 },
311 	    {	0xffff, 0xffff,					0x0000, 0x0000 },
312 	    {
313 		{ PUC_PORT_COM, 0x10, 0x0000 },
314 	    },
315 	},
316 	{	/* Intel C3000 UART */
317 	    {	PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_C3000_HSUART, 0x0000, 0x0000 },
318 	    {	0xffff, 0xffff,					0x0000, 0x0000 },
319 	    {
320 		{ PUC_PORT_COM, 0x10, 0x0000 },
321 	    },
322 	},
323 	/*
324 	 * XXX no entry because I have no data:
325 	 * XXX Dolphin Peripherals 4006 (single parallel)
326 	 */
327 
328 	/*
329 	 * Dolphin Peripherals 4014 (dual parallel port) card.  PLX 9050, with
330 	 * a seemingly-lame EEPROM setup that puts the Dolphin IDs
331 	 * into the subsystem fields, and claims that it's a
332 	 * network/misc (0x02/0x80) device.
333 	 */
334 	{   /* "Dolphin Peripherals 4014" */
335 	    {	PCI_VENDOR_PLX,	PCI_PRODUCT_PLX_9050,	0xd84d,	0x6810	},
336 	    {	0xffff,	0xffff,				0xffff,	0xffff	},
337 	    {
338 		{ PUC_PORT_LPT, 0x20, 0x0000 },
339 		{ PUC_PORT_LPT, 0x24, 0x0000 },
340 	    },
341 	},
342 
343 	/*
344 	 * XXX no entry because I have no data:
345 	 * XXX Dolphin Peripherals 4025 (single serial)
346 	 */
347 
348 	/*
349 	 * Dolphin Peripherals 4035 (dual serial port) card.  PLX 9050, with
350 	 * a seemingly-lame EEPROM setup that puts the Dolphin IDs
351 	 * into the subsystem fields, and claims that it's a
352 	 * network/misc (0x02/0x80) device.
353 	 */
354 	{   /* "Dolphin Peripherals 4035" */
355 	    {	PCI_VENDOR_PLX, PCI_PRODUCT_PLX_9050,	0xd84d,	0x6808	},
356 	    {	0xffff,	0xffff,				0xffff,	0xffff	},
357 	    {
358 		{ PUC_PORT_COM, 0x18, 0x0000 },
359 		{ PUC_PORT_COM, 0x1c, 0x0000 },
360 	    },
361 	},
362 
363 	/*
364 	 * XXX no entry because I have no data:
365 	 * XXX Dolphin Peripherals 4078 (dual serial and single parallel)
366 	 */
367 
368 	/*
369 	 * Decision PCCOM PCI series. PLX 9052 with 1 or 2 16554 UARTS
370 	 */
371 
372 	/* Decision Computer Inc PCCOM 2 Port RS232/422/485: 2S */
373 	{   /* "Decision Computer Inc PCCOM 2 Port RS232/422/485", */
374 	    {	PCI_VENDOR_DCI,	PCI_PRODUCT_DCI_APCI2,		0, 0	},
375 	    {	0xffff,	0xffff,					0, 0	},
376 	    {
377 		{ PUC_PORT_COM, 0x1c, 0x0000 },
378 		{ PUC_PORT_COM, 0x1c, 0x0008 },
379 	    },
380 	},
381 
382 	/* Decision Computer Inc PCCOM 4 Port RS232/422/485: 4S */
383 	{   /* "Decision Computer Inc PCCOM 4 Port RS232/422/485", */
384 	    {	PCI_VENDOR_DCI,	PCI_PRODUCT_DCI_APCI4,		0, 0	},
385 	    {	0xffff,	0xffff,					0, 0	},
386 	    {
387 		{ PUC_PORT_COM, 0x1c, 0x0000 },
388 		{ PUC_PORT_COM, 0x1c, 0x0008 },
389 		{ PUC_PORT_COM, 0x1c, 0x0010 },
390 		{ PUC_PORT_COM, 0x1c, 0x0018 },
391 	    },
392 	},
393 
394 	/* Decision Computer Inc PCCOM 8 Port RS232/422/485: 8S */
395 	{   /* "Decision Computer Inc PCCOM 8 Port RS232/422/485", */
396 	    {	PCI_VENDOR_DCI, PCI_PRODUCT_DCI_APCI8,		0, 0	},
397 	    {	0xffff,	0xffff,					0, 0	},
398 	    {
399 		{ PUC_PORT_COM, 0x1c, 0x0000 },
400 		{ PUC_PORT_COM, 0x1c, 0x0008 },
401 		{ PUC_PORT_COM, 0x1c, 0x0010 },
402 		{ PUC_PORT_COM, 0x1c, 0x0018 },
403 		{ PUC_PORT_COM, 0x1c, 0x0020 },
404 		{ PUC_PORT_COM, 0x1c, 0x0028 },
405 		{ PUC_PORT_COM, 0x1c, 0x0030 },
406 		{ PUC_PORT_COM, 0x1c, 0x0038 },
407 	    },
408 	},
409 	/* IBM SurePOS 300 Series (481033H) serial ports */
410 	{   /* "IBM SurePOS 300 Series (481033H) serial ports", */
411 	    {	PCI_VENDOR_IBM, PCI_PRODUCT_IBM_4810_SCC,	0, 0	},
412 	    {	0xffff, 0xffff,					0, 0	},
413 	    {
414 		{ PUC_PORT_COM, 0x10, 0x0000 }, /* Port C */
415 		{ PUC_PORT_COM, 0x18, 0x0000 }, /* Port D */
416 		{ PUC_PORT_COM, 0x14, 0x0000 }, /* Port E */
417 		{ PUC_PORT_COM, 0x1c, 0x0000 }, /* Port F */
418 	    },
419 	},
420 
421 	/*
422 	 * SIIG Boards.
423 	 *
424 	 * SIIG provides documentation for their boards at:
425 	 * <URL:http://www.siig.com/driver.htm>
426 	 *
427 	 * Please excuse the weird ordering, it's the order they
428 	 * use in their documentation.
429 	 */
430 
431 	/*
432 	 * SIIG "10x" family boards.
433 	 */
434 
435 	/* SIIG Cyber Serial PCI 16C550 (10x family): 1S */
436 	{   /* "SIIG Cyber Serial PCI 16C550 (10x family)", */
437 	    {	PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_1000,		0, 0	},
438 	    {	0xffff,	0xffff,					0, 0	},
439 	    {
440 		{ PUC_PORT_COM, 0x18, 0x0000 },
441 	    },
442 	},
443 
444 	/* SIIG Cyber Serial PCI 16C650 (10x family): 1S */
445 	{   /* "SIIG Cyber Serial PCI 16C650 (10x family)", */
446 	    {	PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_1001,		0, 0	},
447 	    {	0xffff,	0xffff,					0, 0	},
448 	    {
449 		{ PUC_PORT_COM, 0x18, 0x0000 },
450 	    },
451 	},
452 
453 	/* SIIG Cyber Serial PCI 16C850 (10x family): 1S */
454 	{   /* "SIIG Cyber Serial PCI 16C850 (10x family)", */
455 	    {	PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_1002,		0, 0	},
456 	    {	0xffff,	0xffff,					0, 0	},
457 	    {
458 		{ PUC_PORT_COM, 0x18, 0x0000 },
459 	    },
460 	},
461 
462 	/* SIIG Cyber I/O PCI 16C550 (10x family): 1S, 1P */
463 	{   /* "SIIG Cyber I/O PCI 16C550 (10x family)", */
464 	    {	PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_1010,		0, 0	},
465 	    {	0xffff,	0xffff,					0, 0	},
466 	    {
467 		{ PUC_PORT_COM, 0x18, 0x0000 },
468 		{ PUC_PORT_LPT, 0x1c, 0x0000 },
469 	    },
470 	},
471 
472 	/* SIIG Cyber I/O PCI 16C650 (10x family): 1S, 1P */
473 	{   /* "SIIG Cyber I/O PCI 16C650 (10x family)", */
474 	    {	PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_1011,		0, 0	},
475 	    {	0xffff,	0xffff,					0, 0	},
476 	    {
477 		{ PUC_PORT_COM, 0x18, 0x0000 },
478 		{ PUC_PORT_LPT, 0x1c, 0x0000 },
479 	    },
480 	},
481 
482 	/* SIIG Cyber I/O PCI 16C850 (10x family): 1S, 1P */
483 	{   /* "SIIG Cyber I/O PCI 16C850 (10x family)", */
484 	    {	PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_1012,		0, 0	},
485 	    {	0xffff,	0xffff,					0, 0	},
486 	    {
487 		{ PUC_PORT_COM, 0x18, 0x0000 },
488 		{ PUC_PORT_LPT, 0x1c, 0x0000 },
489 	    },
490 	},
491 
492 	/* SIIG Cyber Parallel PCI (10x family): 1P */
493 	{   /* "SIIG Cyber Parallel PCI (10x family)", */
494 	    {	PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_1020,		0, 0	},
495 	    {	0xffff,	0xffff,					0, 0	},
496 	    {
497 		{ PUC_PORT_LPT, 0x18, 0x0000 },
498 	    },
499 	},
500 
501 	/* SIIG Cyber Parallel Dual PCI (10x family): 2P */
502 	{   /* "SIIG Cyber Parallel Dual PCI (10x family)", */
503 	    {	PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_1021,		0, 0	},
504 	    {	0xffff,	0xffff,					0, 0	},
505 	    {
506 		{ PUC_PORT_LPT, 0x18, 0x0000 },
507 		{ PUC_PORT_LPT, 0x20, 0x0000 },
508 	    },
509 	},
510 
511 	/* SIIG Cyber Serial Dual PCI 16C550 (10x family): 2S */
512 	{   /* "SIIG Cyber Serial Dual PCI 16C550 (10x family)", */
513 	    {	PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_1030,		0, 0	},
514 	    {	0xffff,	0xffff,					0, 0	},
515 	    {
516 		{ PUC_PORT_COM, 0x18, 0x0000 },
517 		{ PUC_PORT_COM, 0x1c, 0x0000 },
518 	    },
519 	},
520 
521 	/* SIIG Cyber Serial Dual PCI 16C650 (10x family): 2S */
522 	{   /* "SIIG Cyber Serial Dual PCI 16C650 (10x family)", */
523 	    {	PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_1031,		0, 0	},
524 	    {	0xffff,	0xffff,					0, 0	},
525 	    {
526 		{ PUC_PORT_COM, 0x18, 0x0000 },
527 		{ PUC_PORT_COM, 0x1c, 0x0000 },
528 	    },
529 	},
530 
531 	/* SIIG Cyber Serial Dual PCI 16C850 (10x family): 2S */
532 	{   /* "SIIG Cyber Serial Dual PCI 16C850 (10x family)", */
533 	    {	PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_1032,		0, 0	},
534 	    {	0xffff,	0xffff,					0, 0	},
535 	    {
536 		{ PUC_PORT_COM, 0x18, 0x0000 },
537 		{ PUC_PORT_COM, 0x1c, 0x0000 },
538 	    },
539 	},
540 
541 	/* SIIG Cyber 2S1P PCI 16C550 (10x family): 2S, 1P */
542 	{   /* "SIIG Cyber 2S1P PCI 16C550 (10x family)", */
543 	    {	PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_1034,		0, 0	},
544 	    {	0xffff,	0xffff,					0, 0	},
545 	    {
546 		{ PUC_PORT_COM, 0x18, 0x0000 },
547 		{ PUC_PORT_COM, 0x1c, 0x0000 },
548 		{ PUC_PORT_LPT, 0x20, 0x0000 },
549 	    },
550 	},
551 
552 	/* SIIG Cyber 2S1P PCI 16C650 (10x family): 2S, 1P */
553 	{   /* "SIIG Cyber 2S1P PCI 16C650 (10x family)", */
554 	    {	PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_1035,		0, 0	},
555 	    {	0xffff,	0xffff,					0, 0	},
556 	    {
557 		{ PUC_PORT_COM, 0x18, 0x0000 },
558 		{ PUC_PORT_COM, 0x1c, 0x0000 },
559 		{ PUC_PORT_LPT, 0x20, 0x0000 },
560 	    },
561 	},
562 
563 	/* SIIG Cyber 2S1P PCI 16C850 (10x family): 2S, 1P */
564 	{   /* "SIIG Cyber 2S1P PCI 16C850 (10x family)", */
565 	    {	PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_1036,		0, 0	},
566 	    {	0xffff,	0xffff,					0, 0	},
567 	    {
568 		{ PUC_PORT_COM, 0x18, 0x0000 },
569 		{ PUC_PORT_COM, 0x1c, 0x0000 },
570 		{ PUC_PORT_LPT, 0x20, 0x0000 },
571 	    },
572 	},
573 
574 	/* SIIG Cyber 4S PCI 16C550 (10x family): 4S */
575 	{   /* "SIIG Cyber 4S PCI 16C550 (10x family)", */
576 	    {	PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_1050,		0, 0	},
577 	    {	0xffff,	0xffff,					0, 0	},
578 	    {
579 		{ PUC_PORT_COM, 0x18, 0x0000 },
580 		{ PUC_PORT_COM, 0x1c, 0x0000 },
581 		{ PUC_PORT_COM, 0x20, 0x0000 },
582 		{ PUC_PORT_COM, 0x24, 0x0000 },
583 	    },
584 	},
585 
586 	/* SIIG Cyber 4S PCI 16C650 (10x family): 4S */
587 	{   /* "SIIG Cyber 4S PCI 16C650 (10x family)", */
588 	    {	PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_1051,		0, 0	},
589 	    {	0xffff,	0xffff,					0, 0	},
590 	    {
591 		{ PUC_PORT_COM, 0x18, 0x0000 },
592 		{ PUC_PORT_COM, 0x1c, 0x0000 },
593 		{ PUC_PORT_COM, 0x20, 0x0000 },
594 		{ PUC_PORT_COM, 0x24, 0x0000 },
595 	    },
596 	},
597 
598 	/* SIIG Cyber 4S PCI 16C850 (10x family): 4S */
599 	{   /* "SIIG Cyber 4S PCI 16C850 (10x family)", */
600 	    {	PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_1052,		0, 0	},
601 	    {	0xffff,	0xffff,					0, 0	},
602 	    {
603 		{ PUC_PORT_COM, 0x18, 0x0000 },
604 		{ PUC_PORT_COM, 0x1c, 0x0000 },
605 		{ PUC_PORT_COM, 0x20, 0x0000 },
606 		{ PUC_PORT_COM, 0x24, 0x0000 },
607 	    },
608 	},
609 
610 	/*
611 	 * SIIG "20x" family boards.
612 	 */
613 
614 	/* SIIG Cyber Parallel PCI (20x family): 1P */
615 	{   /* "SIIG Cyber Parallel PCI (20x family)", */
616 	    {	PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_2020,		0, 0	},
617 	    {	0xffff,	0xffff,					0, 0	},
618 	    {
619 		{ PUC_PORT_LPT, 0x10, 0x0000 },
620 	    },
621 	},
622 
623 	/* SIIG Cyber Parallel Dual PCI (20x family): 2P */
624 	{   /* "SIIG Cyber Parallel Dual PCI (20x family)", */
625 	    {	PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_2021,		0, 0	},
626 	    {	0xffff,	0xffff,					0, 0	},
627 	    {
628 		{ PUC_PORT_LPT, 0x10, 0x0000 },
629 		{ PUC_PORT_LPT, 0x18, 0x0000 },
630 	    },
631 	},
632 
633 	/* SIIG Cyber 2P1S PCI 16C550 (20x family): 1S, 2P */
634 	{   /* "SIIG Cyber 2P1S PCI 16C550 (20x family)", */
635 	    {	PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_2040,		0, 0	},
636 	    {	0xffff,	0xffff,					0, 0	},
637 	    {
638 		{ PUC_PORT_COM, 0x10, 0x0000 },
639 		{ PUC_PORT_LPT, 0x14, 0x0000 },
640 		{ PUC_PORT_LPT, 0x1c, 0x0000 },
641 	    },
642 	},
643 
644 	/* SIIG Cyber 2P1S PCI 16C650 (20x family): 1S, 2P */
645 	{   /* "SIIG Cyber 2P1S PCI 16C650 (20x family)", */
646 	    {	PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_2041,		0, 0	},
647 	    {	0xffff,	0xffff,					0, 0	},
648 	    {
649 		{ PUC_PORT_COM, 0x10, 0x0000 },
650 		{ PUC_PORT_LPT, 0x14, 0x0000 },
651 		{ PUC_PORT_LPT, 0x1c, 0x0000 },
652 	    },
653 	},
654 
655 	/* SIIG Cyber 2P1S PCI 16C850 (20x family): 1S, 2P */
656 	{   /* "SIIG Cyber 2P1S PCI 16C850 (20x family)", */
657 	    {	PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_2042,		0, 0	},
658 	    {	0xffff,	0xffff,					0, 0	},
659 	    {
660 		{ PUC_PORT_COM, 0x10, 0x0000 },
661 		{ PUC_PORT_LPT, 0x14, 0x0000 },
662 		{ PUC_PORT_LPT, 0x1c, 0x0000 },
663 	    },
664 	},
665 
666 	/* SIIG Cyber Serial PCI 16C550 (20x family): 1S */
667 	{   /* "SIIG Cyber Serial PCI 16C550 (20x family)", */
668 	    {	PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_2000,		0, 0	},
669 	    {	0xffff,	0xffff,					0, 0	},
670 	    {
671 		{ PUC_PORT_COM, 0x10, 0x0000 },
672 	    },
673 	},
674 
675 	/* SIIG Cyber Serial PCI 16C650 (20x family): 1S */
676 	{   /* "SIIG Cyber Serial PCI 16C650 (20x family)", */
677 	    {	PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_2001,		0, 0	},
678 	    {	0xffff,	0xffff,					0, 0	},
679 	    {
680 		{ PUC_PORT_COM, 0x10, 0x0000 },
681 	    },
682 	},
683 
684 	/* SIIG Cyber Serial PCI 16C850 (20x family): 1S */
685 	{   /* "SIIG Cyber Serial PCI 16C850 (20x family)", */
686 	    {	PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_2002,		0, 0	},
687 	    {	0xffff,	0xffff,					0, 0	},
688 	    {
689 		{ PUC_PORT_COM, 0x10, 0x0000 },
690 	    },
691 	},
692 
693 	/* SIIG Cyber I/O PCI 16C550 (20x family): 1S, 1P */
694 	{   /* "SIIG Cyber I/O PCI 16C550 (20x family)", */
695 	    {	PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_2010,		0, 0	},
696 	    {	0xffff,	0xffff,					0, 0	},
697 	    {
698 		{ PUC_PORT_COM, 0x10, 0x0000 },
699 		{ PUC_PORT_LPT, 0x14, 0x0000 },
700 	    },
701 	},
702 
703 	/* SIIG Cyber I/O PCI 16C650 (20x family): 1S, 1P */
704 	{   /* "SIIG Cyber I/O PCI 16C650 (20x family)", */
705 	    {	PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_2011,		0, 0	},
706 	    {	0xffff,	0xffff,					0, 0	},
707 	    {
708 		{ PUC_PORT_COM, 0x10, 0x0000 },
709 		{ PUC_PORT_LPT, 0x14, 0x0000 },
710 	    },
711 	},
712 
713 	/* SIIG Cyber I/O PCI 16C850 (20x family): 1S, 1P */
714 	{   /* "SIIG Cyber I/O PCI 16C850 (20x family)", */
715 	    {	PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_2012,		0, 0	},
716 	    {	0xffff,	0xffff,					0, 0	},
717 	    {
718 		{ PUC_PORT_COM, 0x10, 0x0000 },
719 		{ PUC_PORT_LPT, 0x14, 0x0000 },
720 	    },
721 	},
722 
723 	/* SIIG Cyber Serial Dual PCI 16C550 (20x family): 2S */
724 	{   /* "SIIG Cyber Serial Dual PCI 16C550 (20x family)", */
725 	    {	PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_2030,		0, 0	},
726 	    {	0xffff,	0xffff,					0, 0	},
727 	    {
728 		{ PUC_PORT_COM, 0x10, 0x0000 },
729 		{ PUC_PORT_COM, 0x14, 0x0000 },
730 	    },
731 	},
732 
733 	/* SIIG Cyber Serial Dual PCI 16C650 (20x family): 2S */
734 	{   /* "SIIG Cyber Serial Dual PCI 16C650 (20x family)", */
735 	    {	PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_2031,		0, 0	},
736 	    {	0xffff,	0xffff,					0, 0	},
737 	    {
738 		{ PUC_PORT_COM, 0x10, 0x0000 },
739 		{ PUC_PORT_COM, 0x14, 0x0000 },
740 	    },
741 	},
742 
743 	/* SIIG Cyber Serial Dual PCI 16C850 (20x family): 2S */
744 	{   /* "SIIG Cyber Serial Dual PCI 16C850 (20x family)", */
745 	    {	PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_2032,		0, 0	},
746 	    {	0xffff,	0xffff,					0, 0	},
747 	    {
748 		{ PUC_PORT_COM, 0x10, 0x0000 },
749 		{ PUC_PORT_COM, 0x14, 0x0000 },
750 	    },
751 	},
752 
753 	/* SIIG Cyber 2S1P PCI 16C550 (20x family): 2S, 1P */
754 	{   /* "SIIG Cyber 2S1P PCI 16C550 (20x family)", */
755 	    {	PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_2060,		0, 0	},
756 	    {	0xffff,	0xffff,					0, 0	},
757 	    {
758 		{ PUC_PORT_COM, 0x10, 0x0000 },
759 		{ PUC_PORT_COM, 0x14, 0x0000 },
760 		{ PUC_PORT_LPT, 0x18, 0x0000 },
761 	    },
762 	},
763 
764 	/* SIIG Cyber 2S1P PCI 16C650 (20x family): 2S, 1P */
765 	{   /* "SIIG Cyber 2S1P PCI 16C650 (20x family)", */
766 	    {	PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_2061,		0, 0	},
767 	    {	0xffff,	0xffff,					0, 0	},
768 	    {
769 		{ PUC_PORT_COM, 0x10, 0x0000 },
770 		{ PUC_PORT_COM, 0x14, 0x0000 },
771 		{ PUC_PORT_LPT, 0x18, 0x0000 },
772 	    },
773 	},
774 
775 	/* SIIG Cyber 2S1P PCI 16C850 (20x family): 2S, 1P */
776 	{   /* "SIIG Cyber 2S1P PCI 16C850 (20x family)", */
777 	    {	PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_2062,		0, 0	},
778 	    {	0xffff,	0xffff,					0, 0	},
779 	    {
780 		{ PUC_PORT_COM, 0x10, 0x0000 },
781 		{ PUC_PORT_COM, 0x14, 0x0000 },
782 		{ PUC_PORT_LPT, 0x18, 0x0000 },
783 	    },
784 	},
785 
786 	/* SIIG Cyber 4S PCI 16C550 (20x family): 4S */
787 	{   /* "SIIG Cyber 4S PCI 16C550 (20x family)", */
788 	    {	PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_2050,		0, 0	},
789 	    {	0xffff,	0xffff,					0, 0	},
790 	    {
791 		{ PUC_PORT_COM, 0x10, 0x0000 },
792 		{ PUC_PORT_COM, 0x14, 0x0000 },
793 		{ PUC_PORT_COM, 0x18, 0x0000 },
794 		{ PUC_PORT_COM, 0x1c, 0x0000 },
795 	    },
796 	},
797 
798 	/* SIIG Cyber 4S PCI 16C650 (20x family): 4S */
799 	{   /* "SIIG Cyber 4S PCI 16C650 (20x family)", */
800 	    {	PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_2051,		0, 0	},
801 	    {	0xffff,	0xffff,					0, 0	},
802 	    {
803 		{ PUC_PORT_COM, 0x10, 0x0000 },
804 		{ PUC_PORT_COM, 0x14, 0x0000 },
805 		{ PUC_PORT_COM, 0x18, 0x0000 },
806 		{ PUC_PORT_COM, 0x1c, 0x0000 },
807 	    },
808 	},
809 
810 	/* SIIG Cyber 4S PCI 16C850 (20x family): 4S */
811 	{   /* "SIIG Cyber 4S PCI 16C850 (20x family)", */
812 	    {	PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_2052,		0, 0	},
813 	    {	0xffff,	0xffff,					0, 0	},
814 	    {
815 		{ PUC_PORT_COM, 0x10, 0x0000 },
816 		{ PUC_PORT_COM, 0x14, 0x0000 },
817 		{ PUC_PORT_COM, 0x18, 0x0000 },
818 		{ PUC_PORT_COM, 0x1c, 0x0000 },
819 	    },
820 	},
821 
822 	/* SIIG Cyber 8S PCI 16C850 (20x family): 8S */
823 	{   /* "SIIG Cyber 8S PCI 16C850 (20x family)", */
824 	    {	PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_2081,		0, 0	},
825 	    {	0xffff, 0xffff,					0, 0	},
826 	    {
827 		{ PUC_PORT_COM, 0x10, 0x0000 },
828 		{ PUC_PORT_COM, 0x14, 0x0000 },
829 		{ PUC_PORT_COM, 0x18, 0x0000 },
830 		{ PUC_PORT_COM, 0x1c, 0x0000 },
831 		{ PUC_PORT_COM, 0x20, 0x0000 },
832 		{ PUC_PORT_COM, 0x20, 0x0008 },
833 		{ PUC_PORT_COM, 0x20, 0x0010 },
834 		{ PUC_PORT_COM, 0x20, 0x0018 },
835 	    },
836 	},
837 
838 	/* SIIG Cyber 8S PCI 16C850 (20x family): 8S */
839 	{   /* "SIIG Cyber 8S PCI 16C850 (20x family)", */
840 	    {	PCI_VENDOR_OXFORD2, PCI_PRODUCT_OXFORD2_OX16PCI954,
841 		PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_2082	},
842 	    {	0xffff, 0xffff,	0xffff, 0xffff	},
843 	    {
844 		{ PUC_PORT_COM_MUL10, 0x10, 0x0000 },
845 		{ PUC_PORT_COM_MUL10, 0x10, 0x0008 },
846 		{ PUC_PORT_COM_MUL10, 0x10, 0x0010 },
847 		{ PUC_PORT_COM_MUL10, 0x10, 0x0018 },
848 	    },
849 	},
850 
851 	/* OX16PCI954, first part of Serial Technologies Expander PCI-232-108 */
852 	{   /* "OX16PCI954" */
853 	    {	PCI_VENDOR_OXFORD2, PCI_PRODUCT_OXFORD2_OX16PCI954,
854 		PCI_VENDOR_OXFORD2, 0	},
855 	    {	0xffff, 0xffff,	0xffff, 0xffff	},
856 	    {
857 		{ PUC_PORT_COM_MUL8, 0x10, 0x0000 },
858 		{ PUC_PORT_COM_MUL8, 0x10, 0x0008 },
859 		{ PUC_PORT_COM_MUL8, 0x10, 0x0010 },
860 		{ PUC_PORT_COM_MUL8, 0x10, 0x0018 },
861 	    },
862 	},
863 
864 	/* Exsys EX-41092 (sold as SIIG JJ-E10011-S3) */
865 	{      /* "Exsys EX-41092", */
866 		{ PCI_VENDOR_OXFORD2, PCI_PRODUCT_OXFORD2_EXSYS_EX41092,0x0000,0x0000},
867 		{ 0xffff, 0xffff,                                       0x0000,0x0000},
868 		{
869 			{ PUC_PORT_COM_MUL10, 0x10, 0x0000 },
870 		},
871 	},
872 
873 	/* Exsys EX-41098, second part of Serial Technologies Expander PCI-232-108 */
874 	{   /* "Exsys EX-41098", */
875 	    {	PCI_VENDOR_OXFORD2, PCI_PRODUCT_OXFORD2_EXSYS_EX41098,
876 		PCI_VENDOR_OXFORD2, 0	},
877 	    {	0xffff, 0xffff, 0xffff, 0xffff },
878 	    {
879 		{ PUC_PORT_COM_MUL8, 0x10, 0x0000 },
880 		{ PUC_PORT_COM_MUL8, 0x10, 0x0008 },
881 		{ PUC_PORT_COM_MUL8, 0x10, 0x0010 },
882 		{ PUC_PORT_COM_MUL8, 0x10, 0x0018 },
883 	    },
884 	},
885 
886 	/* Exsys EX-41098, second part of SIIG Cyber 8S PCI Card */
887 	{   /* "Exsys EX-41098", */
888 	    {	PCI_VENDOR_OXFORD2, PCI_PRODUCT_OXFORD2_EXSYS_EX41098,
889 		PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_2082	},
890 	    {	0xffff, 0xffff, 0xffff, 0xffff },
891 	    {
892 		{ PUC_PORT_COM_MUL10, 0x10, 0x0000 },
893 		{ PUC_PORT_COM_MUL10, 0x10, 0x0008 },
894 		{ PUC_PORT_COM_MUL10, 0x10, 0x0010 },
895 		{ PUC_PORT_COM_MUL10, 0x10, 0x0018 },
896 	    },
897 	},
898 
899 	/*
900 	 * VScom PCI-400S, based on PLX 9050 Chip, 16k buffer
901 	 */
902 	{ /* "VScom PCI-400S", */
903 	    { PCI_VENDOR_PLX, PCI_PRODUCT_PLX_1077, 0x10b5, 0x1077 },
904 	    { 0xffff, 0xffff, 0xffff, 0xffff },
905 	    {
906 		{ PUC_PORT_COM_MUL8, 0x18, 0x0000 },
907 		{ PUC_PORT_COM_MUL8, 0x18, 0x0008 },
908 		{ PUC_PORT_COM_MUL8, 0x18, 0x0010 },
909 		{ PUC_PORT_COM_MUL8, 0x18, 0x0018 },
910 	    },
911 	},
912 
913 	/*
914 	 * VScom PCI-800, as sold on http://www.swann.com.au/isp/titan.html.
915 	 * Some PLX chip.  Note: This board has a software selectable(?)
916 	 * clock multiplier which this driver doesn't support, so you'll
917 	 * have to use an appropriately scaled baud rate when talking to
918 	 * the card.
919 	 */
920 	{   /* "VScom PCI-800", */
921 	    {	PCI_VENDOR_PLX,	PCI_PRODUCT_PLX_1076,	0x10b5,	0x1076	},
922 	    {	0xffff,	0xffff,				0xffff,	0xffff	},
923 	    {
924 		{ PUC_PORT_COM, 0x18, 0x0000 },
925 		{ PUC_PORT_COM, 0x18, 0x0008 },
926 		{ PUC_PORT_COM, 0x18, 0x0010 },
927 		{ PUC_PORT_COM, 0x18, 0x0018 },
928 		{ PUC_PORT_COM, 0x18, 0x0020 },
929 		{ PUC_PORT_COM, 0x18, 0x0028 },
930 		{ PUC_PORT_COM, 0x18, 0x0030 },
931 		{ PUC_PORT_COM, 0x18, 0x0038 },
932 	    },
933 	},
934 
935 	/*
936 	* VScom PCI 011H, 1 lpt.
937 	*/
938 	{   /* "VScom PCI-011H", */
939 	    {	PCI_VENDOR_OXFORD2, PCI_PRODUCT_OXFORD2_VSCOM_PCI011H,	0, 0 },
940 	    {	0xffff, 0xffff,						0, 0 },
941 	    {
942 		{ PUC_PORT_LPT, 0x10, 0x0000 },
943 	    },
944 	},
945 
946 	/*
947 	 * VScom PCI x10H, 1 lpt.
948 	 * is the lpt part of VScom 110H, 210H, 410H
949 	 */
950 	{   /* "VScom PCI-x10H", */
951 	    {	PCI_VENDOR_OXFORD, PCI_PRODUCT_OXFORD_VSCOM_PCIX10H,	0, 0 },
952 	    {	0xffff, 0xffff,						0, 0 },
953 	    {
954 		{ PUC_PORT_LPT, 0x10, 0x0000 },
955 	    },
956 	},
957 
958 	/*
959 	 * VScom PCI 100H, little sister of 800H, 1 com.
960 	 * also com part of VScom 110H
961 	 * The one I have defaults to a frequency of 14.7456 MHz which is
962 	 * jumper J1 set to 2-3.
963 	 */
964 	{   /* "VScom PCI-100H", */
965 	    {	PCI_VENDOR_OXFORD, PCI_PRODUCT_OXFORD_VSCOM_PCI100H,	0, 0 },
966 	    {	0xffff, 0xffff,						0, 0 },
967 	    {
968 		{ PUC_PORT_COM_MUL8, 0x10, 0x0000 },
969 	    },
970 	},
971 
972 	/*
973 	 * VScom PCI 200H, little sister of 800H, 2 com.
974 	 * also com part of VScom 210H
975 	 * The one I have defaults to a frequency of 14.7456 MHz which is
976 	 * jumper J1 set to 2-3.
977 	 */
978 
979 	{   /* "VScom PCI-200H", */
980 	    {	PCI_VENDOR_OXFORD, PCI_PRODUCT_OXFORD_VSCOM_PCI200H,	0, 0 },
981 	    {	0xffff, 0xffff,						0, 0 },
982 	    {
983 		{ PUC_PORT_COM_MUL8, 0x10, 0x0000 },
984 		{ PUC_PORT_COM_MUL8, 0x10, 0x0008 },
985 	    },
986 	},
987 
988 	/*
989 	 * VScom PCI 400H and 800H. Uses 4/8 16950 UART, behind a PCI chips
990 	 * that offers 4 com port on PCI device 0 (both 400H and 800H)
991 	 * and 4 on PCI device 1 (800H only). PCI device 0 has
992 	 * device ID 3 and PCI device 1 device ID 4. Uses a 14.7456 MHz crystal
993 	 * instead of the standard 1.8432MHz.
994 	 * There's a version with a jumper for selecting the crystal frequency,
995 	 * defaults to 8x as used here. The jumperless version uses 8x, too.
996 	 */
997 	{   /* "VScom PCI-400H/800H", */
998 	    {	PCI_VENDOR_OXFORD, PCI_PRODUCT_OXFORD_VSCOM_PCI800H_0,	0, 0 },
999 	    {	0xffff, 0xffff,						0, 0 },
1000 	    {
1001 		{ PUC_PORT_COM_MUL8, 0x10, 0x0000 },
1002 		{ PUC_PORT_COM_MUL8, 0x10, 0x0008 },
1003 		{ PUC_PORT_COM_MUL8, 0x10, 0x0010 },
1004 		{ PUC_PORT_COM_MUL8, 0x10, 0x0018 },
1005 	    },
1006 	},
1007 	{   /* "VScom PCI-400H/800H", */
1008 	    {	PCI_VENDOR_OXFORD, PCI_PRODUCT_OXFORD_VSCOM_PCI800H_1,	0, 0 },
1009 	    {	0xffff, 0xffff,						0, 0 },
1010 	    {
1011 		{ PUC_PORT_COM_MUL8, 0x10, 0x0000 },
1012 		{ PUC_PORT_COM_MUL8, 0x10, 0x0008 },
1013 		{ PUC_PORT_COM_MUL8, 0x10, 0x0010 },
1014 		{ PUC_PORT_COM_MUL8, 0x10, 0x0018 },
1015 	    },
1016 	},
1017 
1018 	/*
1019 	 * VScom PCI 200HV2, is 200H Version 2.
1020 	 * Sells as 200H
1021 	 */
1022 	{   /* "VScom PCI-200HV2", */
1023 	    {	PCI_VENDOR_OXFORD, PCI_PRODUCT_OXFORD_VSCOM_PCI200HV2,	0, 0 },
1024 	    {	0xffff, 0xffff,						0, 0 },
1025 	    {
1026 		{ PUC_PORT_COM_MUL8, 0x10, 0x0000 },
1027 		{ PUC_PORT_COM_MUL8, 0x14, 0x0000 },
1028 	    },
1029 	},
1030 
1031 	/*
1032 	 * VScom PCI 010L
1033 	 * one lpt
1034 	 * untested
1035 	 */
1036 	{   /* "VScom PCI-010L", */
1037 	    {	PCI_VENDOR_OXFORD, PCI_PRODUCT_OXFORD_VSCOM_PCI010L,    0, 0 },
1038 	    {	0xffff, 0xffff,						0, 0 },
1039 	    {
1040 		{ PUC_PORT_LPT, 0x1c, 0x0000 },
1041 	    },
1042 	},
1043 
1044 	/*
1045 	 * VScom PCI 100L
1046 	 * one com
1047 	 * The one I have defaults to a frequency of 14.7456 MHz which is
1048 	 * jumper J1 set to 2-3.
1049 	 */
1050 	{   /* "VScom PCI-100L", */
1051 	    {	PCI_VENDOR_OXFORD, PCI_PRODUCT_OXFORD_VSCOM_PCI100L,	0, 0 },
1052 	    {	0xffff, 0xffff,						0, 0 },
1053 	    {
1054 		{ PUC_PORT_COM_MUL8, 0x14, 0x0000 },
1055 	    },
1056 	},
1057 
1058 	/*
1059 	 * VScom PCI 110L
1060 	 * one com, one lpt
1061 	 * untested
1062 	 */
1063 	{   /* "VScom PCI-110L", */
1064 	    {	PCI_VENDOR_OXFORD, PCI_PRODUCT_OXFORD_VSCOM_PCI110L,	0, 0 },
1065 	    {	0xffff, 0xffff,						0, 0 },
1066 	    {
1067 		{ PUC_PORT_COM_MUL8, 0x14, 0x0000 },
1068 		{ PUC_PORT_LPT, 0x1c, 0x0000 },
1069 	    },
1070 	},
1071 
1072 	/*
1073 	 * VScom PCI-200L has 2 x 16550 UARTS.
1074 	 * The board has a jumper which allows you to select a clock speed
1075 	 * of either 14.7456MHz or 1.8432MHz. By default it runs at
1076 	 * the fast speed.
1077 	 */
1078 	{   /* "VScom PCI-200L with 2 x 16550 UARTS" */
1079 	    {	PCI_VENDOR_OXFORD, PCI_PRODUCT_OXFORD_VSCOM_PCI200L,	0, 0 },
1080 	    {	0xffff, 0xffff,						0, 0 },
1081 	    {
1082 		{ PUC_PORT_COM_MUL8, 0x14, 0x0000 },
1083 		{ PUC_PORT_COM_MUL8, 0x18, 0x0000 },
1084 	    },
1085 	},
1086 
1087 	/*
1088 	 * VScom PCI-210L
1089 	 * Has a jumper for frequency selection, defaults to 8x as used here
1090 	 * two com, one lpt
1091 	 */
1092 	{   /* "VScom PCI-210L" */
1093 	    {	PCI_VENDOR_OXFORD, PCI_PRODUCT_OXFORD_VSCOM_PCI210L,	0, 0 },
1094 	    {	0xffff, 0xffff,						0, 0 },
1095 	    {
1096 		{ PUC_PORT_COM_MUL8, 0x14, 0x0000 },
1097 		{ PUC_PORT_COM_MUL8, 0x18, 0x0000 },
1098 		{ PUC_PORT_LPT, 0x1c, 0x0000 },
1099 	    },
1100 	},
1101 
1102 	/*
1103 	 * VScom PCI 400L
1104 	 * Has a jumper for frequency selection, defaults to 8x as used here
1105 	 * This is equal to J1 in pos 2-3
1106 	 * VendorID mismatch with docs, should be 14d2 (oxford), is 10d2 (molex)
1107 	 */
1108 	{   /* "VScom PCI-400L", */
1109 	    {	PCI_VENDOR_MOLEX, PCI_PRODUCT_MOLEX_VSCOM_PCI400L,	0, 0 },
1110 	    {	0xffff, 0xffff,						0, 0 },
1111 	    {
1112 		{ PUC_PORT_COM_MUL8, 0x14, 0x0000 },
1113 		{ PUC_PORT_COM_MUL8, 0x18, 0x0000 },
1114 		{ PUC_PORT_COM_MUL8, 0x20, 0x0000 },
1115 		{ PUC_PORT_COM_MUL8, 0x20, 0x0008 },
1116 	    },
1117 	},
1118 
1119 	/*
1120 	 * VScom PCI 800L
1121 	 * Has a jumper for frequency selection, defaults to 8x as used here
1122 	 */
1123 	{   /* "VScom PCI-800L", */
1124 	    {	PCI_VENDOR_OXFORD, PCI_PRODUCT_OXFORD_VSCOM_PCI800L,	0, 0 },
1125 	    {	0xffff, 0xffff,						0, 0 },
1126 	    {
1127 		{ PUC_PORT_COM_MUL8, 0x14, 0x0000 },
1128 		{ PUC_PORT_COM_MUL8, 0x18, 0x0000 },
1129 		{ PUC_PORT_COM_MUL8, 0x20, 0x0000 },
1130 		{ PUC_PORT_COM_MUL8, 0x20, 0x0008 },
1131 		{ PUC_PORT_COM_MUL8, 0x20, 0x0010 },
1132 		{ PUC_PORT_COM_MUL8, 0x20, 0x0018 },
1133 		{ PUC_PORT_COM_MUL8, 0x20, 0x0020 },
1134 		{ PUC_PORT_COM_MUL8, 0x20, 0x0028 },
1135 	    },
1136 	},
1137 
1138 	/*
1139 	 * Exsys EX-41098
1140 	 */
1141 	{   /* "Exsys EX-41098", */
1142 	    {	PCI_VENDOR_OXFORD2, PCI_PRODUCT_OXFORD2_EXSYS_EX41098,	0, 0 },
1143 	    {	0xffff, 0xffff,						0, 0 },
1144 	    {
1145 		{ PUC_PORT_COM, 0x10, 0x0000 },
1146 		{ PUC_PORT_COM, 0x10, 0x0008 },
1147 		{ PUC_PORT_COM, 0x10, 0x0010 },
1148 		{ PUC_PORT_COM, 0x10, 0x0018 },
1149 	    },
1150 	},
1151 
1152 	/*
1153 	 * Boards with an Oxford Semiconductor chip.
1154 	 *
1155 	 * Oxford Semiconductor provides documentation for their chip at:
1156 	 * <URL:http://www.plxtech.com/products/uart/>
1157 	 *
1158 	 * As sold by Kouwell <URL:http://www.kouwell.com/>.
1159 	 * I/O Flex PCI I/O Card Model-223 with 4 serial and 1 parallel ports.
1160 	 */
1161 
1162 	/* Exsys EX-1372 (uses Oxford OX16PCI952 and a 8x clock) */
1163 	{   /* "Oxford Semiconductor OX16PCI952 UARTs", */
1164 	    {   PCI_VENDOR_OXFORD2, PCI_PRODUCT_OXFORD2_OX16PCI952,
1165 		PCI_VENDOR_OXFORD2, 0x0001 },
1166 	    {   0xffff, 0xffff,	0xffff, 0xffff },
1167 	    {
1168 		{ PUC_PORT_COM_MUL8, 0x10, 0x0000 },
1169 		{ PUC_PORT_COM_MUL8, 0x14, 0x0000 },
1170 	    },
1171 	},
1172 
1173 	/* Oxford Semiconductor OX16PCI952 PCI `950 UARTs - 128 byte FIFOs */
1174 	{   /* "Oxford Semiconductor OX16PCI952 UARTs", */
1175 	    {   PCI_VENDOR_OXFORD2, PCI_PRODUCT_OXFORD2_OX16PCI952,	0, 0 },
1176 	    {   0xffff, 0xffff,						0, 0 },
1177 	    {
1178 		{ PUC_PORT_COM, 0x10, 0x0000 },
1179 		{ PUC_PORT_COM, 0x14, 0x0000 },
1180 	    },
1181 	},
1182 
1183 	/* Oxford Semiconductor OX16PCI952 PCI Parallel port */
1184 	{   /* "Oxford Semiconductor OX16PCI952 Parallel port", */
1185 	    {   PCI_VENDOR_OXFORD2, PCI_PRODUCT_OXFORD2_OX16PCI952P,	0, 0 },
1186 	    {   0xffff, 0xffff,						0, 0 },
1187 	    {
1188 		{ PUC_PORT_LPT, 0x10, 0x0000 },
1189 	    },
1190 	},
1191 
1192 	/* Oxford Semiconductor OXPCIE952 PCIE Parallel port */
1193 	{   /* "Oxford Semiconductor OXPCIE952 PCIE Parallel port", */
1194 	    {   PCI_VENDOR_OXFORD2, PCI_PRODUCT_OXFORD2_OXPCIE952,	0, 0 },
1195 	    {   0xffff, 0xffff,						0, 0 },
1196 	    {
1197 		{ PUC_PORT_LPT, 0x10, 0x0000 },
1198 	    },
1199 	},
1200 
1201 	/* SIIG 2050 (uses Oxford 16PCI954 and a 10x clock) */
1202 	{   /* "Oxford Semiconductor OX16PCI954 UARTs", */
1203 	    {   PCI_VENDOR_OXFORD2, PCI_PRODUCT_OXFORD2_OX16PCI954,
1204 		PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_2050 },
1205 	    {   0xffff, 0xffff, 0xffff, 0xffff },
1206 	    {
1207 		{ PUC_PORT_COM_MUL10, 0x10, 0x0000 },
1208 		{ PUC_PORT_COM_MUL10, 0x10, 0x0008 },
1209 		{ PUC_PORT_COM_MUL10, 0x10, 0x0010 },
1210 		{ PUC_PORT_COM_MUL10, 0x10, 0x0018 },
1211 	    },
1212 	},
1213 
1214 	/* I-O DATA RSA-PCI2 (uses Oxford 16PCI954 and a 8x clock) */
1215 	{   /* "Oxford Semiconductor OX16PCI954 UARTs", */
1216 	    {   PCI_VENDOR_OXFORD2, PCI_PRODUCT_OXFORD2_OX16PCI954,
1217 		PCI_VENDOR_IODATA, 0xc070 },
1218 	    {   0xffff, 0xffff, 0xffff, 0xffff },
1219 	    {
1220 		{ PUC_PORT_COM_MUL8, 0x10, 0x0000 },
1221 		{ PUC_PORT_COM_MUL8, 0x10, 0x0008 },
1222 	    },
1223 	},
1224 
1225 	/* Oxford Semiconductor OX16PCI954 PCI UARTs */
1226 	{   /* "Oxford Semiconductor OX16PCI954 UARTs", */
1227 	    {   PCI_VENDOR_OXFORD2, PCI_PRODUCT_OXFORD2_OX16PCI954,	0, 0 },
1228 	    {   0xffff, 0xffff,						0, 0 },
1229 	    {
1230 		{ PUC_PORT_COM, 0x10, 0x0000 },
1231 		{ PUC_PORT_COM, 0x10, 0x0008 },
1232 		{ PUC_PORT_COM, 0x10, 0x0010 },
1233 		{ PUC_PORT_COM, 0x10, 0x0018 },
1234 	    },
1235 	},
1236 
1237 	/* Commell MP-954GPS, GPS and 2 COM */
1238 	{   /* "Oxford Semiconductor OX16mPCI954 UARTs", */
1239 	    {   PCI_VENDOR_OXFORD2, PCI_PRODUCT_OXFORD2_OXMPCI954,	0, 0 },
1240 	    {   0xffff, 0xffff,						0, 0 },
1241 	    {
1242 		{ PUC_PORT_COM_MUL4, 0x10, 0x0000 },
1243 		{ PUC_PORT_COM_MUL4, 0x10, 0x0008 },
1244 		{ PUC_PORT_COM_MUL4, 0x10, 0x0010 },
1245 	    },
1246 	},
1247 
1248 	/* Oxford Semiconductor OX16PCI954K PCI UARTs */
1249 	{   /* "Oxford Semiconductor OX16PCI954K UARTs", */
1250 	    {   PCI_VENDOR_OXFORD2, PCI_PRODUCT_OXFORD2_OX16PCI954K,	0, 0 },
1251 	    {   0xffff, 0xffff,						0, 0 },
1252 	    {
1253 		{ PUC_PORT_COM, 0x10, 0x0000 },
1254 		{ PUC_PORT_COM, 0x14, 0x0000 },
1255 		{ PUC_PORT_COM, 0x18, 0x0000 },
1256 		{ PUC_PORT_COM, 0x1c, 0x0000 },
1257 	    },
1258 	},
1259 
1260 	/* Oxford Semiconductor OX16PCI954 PCI Parallel port */
1261 	{   /* "Oxford Semiconductor OX16PCI954 Parallel port", */
1262 	    {   PCI_VENDOR_OXFORD2, PCI_PRODUCT_OXFORD2_OX16PCI954P,	0, 0 },
1263 	    {   0xffff, 0xffff,						0, 0 },
1264 	    {
1265 		{ PUC_PORT_LPT, 0x10, 0x0000 },
1266 	    },
1267 	},
1268 
1269 	/* Oxford Semiconductor PCIE `950 UARTs - 128 byte FIFOs */
1270 	{   /* "Oxford Semiconductor PCIE UARTs", */
1271 	    {   PCI_VENDOR_OXFORD2, PCI_PRODUCT_OXFORD2_OXPCIE952S,	0, 0 },
1272 	    {   0xffff, 0xffff,						0, 0 },
1273 	    {
1274 		{ PUC_PORT_COM, 0x10, 0x0000 },
1275 	    },
1276 	},
1277 
1278 	/*
1279 	 * Brainboxes BB16PCI958.
1280 	 * Apparently based on an Oxford Semiconductor OX16PCI958 chip.
1281 	 */
1282 	{    /* "Brainboxes BB16PCI958 UARTs", */
1283 	    {	PCI_VENDOR_BRAINBOXES, PCI_PRODUCT_BRAINBOXES_IS200_BB16PCI958,
1284 		    							0, 0 },
1285 	    {	0xffff, 0xffff,						0, 0 },
1286 	    {
1287 		{ PUC_PORT_COM, 0x18, 0x0000 },
1288 		{ PUC_PORT_COM, 0x18, 0x0008 },
1289 	    },
1290 	},
1291 
1292 	/*
1293 	 * NEC PK-UG-X001 K56flex PCI Modem card.
1294 	 * NEC MARTH bridge chip and Rockwell RCVDL56ACF/SP using.
1295 	 */
1296 	{   /* "NEC PK-UG-X001 K56flex PCI Modem", */
1297 	    {	PCI_VENDOR_NEC,	PCI_PRODUCT_NEC_MARTH,	0x1033,	0x8014	},
1298 	    {	0xffff,	0xffff,				0xffff,	0xffff	},
1299 	    {
1300 		{ PUC_PORT_COM, 0x10, 0x0000 },
1301 	    },
1302 	},
1303 
1304 	/* NEC PK-UG-X008 */
1305 	{   /* "NEC PK-UG-X008", */
1306 	    {	PCI_VENDOR_NEC,	PCI_PRODUCT_NEC_PKUG,	0x1033,	0x8012	},
1307 	    {	0xffff,	0xffff,				0xffff,	0xffff	},
1308 	    {
1309 		{ PUC_PORT_COM, 0x10, 0x0000 },
1310 	    },
1311 	},
1312 
1313 	/* Lava Computers 2SP-PCI (0x8000-0x8003) */
1314 	{   /* "Lava Computers 2SP-PCI parallel port", */
1315 	    {	PCI_VENDOR_LAVA, PCI_PRODUCT_LAVA_TWOSP_1P,	0, 0	},
1316 	    {	0xffff,	0xfffc,					0, 0	},
1317 	    {
1318 		{ PUC_PORT_LPT, 0x10, 0x0000 },
1319 	    },
1320 	},
1321 
1322 	/* Lava Computers 2SP-PCI and Quattro-PCI serial ports */
1323 	{   /* "Lava Computers dual serial port", */
1324 	    {	PCI_VENDOR_LAVA, PCI_PRODUCT_LAVA_TWOSP_2S,	0, 0	},
1325 	    {	0xffff,	0xfffc,					0, 0	},
1326 	    {
1327 		{ PUC_PORT_COM, 0x10, 0x0000 },
1328 		{ PUC_PORT_COM, 0x14, 0x0000 },
1329 	    },
1330 	},
1331 
1332 	/*
1333 	 * Lava Computers Quattro-PCI serial ports.
1334 	 * A second version of the Quattro-PCI with different PCI ids.
1335 	 */
1336 	{   /* "Lava Computers Quattro-PCI 4-port serial", */
1337 	    {	PCI_VENDOR_LAVA, PCI_PRODUCT_LAVA_QUATTRO_AB2,	0, 0	},
1338 	    {	0xffff,	0xfffe,					0, 0	},
1339 	    {
1340 		{ PUC_PORT_COM, 0x10, 0x0000 },
1341 		{ PUC_PORT_COM, 0x14, 0x0000 },
1342 	    },
1343 	},
1344 
1345 	/*
1346 	 * Lava Computers LavaPort-Dual and LavaPort-Quad 4*clock PCI
1347 	 * serial ports.
1348 	 */
1349 	{   /* "Lava Computers high-speed port", */
1350 	    {	PCI_VENDOR_LAVA, PCI_PRODUCT_LAVA_LAVAPORT_0,	0, 0	},
1351 	    {	0xffff,	0xfffc,					0, 0	},
1352 	    {
1353 		{ PUC_PORT_COM_MUL4, 0x10, 0x0000 },
1354 		{ PUC_PORT_COM_MUL4, 0x14, 0x0000 },
1355 	    },
1356 	},
1357 
1358 	/*
1359 	 * Lava Computers LavaPort-single serial port.
1360 	 */
1361 	{   /* "Lava Computers high-speed port", */
1362 	    {	PCI_VENDOR_LAVA, PCI_PRODUCT_LAVA_LAVAPORT_2,	0, 0	},
1363 	    {	0xffff,	0xfffc,					0, 0	},
1364 	    {
1365 		{ PUC_PORT_COM_MUL4, 0x10, 0x0000 },
1366 	    },
1367 	},
1368 
1369 	/* Lava Computers LavaPort-650 */
1370 	{   /* "Lava Computers high-speed port", */
1371 	    {	PCI_VENDOR_LAVA, PCI_PRODUCT_LAVA_650,		0, 0	},
1372 	    {	0xffff,	0xfffc,					0, 0	},
1373 	    {
1374 		{ PUC_PORT_COM_MUL4, 0x10, 0x0000 },
1375 	    },
1376 	},
1377 
1378 	/* Koutech IOFLEX-2S PCI Dual Port Serial, port 1 */
1379 	{   /* "Koutech IOFLEX-2S PCI Dual Port Serial, port 1", */
1380 	    {	PCI_VENDOR_LAVA, PCI_PRODUCT_LAVA_IOFLEX_2S_0,	0, 0	},
1381 	    {	0xffff,	0xfffc,					0, 0	},
1382 	    {
1383 		{ PUC_PORT_COM, 0x10, 0x0000 },
1384 	    },
1385 	},
1386 
1387 	/* Koutech IOFLEX-2S PCI Dual Port Serial, port 2 */
1388 	{   /* "Koutech IOFLEX-2S PCI Dual Port Serial, port 2", */
1389 	    {	PCI_VENDOR_LAVA, PCI_PRODUCT_LAVA_IOFLEX_2S_1,	0, 0	},
1390 	    {	0xffff,	0xfffc,					0, 0	},
1391 	    {
1392 		{ PUC_PORT_COM, 0x10, 0x0000 },
1393 	    },
1394 	},
1395 
1396 	/* Lava Computers Octopus-550 serial ports */
1397 	{   /* "Lava Computers Octopus-550 8-port serial", */
1398 	    {   PCI_VENDOR_LAVA, PCI_PRODUCT_LAVA_OCTOPUS550_0,	0, 0	},
1399 	    {   0xffff, 0xfffc,					0, 0	},
1400 	    {
1401 		{ PUC_PORT_COM, 0x10, 0x0000 },
1402 		{ PUC_PORT_COM, 0x14, 0x0000 },
1403 		{ PUC_PORT_COM, 0x18, 0x0000 },
1404 		{ PUC_PORT_COM, 0x1c, 0x0000 },
1405 	    },
1406 	},
1407 
1408 	/* Lava Computers Octopus-550 serial ports */
1409 	{   /* "Lava Computers Octopus-550 8-port serial", */
1410 	    {   PCI_VENDOR_LAVA, PCI_PRODUCT_LAVA_OCTOPUS550_1,	0, 0	},
1411 	    {   0xffff, 0xfffc,					0, 0	},
1412 	    {
1413 		{ PUC_PORT_COM, 0x10, 0x0000 },
1414 		{ PUC_PORT_COM, 0x14, 0x0000 },
1415 		{ PUC_PORT_COM, 0x18, 0x0000 },
1416 		{ PUC_PORT_COM, 0x1c, 0x0000 },
1417 	    },
1418 	},
1419 
1420 	/* US Robotics (3Com) PCI Modems */
1421 	{   /* "US Robotics (3Com) 3CP5610 PCI 16550 Modem", */
1422 	    {	PCI_VENDOR_USR, PCI_PRODUCT_USR_3CP5610,	0, 0	},
1423 	    {	0xffff,	0xffff,					0, 0	},
1424 	    {
1425 		{ PUC_PORT_COM, 0x10, 0x0000 },
1426 	    },
1427 	},
1428 
1429 	/* IBM 33L4618: AT&T/Lucent Venus Modem */
1430 	{   /* "IBM 33L4618: AT&T/Lucent Venus Modem", */
1431 	    /* "Actiontec 56K PCI Master" */
1432 	    {	PCI_VENDOR_LUCENT, PCI_PRODUCT_LUCENT_VENUSMODEM,	0, 0 },
1433 	    {	0xffff,	0xffff,						0, 0 },
1434 	    {
1435 		{ PUC_PORT_COM, 0x18, 0x0008 },
1436 	    },
1437 	},
1438 
1439 	/* Topic/SmartLink 5634PCV SurfRider */
1440 	{   /* "Topic/SmartLink 5634PCV SurfRider" */
1441 	    {	PCI_VENDOR_TOPIC, PCI_PRODUCT_TOPIC_5634PCV,	0, 0	},
1442 	    {	0xffff,	0xffff,					0, 0	},
1443 	    {
1444 		{ PUC_PORT_COM, 0x10, 0x0000 },
1445 	    },
1446 	},
1447 
1448 	/* SD-LAB PCI I/O Card 4S */
1449 	{   /* "Syba Tech Ltd. PCI-4S" */
1450 	    {   PCI_VENDOR_SYBA, PCI_PRODUCT_SYBA_4S,		0, 0	},
1451 	    {	0xffff,	0xffff,					0, 0	},
1452 	    {
1453 		{ PUC_PORT_COM, 0x10, 0x03e8 },
1454 		{ PUC_PORT_COM, 0x10, 0x02e8 },
1455 		{ PUC_PORT_COM, 0x10, 0x03f8 },
1456 		{ PUC_PORT_COM, 0x10, 0x02f8 },
1457 	    },
1458 	},
1459 
1460 	/* SD-LAB PCI I/O Card 4S2P */
1461 	{   /* "Syba Tech Ltd. PCI-4S2P-550-ECP" */
1462 	    {   PCI_VENDOR_SYBA, PCI_PRODUCT_SYBA_4S2P,		0, 0	},
1463 	    {	0xffff,	0xffff,					0, 0	},
1464 	    {
1465 		{ PUC_PORT_COM, 0x10, 0x02e8 },
1466 		{ PUC_PORT_COM, 0x10, 0x02f8 },
1467 		{ PUC_PORT_LPT, 0x10, 0x0000 },
1468 		{ PUC_PORT_COM, 0x10, 0x03e8 },
1469 		{ PUC_PORT_COM, 0x10, 0x03f8 },
1470 		{ PUC_PORT_LPT, 0x10, 0x0000 },
1471 	    },
1472 	},
1473 
1474 	/* Moxa Technologies Co., Ltd. PCI I/O Card 4S RS232/422/485 */
1475 	{   /* "Moxa Technologies, Industio CP-114" */
1476 	    {	PCI_VENDOR_MOXA, PCI_PRODUCT_MOXA_CP114,	0, 0	},
1477 	    {	0xffff,	0xffff,					0, 0	},
1478 	    {
1479 		{ PUC_PORT_COM_MUL8, 0x18, 0x0000 },
1480 		{ PUC_PORT_COM_MUL8, 0x18, 0x0008 },
1481 		{ PUC_PORT_COM_MUL8, 0x18, 0x0010 },
1482 		{ PUC_PORT_COM_MUL8, 0x18, 0x0018 },
1483 	    },
1484 	},
1485 
1486 	/* Moxa Technologies Co., Ltd. PCI I/O Card 4S RS232/422/485 */
1487 	{   /* "Moxa Technologies, SmartIO C104H/PCI" */
1488 	    {	PCI_VENDOR_MOXA, PCI_PRODUCT_MOXA_C104H,	0, 0	},
1489 	    {	0xffff,	0xffff,					0, 0	},
1490 	    {
1491 		{ PUC_PORT_COM_MUL8, 0x18, 0x0000 },
1492 		{ PUC_PORT_COM_MUL8, 0x18, 0x0008 },
1493 		{ PUC_PORT_COM_MUL8, 0x18, 0x0010 },
1494 		{ PUC_PORT_COM_MUL8, 0x18, 0x0018 },
1495 	    },
1496 	},
1497 
1498 	/* Moxa Technologies Co., Ltd. PCI I/O Card 4S RS232 */
1499 	{   /* "Moxa Technologies, SmartIO CP104UL/PCI" */
1500 	    {	PCI_VENDOR_MOXA, PCI_PRODUCT_MOXA_CP104UL,	0, 0	},
1501 	    {	0xffff,	0xffff,					0, 0	},
1502 	    {
1503 		{ PUC_PORT_COM_MUL8, 0x18, 0x0000 },
1504 		{ PUC_PORT_COM_MUL8, 0x18, 0x0008 },
1505 		{ PUC_PORT_COM_MUL8, 0x18, 0x0010 },
1506 		{ PUC_PORT_COM_MUL8, 0x18, 0x0018 },
1507 	    },
1508 	},
1509 
1510 	/* Moxa Technologies Co., Ltd. PCI I/O Card 4S RS232 */
1511 	{   /* "Moxa Technologies, SmartIO CP104JU/PCI" */
1512 	    {	PCI_VENDOR_MOXA, PCI_PRODUCT_MOXA_CP104JU,	0, 0	},
1513 	    {	0xffff,	0xffff,					0, 0	},
1514 	    {
1515 		{ PUC_PORT_COM_MUL8, 0x18, 0x0000 },
1516 		{ PUC_PORT_COM_MUL8, 0x18, 0x0008 },
1517 		{ PUC_PORT_COM_MUL8, 0x18, 0x0010 },
1518 		{ PUC_PORT_COM_MUL8, 0x18, 0x0018 },
1519 	    },
1520 	},
1521 
1522 	/* Moxa Technologies Co., Ltd. PCI I/O Card 4S RS232 */
1523 	{   /* "Moxa Technologies, SmartIO CP104EL/PCI" */
1524 	    {	PCI_VENDOR_MOXA, PCI_PRODUCT_MOXA_CP104EL,	0, 0	},
1525 	    {	0xffff,	0xffff,					0, 0	},
1526 	    {
1527 		{ PUC_PORT_COM_MUL8, 0x18, 0x0000 },
1528 		{ PUC_PORT_COM_MUL8, 0x18, 0x0008 },
1529 		{ PUC_PORT_COM_MUL8, 0x18, 0x0010 },
1530 		{ PUC_PORT_COM_MUL8, 0x18, 0x0018 },
1531 	    },
1532 	},
1533 
1534 	/* Moxa Technologies Co., Ltd. PCI I/O Card 8S RS232 */
1535 	{   /* "Moxa Technologies, Industio C168H" */
1536 	    {	PCI_VENDOR_MOXA, PCI_PRODUCT_MOXA_C168H,	0, 0	},
1537 	    {	0xffff,	0xffff,					0, 0	},
1538 	    {
1539 		{ PUC_PORT_COM_MUL8, 0x18, 0x0000 },
1540 		{ PUC_PORT_COM_MUL8, 0x18, 0x0008 },
1541 		{ PUC_PORT_COM_MUL8, 0x18, 0x0010 },
1542 		{ PUC_PORT_COM_MUL8, 0x18, 0x0018 },
1543 		{ PUC_PORT_COM_MUL8, 0x18, 0x0020 },
1544 		{ PUC_PORT_COM_MUL8, 0x18, 0x0028 },
1545 		{ PUC_PORT_COM_MUL8, 0x18, 0x0030 },
1546 		{ PUC_PORT_COM_MUL8, 0x18, 0x0038 },
1547 	    },
1548 	},
1549 
1550 	/* Moxa Technologies Co., Ltd. PCI I/O Card 8S RS232 */
1551 	{   /* "Moxa Technologies, CP-168U" */
1552 	    {	PCI_VENDOR_MOXA, PCI_PRODUCT_MOXA_CP168U,	0, 0	},
1553 	    {	0xffff, 0xffff,					0, 0	},
1554 	    {
1555 		{ PUC_PORT_COM_MUL8, 0x18, 0x0000 },
1556 		{ PUC_PORT_COM_MUL8, 0x18, 0x0008 },
1557 		{ PUC_PORT_COM_MUL8, 0x18, 0x0010 },
1558 		{ PUC_PORT_COM_MUL8, 0x18, 0x0018 },
1559 		{ PUC_PORT_COM_MUL8, 0x18, 0x0020 },
1560 		{ PUC_PORT_COM_MUL8, 0x18, 0x0028 },
1561 		{ PUC_PORT_COM_MUL8, 0x18, 0x0030 },
1562 		{ PUC_PORT_COM_MUL8, 0x18, 0x0038 },
1563 	    },
1564 	},
1565 
1566 	/* NetMos 1P PCI: 1P */
1567 	{   /* "NetMos NM9805 1284 Printer Port" */
1568 	    {   PCI_VENDOR_NETMOS, PCI_PRODUCT_NETMOS_NM9805,	0, 0	},
1569 	    {	0xffff,	0xffff,					0, 0	},
1570 	    {
1571 		{ PUC_PORT_LPT, 0x10, 0x0000 },
1572 	    },
1573 	},
1574 
1575 	/* NetMos 1S PCI 16C650 : 1S */
1576 	{   /* "NetMos NM9835 UART" */
1577 	    {   PCI_VENDOR_NETMOS, PCI_PRODUCT_NETMOS_NM9835,	0x1000, 0x0001	},
1578 	    {	0xffff,	0xffff,					0xffff, 0xffff	},
1579 	    {
1580 		{ PUC_PORT_COM, 0x10, 0x0000 },
1581 	    },
1582 	},
1583 
1584 	/* NetMos 2S1P PCI 16C650 : 2S, 1P */
1585 	{   /* "NetMos NM9835 Dual UART and 1284 Printer port" */
1586 	    {   PCI_VENDOR_NETMOS, PCI_PRODUCT_NETMOS_NM9835,	0, 0	},
1587 	    {	0xffff,	0xffff,					0, 0	},
1588 	    {
1589 		{ PUC_PORT_COM, 0x10, 0x0000 },
1590 		{ PUC_PORT_COM, 0x14, 0x0000 },
1591 		{ PUC_PORT_LPT, 0x18, 0x0000 },
1592 	    },
1593 	},
1594 
1595 	/* NetMos 4S PCI 16C650 : 4S, 0P */
1596 	{   /* "NetMos NM9845 Quad UART" */
1597 	    {   PCI_VENDOR_NETMOS, PCI_PRODUCT_NETMOS_NM9845, 0x1000, 0x0004 },
1598 	    {	0xffff,	0xffff,				      0xffff, 0xffff },
1599 	    {
1600 		{ PUC_PORT_COM, 0x10, 0x0000 },
1601 		{ PUC_PORT_COM, 0x14, 0x0000 },
1602 		{ PUC_PORT_COM, 0x18, 0x0000 },
1603 		{ PUC_PORT_COM, 0x1c, 0x0000 },
1604 	    },
1605 	},
1606 
1607 	/* NetMos 4S1P PCI 16C650 : 4S, 1P */
1608 	{   /* "NetMos NM9845 Quad UART and 1284 Printer port" */
1609 	    {   PCI_VENDOR_NETMOS, PCI_PRODUCT_NETMOS_NM9845, 0x1000, 0x0014 },
1610 	    {	0xffff,	0xffff,				      0xffff, 0xffff },
1611 	    {
1612 		{ PUC_PORT_COM, 0x10, 0x0000 },
1613 		{ PUC_PORT_COM, 0x14, 0x0000 },
1614 		{ PUC_PORT_COM, 0x18, 0x0000 },
1615 		{ PUC_PORT_COM, 0x1c, 0x0000 },
1616 		{ PUC_PORT_LPT, 0x20, 0x0000 },
1617 	    },
1618 	},
1619 
1620 	/* NetMos 6S PCI 16C650 : 6S, 0P */
1621 	{   /* "NetMos NM9845 6 UART" */
1622 	    {   PCI_VENDOR_NETMOS, PCI_PRODUCT_NETMOS_NM9845, 0x1000, 0x0006 },
1623 	    {	0xffff,	0xffff,				      0xffff, 0xffff },
1624 	    {
1625 		{ PUC_PORT_COM, 0x10, 0x0000 },
1626 		{ PUC_PORT_COM, 0x14, 0x0000 },
1627 		{ PUC_PORT_COM, 0x18, 0x0000 },
1628 		{ PUC_PORT_COM, 0x1c, 0x0000 },
1629 		{ PUC_PORT_COM, 0x20, 0x0000 },
1630 		{ PUC_PORT_COM, 0x24, 0x0000 },
1631 	    },
1632 	},
1633 
1634 	/* NetMos 2S PCI 16C650 : 2S */
1635 	{   /* "NetMos NM9845 Dual UART" */
1636 	    {   PCI_VENDOR_NETMOS, PCI_PRODUCT_NETMOS_NM9845,	0, 0	},
1637 	    {	0xffff,	0xffff,					0, 0	},
1638 	    {
1639 		{ PUC_PORT_COM, 0x10, 0x0000 },
1640 		{ PUC_PORT_COM, 0x14, 0x0000 },
1641 	    },
1642 	},
1643 
1644 	/* NetMos 6S PCI 16C650 : 6S
1645 	 * Shows up as three PCI devices, two with a single serial
1646 	 * port and one with four serial ports (on a special ISA
1647 	 * extender chip).
1648 	 */
1649 	{   /* "NetMos NM9865 6 UART: 1 UART" */
1650 	    {   PCI_VENDOR_NETMOS, PCI_PRODUCT_NETMOS_NM9865, 0xa000, 0x1000 },
1651 	    {	0xffff,	0xffff,				      0xffff, 0xffff },
1652 	    {
1653 		{ PUC_PORT_COM, 0x10, 0x0000 },
1654 	    },
1655 	},
1656 	{   /* "NetMos NM9865 6 UART: 4 UART ISA" */
1657 	    {   PCI_VENDOR_NETMOS, PCI_PRODUCT_NETMOS_NM9865, 0xa000, 0x3004 },
1658 	    {	0xffff,	0xffff,				      0xffff, 0xffff },
1659 	    {
1660 		{ PUC_PORT_COM, 0x10, 0x0000 },
1661 		{ PUC_PORT_COM, 0x14, 0x0000 },
1662 		{ PUC_PORT_COM, 0x18, 0x0000 },
1663 		{ PUC_PORT_COM, 0x1c, 0x0000 },
1664 	    },
1665 	},
1666 
1667 	/* NetMos PCIe Peripheral Controller :UART part */
1668 	{   /* "NetMos NM9901 UART" */
1669 	    {   PCI_VENDOR_NETMOS, PCI_PRODUCT_NETMOS_NM9901, 0xa000, 0x1000 },
1670 	    {	0xffff,	0xffff,				      0xffff, 0xffff },
1671 	    {
1672 		{ PUC_PORT_COM, 0x10, 0x0000 },
1673 	    },
1674 	},
1675 
1676 	/* NetMos PCIe Peripheral Controller :parallel part */
1677 	{   /* "NetMos NM9901 UART" */
1678 	    {   PCI_VENDOR_NETMOS, PCI_PRODUCT_NETMOS_NM9901, 0xa000, 0x2000 },
1679 	    {	0xffff,	0xffff,				      0xffff, 0xffff },
1680 	    {
1681 		{ PUC_PORT_LPT, 0x10, 0x0000 },
1682 	    },
1683 	},
1684 
1685 	{   /* NetMos NM9922: 2S */
1686 	    {   PCI_VENDOR_NETMOS, PCI_PRODUCT_NETMOS_NM9922, 0xa000, 0x1000 },
1687 	    {	0xffff,	0xffff,				      0xffff, 0xffff },
1688 	    {
1689 		{ PUC_PORT_COM, 0x10, 0x0000 },
1690 	    },
1691 	},
1692 
1693 	/*
1694 	 * Perle Speed8 LE.
1695 	 * Based on an Oxford Semiconductor OX16PCI954 chip, using the
1696 	 * 8-bit pass-through Local Bus function to hook up 4
1697 	 * additional UARTs.
1698 	 */
1699 	{   /* OX16PCI954 internal UARTs */
1700 	    {   PCI_VENDOR_PERLE, PCI_PRODUCT_PERLE_SPEED8_LE,
1701 		PCI_VENDOR_OXFORD2, PCI_PRODUCT_OXFORD2_OX16PCI954   },
1702 	    {   0xffff, 0xffff, 0xffff, 0xffff   },
1703 	    {
1704 		{ PUC_PORT_COM_MUL8, 0x10, 0x0000 },
1705 		{ PUC_PORT_COM_MUL8, 0x10, 0x0008 },
1706 		{ PUC_PORT_COM_MUL8, 0x10, 0x0010 },
1707 		{ PUC_PORT_COM_MUL8, 0x10, 0x0018 },
1708 	     },
1709 	},
1710 	{   /* OX16PCI954 8-bit pass-through Local Bus */
1711 	    {   PCI_VENDOR_PERLE, PCI_PRODUCT_PERLE_SPEED8_LE,
1712 		PCI_VENDOR_OXFORD2, 0x9511   },
1713 	    {   0xffff, 0xffff, 0xffff, 0xffff   },
1714 	    {
1715 		{ PUC_PORT_COM_MUL8, 0x10, 0x0000 },
1716 		{ PUC_PORT_COM_MUL8, 0x10, 0x0008 },
1717 		{ PUC_PORT_COM_MUL8, 0x10, 0x0010 },
1718 		{ PUC_PORT_COM_MUL8, 0x10, 0x0018 },
1719 	    },
1720 	},
1721 
1722 	{ /* Sunix 4018A : 2-port parallel */
1723 	    {   PCI_VENDOR_SUNIX, PCI_PRODUCT_SUNIX_4018A,	0, 0	},
1724 	    {	0xffff,	0xffff,					0, 0	},
1725 	    {
1726 		{ PUC_PORT_LPT, 0x10, 0x0000 },
1727 		{ PUC_PORT_LPT, 0x18, 0x0000 },
1728 	    },
1729 	},
1730 
1731 	/*
1732 	 * SUNIX 40XX series of serial/parallel combo cards.
1733 	 * Tested with 4055A and 4065A.
1734 	 */
1735 	{   /* SUNIX 400X 1P */
1736 	    {	PCI_VENDOR_SUNIX, PCI_PRODUCT_SUNIX_40XX, 0x1409, 0x4000 },
1737 	    {	0xffff,	0xffff,	0xffff,	0xeff0 },
1738 	    {
1739 		{ PUC_PORT_LPT, 0x10, 0x0000 },
1740 	    },
1741 	},
1742 
1743 	{   /* SUNIX 401X 2P */
1744 	    {	PCI_VENDOR_SUNIX, PCI_PRODUCT_SUNIX_40XX, 0x1409, 0x4010 },
1745 	    {	0xffff,	0xffff,	0xffff,	0xeff0 },
1746 	    {
1747 		{ PUC_PORT_LPT, 0x10, 0x0000 },
1748 		{ PUC_PORT_LPT, 0x18, 0x0000 },
1749 	    },
1750 	},
1751 
1752 	{   /* SUNIX 402X 1S */
1753 	    {	PCI_VENDOR_SUNIX, PCI_PRODUCT_SUNIX_40XX, 0x1409, 0x4020 },
1754 	    {	0xffff,	0xffff,	0xffff,	0xeff0 },
1755 	    {
1756 		{ PUC_PORT_COM_MUL8, 0x10, 0x0000 },
1757 	    },
1758 	},
1759 
1760 	{   /* SUNIX 403X 2S */
1761 	    {	PCI_VENDOR_SUNIX, PCI_PRODUCT_SUNIX_40XX, 0x1409, 0x4030 },
1762 	    {	0xffff,	0xffff,	0xffff,	0xeff0 },
1763 	    {
1764 		{ PUC_PORT_COM_MUL8, 0x10, 0x0000 },
1765 		{ PUC_PORT_COM_MUL8, 0x10, 0x0008 },
1766 	    },
1767 	},
1768 
1769 	{   /* SUNIX 4036 2S */
1770 	    {	PCI_VENDOR_SUNIX, PCI_PRODUCT_SUNIX_40XX, 0x1409, 0x0002 },
1771 	    {	0xffff,	0xffff,	0xffff,	0xffff },
1772 	    {
1773 		{ PUC_PORT_COM_MUL8, 0x10, 0x0000 },
1774 		{ PUC_PORT_COM_MUL8, 0x10, 0x0008 },
1775 	    },
1776 	},
1777 
1778 	{   /* SUNIX 405X 4S */
1779 	    {	PCI_VENDOR_SUNIX, PCI_PRODUCT_SUNIX_40XX, 0x1409, 0x4050 },
1780 	    {	0xffff,	0xffff,	0xffff,	0xe0f0 },
1781 	    {
1782 		{ PUC_PORT_COM_MUL8, 0x10, 0x0000 },
1783 		{ PUC_PORT_COM_MUL8, 0x10, 0x0008 },
1784 		{ PUC_PORT_COM, 0x14, 0x0000 },
1785 		{ PUC_PORT_COM, 0x14, 0x0008 },
1786 	    },
1787 	},
1788 
1789 	{   /* SUNIX 406X 8S */
1790 	    {	PCI_VENDOR_SUNIX, PCI_PRODUCT_SUNIX_40XX, 0x1409, 0x5066 },
1791 	    {	0xffff,	0xffff,	0xffff,	0xffff },
1792 	    {
1793 		{ PUC_PORT_COM_MUL8, 0x10, 0x0000 },
1794 		{ PUC_PORT_COM_MUL8, 0x10, 0x0008 },
1795 		{ PUC_PORT_COM, 0x14, 0x0000 },
1796 		{ PUC_PORT_COM, 0x14, 0x0008 },
1797 		{ PUC_PORT_COM, 0x18, 0x0000 },
1798 		{ PUC_PORT_COM, 0x1c, 0x0000 },
1799 		{ PUC_PORT_COM, 0x20, 0x0000 },
1800 		{ PUC_PORT_COM, 0x24, 0x0000 },
1801 	    },
1802 	},
1803 
1804 	{   /* SUNIX 406X 8S */
1805 	    {	PCI_VENDOR_SUNIX, PCI_PRODUCT_SUNIX_40XX, 0x1409, 0x4060 },
1806 	    {	0xffff,	0xffff,	0xffff,	0xe0f0 },
1807 	    {
1808 		{ PUC_PORT_COM_MUL8, 0x10, 0x0000 },
1809 		{ PUC_PORT_COM_MUL8, 0x10, 0x0008 },
1810 		{ PUC_PORT_COM_MUL8, 0x14, 0x0000 },
1811 		{ PUC_PORT_COM_MUL8, 0x14, 0x0008 },
1812 		{ PUC_PORT_COM_MUL8, 0x18, 0x0000 },
1813 		{ PUC_PORT_COM_MUL8, 0x1c, 0x0000 },
1814 		{ PUC_PORT_COM_MUL8, 0x20, 0x0000 },
1815 		{ PUC_PORT_COM_MUL8, 0x24, 0x0000 },
1816 	    },
1817 	},
1818 
1819 	{   /* SUNIX 407X 2S/1P */
1820 	    {	PCI_VENDOR_SUNIX, PCI_PRODUCT_SUNIX_40XX, 0x1409, 0x4070 },
1821 	    {	0xffff,	0xffff,	0xffff,	0xeff0 },
1822 	    {
1823 		{ PUC_PORT_COM_MUL8, 0x10, 0x0000 },
1824 		{ PUC_PORT_COM_MUL8, 0x10, 0x0008 },
1825 		{ PUC_PORT_LPT, 0x18, 0x0000 },
1826 	    },
1827 	},
1828 
1829 	{   /* SUNIX 408X 2S/2P */
1830 	    {	PCI_VENDOR_SUNIX, PCI_PRODUCT_SUNIX_40XX, 0x1409, 0x4080 },
1831 	    {	0xffff,	0xffff,	0xffff,	0xeff0 },
1832 	    {
1833 		{ PUC_PORT_COM_MUL8, 0x10, 0x0000 },
1834 		{ PUC_PORT_COM_MUL8, 0x10, 0x0008 },
1835 		{ PUC_PORT_LPT, 0x18, 0x0000 },
1836 		{ PUC_PORT_LPT, 0x20, 0x0000 },
1837 	    },
1838 	},
1839 
1840 	{   /* SUNIX 409X 4S/2P */
1841 	    {	PCI_VENDOR_SUNIX, PCI_PRODUCT_SUNIX_40XX, 0x1409, 0x4090 },
1842 	    {	0xffff,	0xffff,	0xffff,	0xeff0 },
1843 	    {
1844 		{ PUC_PORT_COM_MUL8, 0x10, 0x0000 },
1845 		{ PUC_PORT_COM_MUL8, 0x10, 0x0008 },
1846 		{ PUC_PORT_COM, 0x14, 0x0000 },
1847 		{ PUC_PORT_COM, 0x14, 0x0008 },
1848 		{ PUC_PORT_LPT, 0x18, 0x0000 },
1849 		{ PUC_PORT_LPT, 0x20, 0x0000 },
1850 	    },
1851 	},
1852 
1853 	/*
1854 	 * SUNIX 50XX series of serial/parallel combo cards.
1855 	 * Tested with 5066A.
1856 	 */
1857 	{   /* SUNIX 5008 1P */
1858 	    {   PCI_VENDOR_SUNIX2, PCI_PRODUCT_SUNIX2_50XX, 0x1fd4, 0x0100 },
1859 	    {   0xffff, 0xffff, 0xffff, 0xeff0 },
1860 	    {
1861 		{ PUC_PORT_LPT, 0x14, 0x0000 },
1862 	    },
1863 	},
1864 
1865 	{   /* SUNIX 5016 16S */
1866 	    {   PCI_VENDOR_SUNIX2, PCI_PRODUCT_SUNIX2_50XX, 0x1fd4, 0x0010 },
1867 	    {   0xffff, 0xffff, 0xffff, 0xffff },
1868 	    {
1869 		{ PUC_PORT_COM_MUL8, 0x10, 0x0000 },
1870 		{ PUC_PORT_COM_MUL8, 0x10, 0x0008 },
1871 		{ PUC_PORT_COM_MUL8, 0x10, 0x0010 },
1872 		{ PUC_PORT_COM_MUL8, 0x10, 0x0018 },
1873 		{ PUC_PORT_COM_MUL8, 0x14, 0x0000 },
1874 		{ PUC_PORT_COM_MUL8, 0x14, 0x0008 },
1875 		{ PUC_PORT_COM_MUL8, 0x14, 0x0010 },
1876 		{ PUC_PORT_COM_MUL8, 0x14, 0x0018 },
1877 		{ PUC_PORT_COM_MUL8, 0x14, 0x0020 },
1878 		{ PUC_PORT_COM_MUL8, 0x14, 0x0028 },
1879 		{ PUC_PORT_COM_MUL8, 0x14, 0x0030 },
1880 		{ PUC_PORT_COM_MUL8, 0x14, 0x0038 },
1881 		{ PUC_PORT_COM_MUL8, 0x14, 0x0040 },
1882 		{ PUC_PORT_COM_MUL8, 0x14, 0x0048 },
1883 		{ PUC_PORT_COM_MUL8, 0x14, 0x0050 },
1884 		{ PUC_PORT_COM_MUL8, 0x14, 0x0058 },
1885 	    },
1886 	},
1887 
1888 	{   /* SUNIX 5027 1S */
1889 	    {   PCI_VENDOR_SUNIX2, PCI_PRODUCT_SUNIX2_50XX, 0x1fd4, 0x0001 },
1890 	    {   0xffff, 0xffff, 0xffff, 0xffff },
1891 	    {
1892 		{ PUC_PORT_COM_MUL8, 0x10, 0x0000 },
1893 	    },
1894 	},
1895 
1896 	{   /* SUNIX 5037 2S */
1897 	    {   PCI_VENDOR_SUNIX2, PCI_PRODUCT_SUNIX2_50XX, 0x1fd4, 0x0002 },
1898 	    {   0xffff, 0xffff, 0xffff, 0xffff },
1899 	    {
1900 		{ PUC_PORT_COM_MUL8, 0x10, 0x0000 },
1901 		{ PUC_PORT_COM_MUL8, 0x10, 0x0008 },
1902 	    },
1903 	},
1904 
1905 	{   /* SUNIX 5056 4S */
1906 	    {   PCI_VENDOR_SUNIX2, PCI_PRODUCT_SUNIX2_50XX, 0x1fd4, 0x0004 },
1907 	    {   0xffff, 0xffff, 0xffff, 0xffff },
1908 	    {
1909 		{ PUC_PORT_COM_MUL8, 0x10, 0x0000 },
1910 		{ PUC_PORT_COM_MUL8, 0x10, 0x0008 },
1911 		{ PUC_PORT_COM_MUL8, 0x10, 0x0010 },
1912 		{ PUC_PORT_COM_MUL8, 0x10, 0x0018 },
1913 	    },
1914 	},
1915 
1916 	{   /* SUNIX 5066 8S */
1917 	    {   PCI_VENDOR_SUNIX2, PCI_PRODUCT_SUNIX2_50XX, 0x1fd4, 0x0008 },
1918 	    {   0xffff, 0xffff, 0xffff, 0xffff },
1919 	    {
1920 		{ PUC_PORT_COM_MUL8, 0x10, 0x0000 },
1921 		{ PUC_PORT_COM_MUL8, 0x10, 0x0008 },
1922 		{ PUC_PORT_COM_MUL8, 0x10, 0x0010 },
1923 		{ PUC_PORT_COM_MUL8, 0x10, 0x0018 },
1924 		{ PUC_PORT_COM_MUL8, 0x14, 0x0000 },
1925 		{ PUC_PORT_COM_MUL8, 0x14, 0x0008 },
1926 		{ PUC_PORT_COM_MUL8, 0x14, 0x0010 },
1927 		{ PUC_PORT_COM_MUL8, 0x14, 0x0018 },
1928 	    },
1929 	},
1930 
1931 	{   /* SUNIX 5069 1S / 1P */
1932 	    {   PCI_VENDOR_SUNIX2, PCI_PRODUCT_SUNIX2_50XX, 0x1fd4, 0x0101 },
1933 	    {   0xffff, 0xffff, 0xffff, 0xeff0 },
1934 	    {
1935 		{ PUC_PORT_COM_MUL8, 0x10, 0x0000 },
1936 		{ PUC_PORT_LPT, 0x14, 0x0000 },
1937 	    },
1938 	},
1939 
1940 	{   /* SUNIX 5079 2S / 1P */
1941 	    {   PCI_VENDOR_SUNIX2, PCI_PRODUCT_SUNIX2_50XX, 0x1fd4, 0x0102 },
1942 	    {   0xffff, 0xffff, 0xffff, 0xffff },
1943 	    {
1944 		{ PUC_PORT_COM_MUL8, 0x10, 0x0000 },
1945 		{ PUC_PORT_COM_MUL8, 0x10, 0x0008 },
1946 		{ PUC_PORT_LPT, 0x14, 0x0000 },
1947 	    },
1948 	},
1949 
1950 	{   /* SUNIX 5099 4S / 1P */
1951 	    {   PCI_VENDOR_SUNIX2, PCI_PRODUCT_SUNIX2_50XX, 0x1fd4, 0x0104 },
1952 	    {   0xffff, 0xffff, 0xffff, 0xffff },
1953 	    {
1954 		{ PUC_PORT_COM_MUL8, 0x10, 0x0000 },
1955 		{ PUC_PORT_COM_MUL8, 0x10, 0x0008 },
1956 		{ PUC_PORT_COM_MUL8, 0x10, 0x0010 },
1957 		{ PUC_PORT_COM_MUL8, 0x10, 0x0018 },
1958 		{ PUC_PORT_LPT, 0x14, 0x0000 },
1959 	    },
1960 	},
1961 
1962 	/*
1963 	 * Boca Research Turbo Serial 654 (4 serial port) card.
1964 	 * Appears to be the same as Chase Research PLC PCI-FAST4 card,
1965 	 * same as Perle PCI-FAST4 Multi-Port serial card
1966 	 */
1967 	{   /* "Boca Turbo Serial 654 - IOP654" */
1968 	    {   PCI_VENDOR_PLX, PCI_PRODUCT_PLX_9050,	0x12e0, 0x0031  },
1969 	    {   0xffff, 0xffff,				0xffff, 0xffff  },
1970 	    {
1971 		{ PUC_PORT_COM_MUL4, 0x18, 0x0000 },
1972 		{ PUC_PORT_COM_MUL4, 0x18, 0x0008 },
1973 		{ PUC_PORT_COM_MUL4, 0x18, 0x0010 },
1974 		{ PUC_PORT_COM_MUL4, 0x18, 0x0018 },
1975 	    },
1976 	},
1977 
1978 	/*
1979 	 * Boca Research Turbo Serial 658 (8 serial port) card.
1980 	 * Appears to be the same as Chase Research PLC PCI-FAST8 card
1981 	 * same as Perle PCI-FAST8 Multi-Port serial card
1982 	 */
1983 	{   /* "Boca Turbo Serial 658 - IOP658" */
1984 	    {   PCI_VENDOR_PLX, PCI_PRODUCT_PLX_9050,	0x12e0, 0x0021  },
1985 	    {   0xffff, 0xffff,				0xffff, 0xffff  },
1986 	    {
1987 		{ PUC_PORT_COM_MUL4, 0x18, 0x0000 },
1988 		{ PUC_PORT_COM_MUL4, 0x18, 0x0008 },
1989 		{ PUC_PORT_COM_MUL4, 0x18, 0x0010 },
1990 		{ PUC_PORT_COM_MUL4, 0x18, 0x0018 },
1991 		{ PUC_PORT_COM_MUL4, 0x18, 0x0020 },
1992 		{ PUC_PORT_COM_MUL4, 0x18, 0x0028 },
1993 		{ PUC_PORT_COM_MUL4, 0x18, 0x0030 },
1994 		{ PUC_PORT_COM_MUL4, 0x18, 0x0038 },
1995 	    },
1996 	},
1997 
1998 	/* Cronyx Engineering Ltd. Omega-PCI (8 serial port) card. */
1999 	{    /* "Cronyx Omega-PCI" */
2000 	    {	PCI_VENDOR_PLX,	PCI_PRODUCT_PLX_CRONYX_OMEGA,	0, 0 },
2001 	    {	0xffff,	0xffff,					0, 0 },
2002 	    {
2003 		{ PUC_PORT_COM, 0x18, 0x0000 },
2004 		{ PUC_PORT_COM, 0x18, 0x0008 },
2005 		{ PUC_PORT_COM, 0x18, 0x0010 },
2006 		{ PUC_PORT_COM, 0x18, 0x0018 },
2007 		{ PUC_PORT_COM, 0x18, 0x0020 },
2008 		{ PUC_PORT_COM, 0x18, 0x0028 },
2009 		{ PUC_PORT_COM, 0x18, 0x0030 },
2010 		{ PUC_PORT_COM, 0x18, 0x0038 },
2011 	    },
2012 	},
2013 
2014 	/* PLX 9016 8 port serial card. (i.e. Syba) */
2015 	{    /* "PLX 9016 - Syba" */
2016 	    {	PCI_VENDOR_PLX,	PCI_PRODUCT_PLX_9016,	0, 0 },
2017 	    {	0xffff,	0xffff,					0, 0 },
2018 	    {
2019 		{ PUC_PORT_COM_MUL4, 0x10, 0x0000 },
2020 		{ PUC_PORT_COM_MUL4, 0x10, 0x0008 },
2021 		{ PUC_PORT_COM_MUL4, 0x10, 0x0010 },
2022 		{ PUC_PORT_COM_MUL4, 0x10, 0x0018 },
2023 		{ PUC_PORT_COM_MUL4, 0x10, 0x0020 },
2024 		{ PUC_PORT_COM_MUL4, 0x10, 0x0028 },
2025 		{ PUC_PORT_COM_MUL4, 0x10, 0x0030 },
2026 		{ PUC_PORT_COM_MUL4, 0x10, 0x0038 },
2027 	    },
2028 	},
2029 
2030 	/* Avlab Technology, Inc. Low Profile PCI 4 Serial: 4S */
2031 	{   /* "Avlab Low Profile PCI 4 Serial" */
2032 	    {	PCI_VENDOR_AVLAB, PCI_PRODUCT_AVLAB_LPPCI4S_2,	0, 0  },
2033 	    {	0xffff,	0xffff,					0, 0  },
2034 	    {
2035 		{ PUC_PORT_COM, 0x10, 0x0000 },
2036 		{ PUC_PORT_COM, 0x14, 0x0000 },
2037 		{ PUC_PORT_COM, 0x18, 0x0000 },
2038 		{ PUC_PORT_COM, 0x1c, 0x0000 },
2039 	    },
2040 	},
2041 
2042 	/* Avlab Technology, Inc. Low Profile PCI 4 Serial: 4S */
2043 	{   /* "Avlab Low Profile PCI 4 Serial" */
2044 	    {	PCI_VENDOR_AVLAB, PCI_PRODUCT_AVLAB_LPPCI4S,	0, 0  },
2045 	    {	0xffff,	0xffff,					0, 0  },
2046 	    {
2047 		{ PUC_PORT_COM, 0x10, 0x0000 },
2048 		{ PUC_PORT_COM, 0x14, 0x0000 },
2049 		{ PUC_PORT_COM, 0x18, 0x0000 },
2050 		{ PUC_PORT_COM, 0x1c, 0x0000 },
2051 	    },
2052 	},
2053 
2054 	/* Avlab Technology, Inc. PCI 2 Serial: 2S */
2055 	{   /* "Avlab PCI 2 Serial" */
2056 	    {	PCI_VENDOR_AVLAB, PCI_PRODUCT_AVLAB_PCI2S,	0, 0  },
2057 	    {	0xffff,	0xffff,					0, 0  },
2058 	    {
2059 		{ PUC_PORT_COM, 0x10, 0x0000 },
2060 		{ PUC_PORT_COM, 0x14, 0x0000 },
2061 	    },
2062 	},
2063 
2064 	/* Digi International Digi Neo 4 Serial */
2065 	{
2066 	    {	PCI_VENDOR_DIGI, PCI_PRODUCT_DIGI_NEO4,		0, 0  },
2067 	    {	0xffff, 0xffff,					0, 0  },
2068 	    {
2069 		{ PUC_PORT_COM_MUL8, 0x10, 0x0000 },
2070 		{ PUC_PORT_COM_MUL8, 0x10, 0x0200 },
2071 		{ PUC_PORT_COM_MUL8, 0x10, 0x0400 },
2072 		{ PUC_PORT_COM_MUL8, 0x10, 0x0600 },
2073 	    },
2074 	},
2075 
2076 	/* Digi International Digi Neo 8 Serial */
2077 	{
2078 	    {	PCI_VENDOR_DIGI, PCI_PRODUCT_DIGI_NEO8,		0, 0  },
2079 	    {	0xffff, 0xffff,					0, 0  },
2080 	    {
2081 		{ PUC_PORT_COM_MUL8, 0x10, 0x0000 },
2082 		{ PUC_PORT_COM_MUL8, 0x10, 0x0200 },
2083 		{ PUC_PORT_COM_MUL8, 0x10, 0x0400 },
2084 		{ PUC_PORT_COM_MUL8, 0x10, 0x0600 },
2085 		{ PUC_PORT_COM_MUL8, 0x10, 0x0800 },
2086 		{ PUC_PORT_COM_MUL8, 0x10, 0x0a00 },
2087 		{ PUC_PORT_COM_MUL8, 0x10, 0x0c00 },
2088 		{ PUC_PORT_COM_MUL8, 0x10, 0x0e00 },
2089 	    },
2090 	},
2091 
2092 	/* Digi International Digi Neo 8 PCIe Serial */
2093 	{
2094 	    {	PCI_VENDOR_DIGI, PCI_PRODUCT_DIGI_NEO8_PCIE,	0, 0  },
2095 	    {	0xffff, 0xffff,					0, 0  },
2096 	    {
2097 		{ PUC_PORT_COM_MUL8, 0x10, 0x0000 },
2098 		{ PUC_PORT_COM_MUL8, 0x10, 0x0200 },
2099 		{ PUC_PORT_COM_MUL8, 0x10, 0x0400 },
2100 		{ PUC_PORT_COM_MUL8, 0x10, 0x0600 },
2101 		{ PUC_PORT_COM_MUL8, 0x10, 0x0800 },
2102 		{ PUC_PORT_COM_MUL8, 0x10, 0x0a00 },
2103 		{ PUC_PORT_COM_MUL8, 0x10, 0x0c00 },
2104 		{ PUC_PORT_COM_MUL8, 0x10, 0x0e00 },
2105 	    },
2106 	},
2107 
2108 	/*
2109 	 * Multi-Tech ISI5634PCI/4 4-port modem board.
2110 	 * Has a 4-channel Exar XR17C154 UART, but with bogus product ID in its
2111 	 * config EEPROM.
2112 	 */
2113 	{
2114 	    {   PCI_VENDOR_EXAR, PCI_PRODUCT_EXAR_XR17C158, 0x2205, 0x2003 },
2115 	    {	0xffff,	0xffff,				    0xffff, 0xffff },
2116 	    {
2117 		{ PUC_PORT_COM_MUL8, 0x10, 0x0000 },
2118 		{ PUC_PORT_COM_MUL8, 0x10, 0x0200 },
2119 		{ PUC_PORT_COM_MUL8, 0x10, 0x0400 },
2120 		{ PUC_PORT_COM_MUL8, 0x10, 0x0600 },
2121 	    },
2122 	},
2123 
2124 	{   /* EXAR XR17C152 Dual UART */
2125 	    {   PCI_VENDOR_EXAR, PCI_PRODUCT_EXAR_XR17C152,	0, 0 },
2126 	    {   0xffff, 0xffff,					0, 0 },
2127 	    {
2128 		{ PUC_PORT_COM_MUL8, 0x10, 0x0000 },
2129 		{ PUC_PORT_COM_MUL8, 0x10, 0x0200 },
2130 	    },
2131 	},
2132 
2133 	{   /* Exar XR17C154 Quad UART */
2134 	    {   PCI_VENDOR_EXAR, PCI_PRODUCT_EXAR_XR17C154,	0, 0 },
2135 	    {   0xffff, 0xffff,					0, 0 },
2136 	    {
2137 		{ PUC_PORT_COM_MUL8, 0x10, 0x0000 },
2138 		{ PUC_PORT_COM_MUL8, 0x10, 0x0200 },
2139 		{ PUC_PORT_COM_MUL8, 0x10, 0x0400 },
2140 		{ PUC_PORT_COM_MUL8, 0x10, 0x0600 },
2141 	    },
2142 	},
2143 
2144 	{   /* Exar XR17C158 Eight Channel UART */
2145 	    {   PCI_VENDOR_EXAR, PCI_PRODUCT_EXAR_XR17C158,	0, 0 },
2146 	    {   0xffff, 0xffff,					0, 0 },
2147 	    {
2148 		{ PUC_PORT_COM_MUL8, 0x10, 0x0000 },
2149 		{ PUC_PORT_COM_MUL8, 0x10, 0x0200 },
2150 		{ PUC_PORT_COM_MUL8, 0x10, 0x0400 },
2151 		{ PUC_PORT_COM_MUL8, 0x10, 0x0600 },
2152 		{ PUC_PORT_COM_MUL8, 0x10, 0x0800 },
2153 		{ PUC_PORT_COM_MUL8, 0x10, 0x0a00 },
2154 		{ PUC_PORT_COM_MUL8, 0x10, 0x0c00 },
2155 		{ PUC_PORT_COM_MUL8, 0x10, 0x0e00 },
2156 	    },
2157 	},
2158 
2159 	{   /* Exar XR17V354 Quad UART */
2160 	    {   PCI_VENDOR_EXAR, PCI_PRODUCT_EXAR_XR17V354,	0, 0 },
2161 	    {   0xffff, 0xffff,					0, 0 },
2162 	    {
2163 		{ PUC_PORT_COM_XR17V35X, 0x10, 0x0000 },
2164 		{ PUC_PORT_COM_XR17V35X, 0x10, 0x0400 },
2165 		{ PUC_PORT_COM_XR17V35X, 0x10, 0x0800 },
2166 		{ PUC_PORT_COM_XR17V35X, 0x10, 0x0C00 },
2167 	    },
2168 	},
2169 
2170 	{   /* Dell DRAC 3 Virtual UART */
2171 	    {   PCI_VENDOR_DELL, PCI_PRODUCT_DELL_DRAC_3_VUART,	0, 0 },
2172 	    {   0xffff, 0xffff,					0, 0 },
2173 	    {
2174 		{ PUC_PORT_COM_MUL128, 0x14, 0x0000 },
2175 	    },
2176 	},
2177 	{   /* Dell DRAC 4 Virtual UART */
2178 	    {   PCI_VENDOR_DELL, PCI_PRODUCT_DELL_DRAC_4_VUART,	0, 0 },
2179 	    {   0xffff, 0xffff,					0, 0 },
2180 	    {
2181 		{ PUC_PORT_COM_MUL128, 0x14, 0x0000 },
2182 	    },
2183 	},
2184 
2185 	/*
2186 	 * Cardbus devices which can potentially show up because of
2187 	 * Expresscard adapters
2188 	 * XXX Keep this list synchronized with cardbus/com_cardbus.c
2189 	*/
2190 
2191 	{   /* "", */
2192 	    {	PCI_VENDOR_3COM, PCI_PRODUCT_3COM_GLOBALMODEM56,0, 0	},
2193 	    {	0xffff,	0xffff,					0, 0	},
2194 	    {
2195 		{ PUC_PORT_COM, 0x10, 0x0000 },
2196 	    },
2197 	},
2198 	{   /* "", */
2199 	    {	PCI_VENDOR_3COM, PCI_PRODUCT_3COM_MODEM56,	0, 0	},
2200 	    {	0xffff,	0xffff,					0, 0	},
2201 	    {
2202 		{ PUC_PORT_COM, 0x10, 0x0000 },
2203 	    },
2204 	},
2205 	{   /* "", */
2206 	    {	PCI_VENDOR_BROADCOM, PCI_PRODUCT_BROADCOM_SERIAL,0, 0	},
2207 	    {	0xffff,	0xffff,					0, 0	},
2208 	    {
2209 		{ PUC_PORT_COM, 0x10, 0x0000 },
2210 	    },
2211 	},
2212 	{   /* "", */
2213 	    {	PCI_VENDOR_BROADCOM, PCI_PRODUCT_BROADCOM_SERIAL_2,0, 0	},
2214 	    {	0xffff,	0xffff,					0, 0	},
2215 	    {
2216 		{ PUC_PORT_COM, 0x10, 0x0000 },
2217 	    },
2218 	},
2219 	{   /* "", */
2220 	    {	PCI_VENDOR_BROADCOM, PCI_PRODUCT_BROADCOM_SERIAL_GC,0, 0	},
2221 	    {	0xffff,	0xffff,					0, 0	},
2222 	    {
2223 		{ PUC_PORT_COM, 0x10, 0x0000 },
2224 	    },
2225 	},
2226 	{   /* "", */
2227 	    {	PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_MODEM56,	0, 0	},
2228 	    {	0xffff,	0xffff,					0, 0	},
2229 	    {
2230 		{ PUC_PORT_COM, 0x10, 0x0000 },
2231 	    },
2232 	},
2233 	{   /* "", */
2234 	    {	PCI_VENDOR_OXFORD2, PCI_PRODUCT_OXFORD2_OXCB950,0, 0	},
2235 	    {	0xffff,	0xffff,					0, 0	},
2236 	    {
2237 		{ PUC_PORT_COM, 0x10, 0x0000 },
2238 	    },
2239 	},
2240 	{   /* "Xircom Cardbus 56K Modem", */
2241 	    {	PCI_VENDOR_XIRCOM, PCI_PRODUCT_XIRCOM_MODEM_56K,0, 0	},
2242 	    {	0xffff,	0xffff,					0, 0	},
2243 	    {
2244 		{ PUC_PORT_COM, 0x10, 0x0000 },
2245 	    },
2246 	},
2247 	{   /* "Xircom CBEM56G Modem", */
2248 	    {	PCI_VENDOR_XIRCOM, PCI_PRODUCT_XIRCOM_CBEM56G,	0, 0	},
2249 	    {	0xffff,	0xffff,					0, 0	},
2250 	    {
2251 		{ PUC_PORT_COM, 0x10, 0x0000 },
2252 	    },
2253 	},
2254 	{   /* "Xircom 56k Modem", */
2255 	    {	PCI_VENDOR_XIRCOM, PCI_PRODUCT_XIRCOM_MODEM56,	0, 0	},
2256 	    {	0xffff,	0xffff,					0, 0	},
2257 	    {
2258 		{ PUC_PORT_COM, 0x10, 0x0000 },
2259 	    },
2260 	},
2261 	{   /* "WinChipHead CH351 (2S)", */
2262 	    {	PCI_VENDOR_WCH2, PCI_PRODUCT_WCH2_CH351,	0, 0	},
2263 	    {	0xffff,	0xffff,					0, 0	},
2264 	    {
2265 		{ PUC_PORT_COM, 0x10, 0x0000 },
2266 		{ PUC_PORT_COM, 0x14, 0x0000 },
2267 	    },
2268 	},
2269 	{   /* "WinChipHead CH352", */
2270 	    {	PCI_VENDOR_WCH, PCI_PRODUCT_WCH_CH352,		0, 0	},
2271 	    {	0xffff,	0xffff,					0, 0	},
2272 	    {
2273 		{ PUC_PORT_COM, 0x10, 0x0000 },
2274 		{ PUC_PORT_COM, 0x14, 0x0000 },
2275 	    },
2276 	},
2277 	{   /* "WinChipHead CH382 (2S)", */
2278 	    {	PCI_VENDOR_WCH2, PCI_PRODUCT_WCH2_CH382_1,	0, 0	},
2279 	    {	0xffff,	0xffff,					0, 0	},
2280 	    {
2281 		{ PUC_PORT_COM, 0x10, 0x00c0 },
2282 		{ PUC_PORT_COM, 0x10, 0x00c8 },
2283 	    },
2284 	},
2285 	{   /* "WinChipHead CH382 (2S1P)", */
2286 	    {	PCI_VENDOR_WCH2, PCI_PRODUCT_WCH2_CH382_2,	0, 0	},
2287 	    {	0xffff,	0xffff,					0, 0	},
2288 	    {
2289 		{ PUC_PORT_COM, 0x10, 0x00c0 },
2290 		{ PUC_PORT_COM, 0x10, 0x00c8 },
2291 	    },
2292 	},
2293 	{   /* "TXIC TX382B (2S)", */
2294 	    {	PCI_VENDOR_TXIC, PCI_PRODUCT_TXIC_TX382B,	0, 0	},
2295 	    {	0xffff, 0xffff,					0, 0	},
2296 	    {
2297 		{ PUC_PORT_COM, 0x10, 0x0000 },
2298 		{ PUC_PORT_COM, 0x14, 0x0000 },
2299 	    }
2300 	},
2301 	{   /* "ASIX AX99100", */
2302 	    {	PCI_VENDOR_ASIX, PCI_PRODUCT_ASIX_AX99100,	0, 0	},
2303 	    {	0xffff, 0xffff,					0, 0	},
2304 	    {
2305 		{ PUC_PORT_COM, 0x10, 0x0000 },
2306 	    }
2307 	},
2308 	{   /* "NetMos NM9820 UART" */
2309 	    {   PCI_VENDOR_NETMOS, PCI_PRODUCT_NETMOS_NM9820,	0, 0	},
2310 	    {	0xffff,	0xffff,					0, 0	},
2311 	    {
2312 		{ PUC_PORT_COM, 0x10, 0x0000 },
2313 	    },
2314 	},
2315 	{   /* "MosChip MCS9865 Quad Serial Port" */
2316 	    {   PCI_VENDOR_MOSCHIP, PCI_PRODUCT_MOSCHIP_MCS9865, 0x1000, 0x4 },
2317 	    {   0xffff, 0xffff, 0xffff, 0xffff },
2318 	    {
2319 		{ PUC_PORT_COM, 0x10, 0x0000 },
2320 		{ PUC_PORT_COM, 0x14, 0x0000 },
2321 		{ PUC_PORT_COM, 0x18, 0x0000 },
2322 		{ PUC_PORT_COM, 0x1c, 0x0000 },
2323 	    },
2324 	},
2325 	{   /* "MosChip MCS9865 Dual Serial Port" */
2326 	    {   PCI_VENDOR_MOSCHIP, PCI_PRODUCT_MOSCHIP_MCS9865, 0x1000, 0x2 },
2327 	    {   0xffff, 0xffff, 0xffff, 0xffff },
2328 	    {
2329 		{ PUC_PORT_COM, 0x10, 0x0000 },
2330 		{ PUC_PORT_COM, 0x14, 0x0000 },
2331 	    },
2332 	},
2333 	{   /* "MosChip MCS9865 Single Serial Port" */
2334 	    {   PCI_VENDOR_MOSCHIP, PCI_PRODUCT_MOSCHIP_MCS9865, 0x1000, 0x1 },
2335 	    {   0xffff, 0xffff, 0xffff, 0xffff },
2336 	    {
2337 		{ PUC_PORT_COM, 0x10, 0x0000 },
2338 	    },
2339 	},
2340 	{   /* "Redhat QEMU PCI Serial" */
2341 	    {   PCI_VENDOR_REDHAT, PCI_PRODUCT_REDHAT_SERIAL, 0x0000, 0x0000 },
2342 	    {   0xffff, 0xffff, 0x0000, 0x0000 },
2343 	    {
2344 		{ PUC_PORT_COM, 0x10, 0x0000 },
2345 	    },
2346 	},
2347 	{   /* "Redhat QEMU PCI Serial 2x" */
2348 	    {   PCI_VENDOR_REDHAT, PCI_PRODUCT_REDHAT_SERIAL2, 0x0000, 0x0000 },
2349 	    {   0xffff, 0xffff, 0x0000, 0x0000 },
2350 	    {
2351 		{ PUC_PORT_COM, 0x10, 0x0000 },
2352 		{ PUC_PORT_COM, 0x10, 0x0008 },
2353 	    },
2354 	},
2355 	{   /* "Redhat QEMU PCI Serial 4x" */
2356 	    {   PCI_VENDOR_REDHAT, PCI_PRODUCT_REDHAT_SERIAL4, 0x0000, 0x0000 },
2357 	    {   0xffff, 0xffff, 0x0000, 0x0000 },
2358 	    {
2359 		{ PUC_PORT_COM, 0x10, 0x0000 },
2360 		{ PUC_PORT_COM, 0x10, 0x0008 },
2361 		{ PUC_PORT_COM, 0x10, 0x0010 },
2362 		{ PUC_PORT_COM, 0x10, 0x0018 },
2363 	    },
2364 	},
2365 };
2366 int puc_ndevs = nitems(puc_devs);
2367