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