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