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