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