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