xref: /dragonfly/sys/dev/misc/puc/pucdata.c (revision 36a3d1d6)
1 /*	$NetBSD: pucdata.c,v 1.25 2001/12/16 22:23:01 thorpej Exp $	*/
2 
3 /*
4  * Copyright (c) 1998, 1999 Christopher G. Demetriou.  All rights reserved.
5  *
6  * Redistribution and use in source and binary forms, with or without
7  * modification, are permitted provided that the following conditions
8  * are met:
9  * 1. Redistributions of source code must retain the above copyright
10  *    notice, this list of conditions and the following disclaimer.
11  * 2. Redistributions in binary form must reproduce the above copyright
12  *    notice, this list of conditions and the following disclaimer in the
13  *    documentation and/or other materials provided with the distribution.
14  * 3. All advertising materials mentioning features or use of this software
15  *    must display the following acknowledgement:
16  *      This product includes software developed by Christopher G. Demetriou
17  *	for the NetBSD Project.
18  * 4. The name of the author may not be used to endorse or promote products
19  *    derived from this software without specific prior written permission
20  *
21  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
22  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
23  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
24  * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
25  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
26  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
30  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31  *
32  * $FreeBSD: src/sys/dev/puc/pucdata.c,v 1.2.2.12 2003/05/14 09:43:22 wilko Exp $
33  * $DragonFly: src/sys/dev/misc/puc/pucdata.c,v 1.3 2003/08/07 21:16:58 dillon Exp $
34  */
35 
36 /*
37  * PCI "universal" communications card driver configuration data (used to
38  * match/attach the cards).
39  */
40 
41 #include <sys/param.h>
42 
43 #include <bus/pci/pcireg.h>
44 #include <bus/pci/pcivar.h>
45 #include <dev/serial/sio/sioreg.h>
46 #include "pucvar.h"
47 
48 #define COM_FREQ	DEFAULT_RCLK
49 
50 const struct puc_device_description puc_devices[] = {
51 
52 	{   "Comtrol RocketPort 550/4 RJ45",
53 	    {	0x11fe,	0x8014,	0,	0	},
54 	    {	0xffff,	0xffff,	0,	0	},
55 	    {
56 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 4 },
57 		{ PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 4 },
58 		{ PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 4 },
59 		{ PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 4 },
60 	    },
61 	},
62 
63 	{   "Comtrol RocketPort 550/Quad",
64 	    {	0x11fe,	0x8015,	0,	0	},
65 	    {	0xffff,	0xffff,	0,	0	},
66 	    {
67 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 4 },
68 		{ PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 4 },
69 		{ PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 4 },
70 		{ PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 4 },
71 	    },
72 	},
73 
74 	{   "Comtrol RocketPort 550/8 RJ11 part A",
75 	    {	0x11fe,	0x8010,	0,	0	},
76 	    {	0xffff,	0xffff,	0,	0	},
77 	    {
78 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 4 },
79 		{ PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 4 },
80 		{ PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 4 },
81 		{ PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 4 },
82 	    },
83 	},
84 	{   "Comtrol RocketPort 550/8 RJ11 part B",
85 	    {	0x11fe,	0x8011,	0,	0	},
86 	    {	0xffff,	0xffff,	0,	0	},
87 	    {
88 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 4 },
89 		{ PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 4 },
90 		{ PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 4 },
91 		{ PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 4 },
92 	    },
93 	},
94 
95 	{   "Comtrol RocketPort 550/8 Octa part A",
96 	    {	0x11fe,	0x8012,	0,	0	},
97 	    {	0xffff,	0xffff,	0,	0	},
98 	    {
99 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 4 },
100 		{ PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 4 },
101 		{ PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 4 },
102 		{ PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 4 },
103 	    },
104 	},
105 	{   "Comtrol RocketPort 550/8 Octa part B",
106 	    {	0x11fe,	0x8013,	0,	0	},
107 	    {	0xffff,	0xffff,	0,	0	},
108 	    {
109 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 4 },
110 		{ PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 4 },
111 		{ PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 4 },
112 		{ PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 4 },
113 	    },
114 	},
115 
116 	{   "Comtrol RocketPort 550/8 part A",
117 	    {	0x11fe,	0x8018,	0,	0	},
118 	    {	0xffff,	0xffff,	0,	0	},
119 	    {
120 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 4 },
121 		{ PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 4 },
122 		{ PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 4 },
123 		{ PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 4 },
124 	    },
125 	},
126 	{   "Comtrol RocketPort 550/8 part B",
127 	    {	0x11fe,	0x8019,	0,	0	},
128 	    {	0xffff,	0xffff,	0,	0	},
129 	    {
130 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 4 },
131 		{ PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 4 },
132 		{ PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 4 },
133 		{ PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 4 },
134 	    },
135 	},
136 
137 	{   "Comtrol RocketPort 550/16 part A",
138 	    {	0x11fe,	0x8016,	0,	0	},
139 	    {	0xffff,	0xffff,	0,	0	},
140 	    {
141 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 4 },
142 		{ PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 4 },
143 		{ PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 4 },
144 		{ PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 4 },
145 	    },
146 	},
147 	{   "Comtrol RocketPort 550/16 part B",
148 	    {	0x11fe,	0x8017,	0,	0	},
149 	    {	0xffff,	0xffff,	0,	0	},
150 	    {
151 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 4 },
152 		{ PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 4 },
153 		{ PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 4 },
154 		{ PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 4 },
155 		{ PUC_PORT_TYPE_COM, 0x10, 0x20, COM_FREQ * 4 },
156 		{ PUC_PORT_TYPE_COM, 0x10, 0x28, COM_FREQ * 4 },
157 		{ PUC_PORT_TYPE_COM, 0x10, 0x30, COM_FREQ * 4 },
158 		{ PUC_PORT_TYPE_COM, 0x10, 0x38, COM_FREQ * 4 },
159 		{ PUC_PORT_TYPE_COM, 0x10, 0x40, COM_FREQ * 4 },
160 		{ PUC_PORT_TYPE_COM, 0x10, 0x48, COM_FREQ * 4 },
161 		{ PUC_PORT_TYPE_COM, 0x10, 0x50, COM_FREQ * 4 },
162 		{ PUC_PORT_TYPE_COM, 0x10, 0x58, COM_FREQ * 4 },
163 	    },
164 	},
165 
166 	/*
167 	 * XXX no entry because I have no data:
168 	 * XXX Dolphin Peripherals 4006 (single parallel)
169 	 */
170 
171 	/*
172 	 * Dolphin Peripherals 4014 (dual parallel port) card.  PLX 9050, with
173 	 * a seemingly-lame EEPROM setup that puts the Dolphin IDs
174 	 * into the subsystem fields, and claims that it's a
175 	 * network/misc (0x02/0x80) device.
176 	 */
177 	{   "Dolphin Peripherals 4014",
178 	    {	0x10b5,	0x9050,	0xd84d,	0x6810	},
179 	    {	0xffff,	0xffff,	0xffff,	0xffff	},
180 	    {
181 		{ PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 },
182 		{ PUC_PORT_TYPE_LPT, 0x24, 0x00, 0x00 },
183 	    },
184 	},
185 
186 	/*
187 	 * XXX Dolphin Peripherals 4025 (single serial)
188 	 * (clashes with Dolphin Peripherals  4036 (2s variant)
189 	 */
190 
191 	/*
192 	 * Dolphin Peripherals 4035 (dual serial port) card.  PLX 9050, with
193 	 * a seemingly-lame EEPROM setup that puts the Dolphin IDs
194 	 * into the subsystem fields, and claims that it's a
195 	 * network/misc (0x02/0x80) device.
196 	 */
197 	{   "Dolphin Peripherals 4035",
198 	    {	0x10b5,	0x9050,	0xd84d,	0x6808	},
199 	    {	0xffff,	0xffff,	0xffff,	0xffff	},
200 	    {
201 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
202 		{ PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
203 	    },
204 	},
205 
206 	/*
207 	 * Dolphin Peripherals 4036 (dual serial port) card.
208 	 * (Dolpin 4025 has the same ID but only one port)
209 	 */
210 	{   "Dolphin Peripherals 4036",
211 	    {	0x1409,	0x7168,	0x0,	0x0	},
212 	    {	0xffff,	0xffff,	0x0,	0x0	},
213 	    {
214 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8},
215 		{ PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8},
216 	    },
217 	},
218 
219 	/*
220 	 * XXX no entry because I have no data:
221 	 * XXX Dolphin Peripherals 4078 (dual serial and single parallel)
222 	 */
223 
224 
225 	/*
226 	 * SIIG Boards.
227 	 *
228 	 * SIIG provides documentation for their boards at:
229 	 * <URL:http://www.siig.com/driver.htm>
230 	 *
231 	 * Please excuse the weird ordering, it's the order they
232 	 * use in their documentation.
233 	 */
234 
235 	/*
236 	 * SIIG "10x" family boards.
237 	 */
238 
239 	/* SIIG Cyber Serial PCI 16C550 (10x family): 1S */
240 	{   "SIIG Cyber Serial PCI 16C550 (10x family)",
241 	    {	0x131f,	0x1000,	0,	0	},
242 	    {	0xffff,	0xffff,	0,	0	},
243 	    {
244 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
245 	    },
246 	},
247 
248 	/* SIIG Cyber Serial PCI 16C650 (10x family): 1S */
249 	{   "SIIG Cyber Serial PCI 16C650 (10x family)",
250 	    {	0x131f,	0x1001,	0,	0	},
251 	    {	0xffff,	0xffff,	0,	0	},
252 	    {
253 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
254 	    },
255 	},
256 
257 	/* SIIG Cyber Serial PCI 16C850 (10x family): 1S */
258 	{   "SIIG Cyber Serial PCI 16C850 (10x family)",
259 	    {	0x131f,	0x1002,	0,	0	},
260 	    {	0xffff,	0xffff,	0,	0	},
261 	    {
262 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
263 	    },
264 	},
265 
266 	/* SIIG Cyber I/O PCI 16C550 (10x family): 1S, 1P */
267 	{   "SIIG Cyber I/O PCI 16C550 (10x family)",
268 	    {	0x131f,	0x1010,	0,	0	},
269 	    {	0xffff,	0xffff,	0,	0	},
270 	    {
271 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
272 		{ PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 },
273 	    },
274 	},
275 
276 	/* SIIG Cyber I/O PCI 16C650 (10x family): 1S, 1P */
277 	{   "SIIG Cyber I/O PCI 16C650 (10x family)",
278 	    {	0x131f,	0x1011,	0,	0	},
279 	    {	0xffff,	0xffff,	0,	0	},
280 	    {
281 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
282 		{ PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 },
283 	    },
284 	},
285 
286 	/* SIIG Cyber I/O PCI 16C850 (10x family): 1S, 1P */
287 	{   "SIIG Cyber I/O PCI 16C850 (10x family)",
288 	    {	0x131f,	0x1012,	0,	0	},
289 	    {	0xffff,	0xffff,	0,	0	},
290 	    {
291 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
292 		{ PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 },
293 	    },
294 	},
295 
296 	/* SIIG Cyber Parallel PCI (10x family): 1P */
297 	{   "SIIG Cyber Parallel PCI (10x family)",
298 	    {	0x131f,	0x1020,	0,	0	},
299 	    {	0xffff,	0xffff,	0,	0	},
300 	    {
301 		{ PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
302 	    },
303 	},
304 
305 	/* SIIG Cyber Parallel Dual PCI (10x family): 2P */
306 	{   "SIIG Cyber Parallel Dual PCI (10x family)",
307 	    {	0x131f,	0x1021,	0,	0	},
308 	    {	0xffff,	0xffff,	0,	0	},
309 	    {
310 		{ PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
311 		{ PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 },
312 	    },
313 	},
314 
315 	/* SIIG Cyber Serial Dual PCI 16C550 (10x family): 2S */
316 	{   "SIIG Cyber Serial Dual PCI 16C550 (10x family)",
317 	    {	0x131f,	0x1030,	0,	0	},
318 	    {	0xffff,	0xffff,	0,	0	},
319 	    {
320 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
321 		{ PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
322 	    },
323 	},
324 
325 	/* SIIG Cyber Serial Dual PCI 16C650 (10x family): 2S */
326 	{   "SIIG Cyber Serial Dual PCI 16C650 (10x family)",
327 	    {	0x131f,	0x1031,	0,	0	},
328 	    {	0xffff,	0xffff,	0,	0	},
329 	    {
330 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
331 		{ PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
332 	    },
333 	},
334 
335 	/* SIIG Cyber Serial Dual PCI 16C850 (10x family): 2S */
336 	{   "SIIG Cyber Serial Dual PCI 16C850 (10x family)",
337 	    {	0x131f,	0x1032,	0,	0	},
338 	    {	0xffff,	0xffff,	0,	0	},
339 	    {
340 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
341 		{ PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
342 	    },
343 	},
344 
345 	/* SIIG Cyber 2S1P PCI 16C550 (10x family): 2S, 1P */
346 	{   "SIIG Cyber 2S1P PCI 16C550 (10x family)",
347 	    {	0x131f,	0x1034,	0,	0	},	/* XXX really? */
348 	    {	0xffff,	0xffff,	0,	0	},
349 	    {
350 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
351 		{ PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
352 		{ PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 },
353 	    },
354 	},
355 
356 	/* SIIG Cyber 2S1P PCI 16C650 (10x family): 2S, 1P */
357 	{   "SIIG Cyber 2S1P PCI 16C650 (10x family)",
358 	    {	0x131f,	0x1035,	0,	0	},	/* XXX really? */
359 	    {	0xffff,	0xffff,	0,	0	},
360 	    {
361 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
362 		{ PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
363 		{ PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 },
364 	    },
365 	},
366 
367 	/* SIIG Cyber 2S1P PCI 16C850 (10x family): 2S, 1P */
368 	{   "SIIG Cyber 2S1P PCI 16C850 (10x family)",
369 	    {	0x131f,	0x1036,	0,	0	},	/* XXX really? */
370 	    {	0xffff,	0xffff,	0,	0	},
371 	    {
372 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
373 		{ PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
374 		{ PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 },
375 	    },
376 	},
377 
378 	/* SIIG Cyber 4S PCI 16C550 (10x family): 4S */
379 	{   "SIIG Cyber 4S PCI 16C550 (10x family)",
380 	    {	0x131f,	0x1050,	0,	0	},
381 	    {	0xffff,	0xffff,	0,	0	},
382 	    {
383 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
384 		{ PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
385 		{ PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ },
386 		{ PUC_PORT_TYPE_COM, 0x24, 0x00, COM_FREQ },
387 	    },
388 	},
389 
390 	/* SIIG Cyber 4S PCI 16C650 (10x family): 4S */
391 	{   "SIIG Cyber 4S PCI 16C650 (10x family)",
392 	    {	0x131f,	0x1051,	0,	0	},
393 	    {	0xffff,	0xffff,	0,	0	},
394 	    {
395 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
396 		{ PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
397 		{ PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ },
398 		{ PUC_PORT_TYPE_COM, 0x24, 0x00, COM_FREQ },
399 	    },
400 	},
401 
402 	/* SIIG Cyber 4S PCI 16C850 (10x family): 4S */
403 	{   "SIIG Cyber 4S PCI 16C850 (10x family)",
404 	    {	0x131f,	0x1052,	0,	0	},
405 	    {	0xffff,	0xffff,	0,	0	},
406 	    {
407 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
408 		{ PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
409 		{ PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ },
410 		{ PUC_PORT_TYPE_COM, 0x24, 0x00, COM_FREQ },
411 	    },
412 	},
413 
414 	/*
415 	 * SIIG "20x" family boards.
416 	 */
417 
418 	/* SIIG Cyber Parallel PCI (20x family): 1P */
419 	{   "SIIG Cyber Parallel PCI (20x family)",
420 	    {	0x131f,	0x2020,	0,	0	},
421 	    {	0xffff,	0xffff,	0,	0	},
422 	    {
423 		{ PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
424 	    },
425 	},
426 
427 	/* SIIG Cyber Parallel Dual PCI (20x family): 2P */
428 	{   "SIIG Cyber Parallel Dual PCI (20x family)",
429 	    {	0x131f,	0x2021,	0,	0	},
430 	    {	0xffff,	0xffff,	0,	0	},
431 	    {
432 		{ PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
433 		{ PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
434 	    },
435 	},
436 
437 	/* SIIG Cyber 2P1S PCI 16C550 (20x family): 1S, 2P */
438 	{   "SIIG Cyber 2P1S PCI 16C550 (20x family)",
439 	    {	0x131f,	0x2040,	0,	0	},
440 	    {	0xffff,	0xffff,	0,	0	},
441 	    {
442 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
443 		{ PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 },
444 		{ PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 },
445 	    },
446 	},
447 
448 	/* SIIG Cyber 2P1S PCI 16C650 (20x family): 1S, 2P */
449 	{   "SIIG Cyber 2P1S PCI 16C650 (20x family)",
450 	    {	0x131f,	0x2041,	0,	0	},
451 	    {	0xffff,	0xffff,	0,	0	},
452 	    {
453 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
454 		{ PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 },
455 		{ PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 },
456 	    },
457 	},
458 
459 	/* SIIG Cyber 2P1S PCI 16C850 (20x family): 1S, 2P */
460 	{   "SIIG Cyber 2P1S PCI 16C850 (20x family)",
461 	    {	0x131f,	0x2042,	0,	0	},
462 	    {	0xffff,	0xffff,	0,	0	},
463 	    {
464 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
465 		{ PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 },
466 		{ PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 },
467 	    },
468 	},
469 
470 	/* SIIG Cyber Serial PCI 16C550 (20x family): 1S */
471 	{   "SIIG Cyber Serial PCI 16C550 (20x family)",
472 	    {	0x131f,	0x2000,	0,	0	},
473 	    {	0xffff,	0xffff,	0,	0	},
474 	    {
475 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
476 	    },
477 	},
478 
479 	/* SIIG Cyber Serial PCI 16C650 (20x family): 1S */
480 	{   "SIIG Cyber Serial PCI 16C650 (20x family)",
481 	    {	0x131f,	0x2001,	0,	0	},
482 	    {	0xffff,	0xffff,	0,	0	},
483 	    {
484 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
485 	    },
486 	},
487 
488 	/* SIIG Cyber Serial PCI 16C850 (20x family): 1S */
489 	{   "SIIG Cyber Serial PCI 16C850 (20x family)",
490 	    {	0x131f,	0x2002,	0,	0	},
491 	    {	0xffff,	0xffff,	0,	0	},
492 	    {
493 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
494 	    },
495 	},
496 
497 	/* SIIG Cyber I/O PCI 16C550 (20x family): 1S, 1P */
498 	{   "SIIG Cyber I/O PCI 16C550 (20x family)",
499 	    {	0x131f,	0x2010,	0,	0	},
500 	    {	0xffff,	0xffff,	0,	0	},
501 	    {
502 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
503 		{ PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 },
504 	    },
505 	},
506 
507 	/* SIIG Cyber I/O PCI 16C650 (20x family): 1S, 1P */
508 	{   "SIIG Cyber I/O PCI 16C650 (20x family)",
509 	    {	0x131f,	0x2011,	0,	0	},
510 	    {	0xffff,	0xffff,	0,	0	},
511 	    {
512 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
513 		{ PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 },
514 	    },
515 	},
516 
517 	/* SIIG Cyber I/O PCI 16C850 (20x family): 1S, 1P */
518 	{   "SIIG Cyber I/O PCI 16C850 (20x family)",
519 	    {	0x131f,	0x2012,	0,	0	},
520 	    {	0xffff,	0xffff,	0,	0	},
521 	    {
522 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
523 		{ PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 },
524 	    },
525 	},
526 
527 	/* SIIG Cyber Serial Dual PCI 16C550 (20x family): 2S */
528 	{   "SIIG Cyber Serial Dual PCI 16C550 (20x family)",
529 	    {	0x131f,	0x2030,	0,	0	},
530 	    {	0xffff,	0xffff,	0,	0	},
531 	    {
532 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
533 		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
534 	    },
535 	},
536 
537 	/* SIIG Cyber Serial Dual PCI 16C650 (20x family): 2S */
538 	{   "SIIG Cyber Serial Dual PCI 16C650 (20x family)",
539 	    {	0x131f,	0x2031,	0,	0	},
540 	    {	0xffff,	0xffff,	0,	0	},
541 	    {
542 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
543 		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
544 	    },
545 	},
546 
547 	/* SIIG Cyber Serial Dual PCI 16C850 (20x family): 2S */
548 	{   "SIIG Cyber Serial Dual PCI 16C850 (20x family)",
549 	    {	0x131f,	0x2032,	0,	0	},
550 	    {	0xffff,	0xffff,	0,	0	},
551 	    {
552 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
553 		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
554 	    },
555 	},
556 
557 	/* SIIG Cyber 2S1P PCI 16C550 (20x family): 2S, 1P */
558 	{   "SIIG Cyber 2S1P PCI 16C550 (20x family)",
559 	    {	0x131f,	0x2060,	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_LPT, 0x18, 0x00, 0x00 },
565 	    },
566 	},
567 
568 	/* SIIG Cyber 2S1P PCI 16C650 (20x family): 2S, 1P */
569 	{   "SIIG Cyber 2S1P PCI 16C650 (20x family)",
570 	    {	0x131f,	0x2061,	0,	0	},
571 	    {	0xffff,	0xffff,	0,	0	},
572 	    {
573 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
574 		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
575 		{ PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
576 	    },
577 	},
578 
579 	/* SIIG Cyber 2S1P PCI 16C850 (20x family): 2S, 1P */
580 	{   "SIIG Cyber 2S1P PCI 16C850 (20x family)",
581 	    {	0x131f,	0x2062,	0,	0	},
582 	    {	0xffff,	0xffff,	0,	0	},
583 	    {
584 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
585 		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
586 		{ PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
587 	    },
588 	},
589 
590 	/* SIIG Cyber 4S PCI 16C550 (20x family): 4S */
591 	{   "SIIG Cyber 4S PCI 16C550 (20x family)",
592 	    {	0x131f,	0x2050,	0,	0	},
593 	    {	0xffff,	0xffff,	0,	0	},
594 	    {
595 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
596 		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
597 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
598 		{ PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
599 	    },
600 	},
601 
602 	/* SIIG Cyber 4S PCI 16C650 (20x family): 4S */
603 	{   "SIIG Cyber 4S PCI 16C650 (20x family)",
604 	    {	0x131f,	0x2051,	0,	0	},
605 	    {	0xffff,	0xffff,	0,	0	},
606 	    {
607 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
608 		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
609 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
610 		{ PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
611 	    },
612 	},
613 
614 	/* SIIG Cyber 4S PCI 16C850 (20x family): 4S */
615 	{   "SIIG Cyber 4S PCI 16C850 (20x family)",
616 	    {	0x131f,	0x2052,	0,	0	},
617 	    {	0xffff,	0xffff,	0,	0	},
618 	    {
619 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
620 		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
621 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
622 		{ PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
623 	    },
624 	},
625 
626 	/* VScom PCI-200L: 2S */
627 	{   "VScom PCI-200L",
628 	    {	0x14d2, 0x8020,	0, 0	},
629 	    {	0xffff, 0xffff,	0, 0	},
630 	    {
631 		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ * 8},
632 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8},
633 	    },
634 	},
635 
636 	/* VScom PCI-400: 4S */
637 	{   "VScom PCI-400",
638 	    {	0x10b5,	0x1077,	0x10b5,	0x1077	},
639 	    {	0xffff,	0xffff,	0xffff,	0xffff	},
640 	    {
641 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
642 		{ PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 },
643 		{ PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 },
644 		{ PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 },
645 	    },
646 	},
647 
648 	/* VScom PCI-800: 8S */
649 	{   "VScom PCI-800",
650 	    {	0x10b5,	0x1076,	0x10b5,	0x1076	},
651 	    {	0xffff,	0xffff,	0xffff,	0xffff	},
652 	    {
653 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
654 		{ PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 },
655 		{ PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 },
656 		{ PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 },
657 		{ PUC_PORT_TYPE_COM, 0x18, 0x20, COM_FREQ * 8 },
658 		{ PUC_PORT_TYPE_COM, 0x18, 0x28, COM_FREQ * 8 },
659 		{ PUC_PORT_TYPE_COM, 0x18, 0x30, COM_FREQ * 8 },
660 		{ PUC_PORT_TYPE_COM, 0x18, 0x38, COM_FREQ * 8 },
661 	    },
662 	},
663 	/*
664 	 * VScom PCI-800H. Uses 8 16950 UART, behind a PCI chips that offers
665 	 * 4 com port on PCI device 0 and 4 on PCI device 1. PCI device 0 has
666 	 * device ID 3 and PCI device 1 device ID 4.
667 	 */
668 	{   "Titan PCI-800H",
669 	    {	0x14d2,	0xa003,	0,	0	},
670 	    {	0xffff,	0xffff,	0,	0	},
671 	    {
672 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 },
673 		{ PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8 },
674 		{ PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 8 },
675 		{ PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 8 },
676 	    },
677 	},
678 	{   "Titan PCI-800H",
679 	    {	0x14d2,	0xa004,	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         {   "Titan PCI-200H",
689             {   0x14d2, 0xa005, 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             },
695         },
696 
697 	/* NEC PK-UG-X001 K56flex PCI Modem card.
698 	   NEC MARTH bridge chip and Rockwell RCVDL56ACF/SP using. */
699 	{   "NEC PK-UG-X001 K56flex PCI Modem",
700 	    {	0x1033,	0x0074,	0x1033,	0x8014	},
701 	    {	0xffff,	0xffff,	0xffff,	0xffff	},
702 	    {
703 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
704 	    },
705 	},
706 
707 	/* NEC PK-UG-X008 */
708 	{   "NEC PK-UG-X008",
709 	    {	0x1033,	0x007d,	0x1033,	0x8012	},
710 	    {	0xffff,	0xffff,	0xffff,	0xffff	},
711 	    {
712 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ},
713 	    },
714 	},
715 
716 	/* Lava Computers 2SP-PCI */
717 	{   "Lava Computers 2SP-PCI parallel port",
718 	    {	0x1407,	0x8000,	0,	0	},
719 	    {	0xffff,	0xffff,	0,	0	},
720 	    {
721 		{ PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
722 	    },
723 	},
724 
725 	/* Lava Computers 2SP-PCI and Quattro-PCI serial ports */
726 	{   "Lava Computers dual serial port",
727 	    {	0x1407,	0x0100,	0,	0	},
728 	    {	0xffff,	0xfffc,	0,	0	},
729 	    {
730 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
731 		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
732 	    },
733 	},
734 
735 	/* Lava Computers newer Quattro-PCI serial ports */
736 	{   "Lava Computers Quattro-PCI serial port",
737 	    {	0x1407,	0x0120,	0,	0	},
738 	    {	0xffff,	0xfffc,	0,	0	},
739 	    {
740 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
741 		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
742 	    },
743 	},
744 
745 	/* Lava Computers DSerial PCI serial ports */
746 	{   "Lava Computers serial port",
747 	    {	0x1407,	0x0110,	0,	0	},
748 	    {	0xffff,	0xfffc,	0,	0	},
749 	    {
750 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
751 	    },
752 	},
753 
754 	/* Lava Computers Octopus-550 serial ports */
755 	{   "Lava Computers Octopus-550 8-port serial",
756 	    {	0x1407,	0x0180,	0,	0	},
757 	    {	0xffff,	0xfffc,	0,	0	},
758 	    {
759 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
760 		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
761 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
762 		{ PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
763 	    },
764 	},
765 
766 	/* US Robotics (3Com) PCI Modems */
767 	{   "US Robotics (3Com) 3CP5609 PCI 16550 Modem",
768 	    {	0x12b9,	0x1008,	0,	0	},
769 	    {	0xffff,	0xffff,	0,	0	},
770 	    {
771 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
772 	    },
773 	},
774 
775 	/* Actiontec  56K PCI Master */
776 	{   "Actiontec 56K PCI Master",
777 	    {	0x11c1,	0x0480,	0x0, 	0x0	},
778 	    {	0xffff,	0xffff,	0x0,	0x0	},
779 	    {
780 		{ PUC_PORT_TYPE_COM,	0x14,	0x00, COM_FREQ },
781 	    },
782 	},
783 
784 	/*
785 	 * Boards with an Oxford Semiconductor chip.
786 	 *
787 	 * Oxford Semiconductor provides documentation for their chip at:
788 	 * <URL:http://www.oxsemi.com/products/uarts/index.html>
789 	 *
790 	 * As sold by Kouwell <URL:http://www.kouwell.com/>.
791 	 * I/O Flex PCI I/O Card Model-223 with 4 serial and 1 parallel ports.
792 	 */
793 
794 	/* Oxford Semiconductor OX16PCI954 PCI UARTs */
795 	{   "Oxford Semiconductor OX16PCI954 UARTs",
796 	    {	0x1415,	0x9501,	0,	0	},
797 	    {	0xffff,	0xffff,	0,	0	},
798 	    {
799 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
800 		{ PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ },
801 		{ PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ },
802 		{ PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ },
803 	    },
804 	},
805 
806 	/* Oxford Semiconductor OX16PCI954 PCI Parallel port */
807 	{   "Oxford Semiconductor OX16PCI954 Parallel port",
808 	    {	0x1415,	0x9513,	0,	0	},
809 	    {	0xffff,	0xffff,	0,	0	},
810 	    {
811 		{ PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
812 	    },
813 	},
814 
815 	/* NetMos 2S1P PCI 16C650 : 2S, 1P */
816 	{   "NetMos NM9835 Dual UART and 1284 Printer port",
817 	    {	0x9710,	0x9835,	0,	0	},
818 	    {	0xffff,	0xffff,	0,	0	},
819 	    {
820 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
821 		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
822 		{ PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
823 	    },
824 	},
825 
826 	/* NetMos 4S0P PCI: 4S, 0P */
827 	{   "NetMos NM9845 Quad UART",
828 	    {	0x9710,	0x9845,	0,	0	},
829 	    {	0xffff,	0xffff,	0,	0	},
830 	    {
831 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
832 		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
833 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
834 		{ PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
835 	    },
836 	},
837 
838 	/*
839 	 * This is the Middle Digital, Inc. PCI-Weasel, which
840 	 * uses a PCI interface implemented in FPGA.
841 	 */
842 	{   "Middle Digital, Inc. Weasel serial port",
843 	    {	0xdeaf,	0x9051,	0,	0	},
844 	    {	0xffff,	0xffff,	0,	0	},
845 	    {
846 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
847 	    },
848 	},
849 
850 	/* SD-LAB PCI I/O Card 4S2P */
851 	{   "Syba Tech Ltd. PCI-4S2P-550-ECP",
852 	    {	0x1592, 0x0781, 0,	0	},
853 	    {	0xffff, 0xffff, 0,	0	},
854 	    {
855 		{ PUC_PORT_TYPE_COM, 0x10, 0x2e8, COM_FREQ },
856 		{ PUC_PORT_TYPE_COM, 0x10, 0x2f8, COM_FREQ },
857 		{ PUC_PORT_TYPE_LPT, 0x10, 0x000, 0x00 },
858 		{ PUC_PORT_TYPE_COM, 0x10, 0x3e8, COM_FREQ },
859 		{ PUC_PORT_TYPE_COM, 0x10, 0x3f8, COM_FREQ },
860 		{ PUC_PORT_TYPE_LPT, 0x10, 0x000, 0x00 },
861 	    },
862 	},
863 
864 	/* Moxa Technologies Co., Ltd. PCI I/O Card 4S RS232/422/485 */
865 	{   "Moxa Technologies, Industio CP-114",
866 	    {	0x1393,	0x1141,	0,	0	},
867 	    {	0xffff,	0xffff,	0,	0,	},
868 	    {
869 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
870 		{ PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 },
871 		{ PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 },
872 		{ PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 },
873 	    },
874 	},
875 
876 	/* Moxa Technologies Co., Ltd. PCI I/O Card 8S RS232 */
877 	{   "Moxa Technologies, C168H/PCI",
878 	    {	0x1393,	0x1680,	0,	0	},
879 	    {	0xffff,	0xffff,	0,	0,	},
880 	    {
881 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
882 		{ PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 },
883 		{ PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 },
884 		{ PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 },
885 		{ PUC_PORT_TYPE_COM, 0x18, 0x20, COM_FREQ * 8 },
886 		{ PUC_PORT_TYPE_COM, 0x18, 0x28, COM_FREQ * 8 },
887 		{ PUC_PORT_TYPE_COM, 0x18, 0x30, COM_FREQ * 8 },
888 		{ PUC_PORT_TYPE_COM, 0x18, 0x38, COM_FREQ * 8 },
889 	    },
890 	},
891 
892 	{   "Avlab Technology, PCI IO 2S",
893 	    {	0x14db,	0x2130,	0,	0	},
894 	    {	0xffff,	0xffff,	0,	0	},
895 	    {
896 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
897 		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
898 	    },
899 	},
900 
901 	/* Avlab Technology, Inc. Low Profile PCI 4 Serial: 4S */
902 	{   "Avlab Low Profile PCI 4 Serial",
903 	    {	0x14db,	0x2150,	0,	0	},
904 	    {	0xffff,	0xffff,	0,	0	},
905 	    {
906 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
907 		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
908 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
909 		{ PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
910 	    },
911 	},
912 
913         /* Decision Computer Inc, serial ports */
914         {   "Decision Computer Inc, PCCOM 4-port serial",
915             {   0x6666, 0x0001, 0,      0       },
916             {   0xffff, 0xffff, 0,      0       },
917             {
918                 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
919                 { PUC_PORT_TYPE_COM, 0x1c, 0x08, COM_FREQ },
920                 { PUC_PORT_TYPE_COM, 0x1c, 0x10, COM_FREQ },
921                 { PUC_PORT_TYPE_COM, 0x1c, 0x18, COM_FREQ },
922             },
923         },
924 
925 	{   "PCCOM dual port RS232/422/485",
926 	    {	0x6666,	0x0004,	0,	0	},
927 	    {	0xffff,	0xffff,	0,	0	},
928 	    {
929 		{ PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
930 		{ PUC_PORT_TYPE_COM, 0x1c, 0x08, COM_FREQ },
931 	    },
932 	},
933 
934 	{   "IC Book Labs Dreadnought x16 Lite",
935 	    {	0xb00c, 0x091c, 0,	0	},
936 	    {   0xffff, 0xffff, 0,      0       },
937 	    {
938 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
939 		{ PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ },
940 		{ PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ },
941 		{ PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ },
942 		{ PUC_PORT_TYPE_COM, 0x10, 0x20, COM_FREQ },
943 		{ PUC_PORT_TYPE_COM, 0x10, 0x28, COM_FREQ },
944 		{ PUC_PORT_TYPE_COM, 0x10, 0x30, COM_FREQ },
945 		{ PUC_PORT_TYPE_COM, 0x10, 0x38, COM_FREQ },
946 		{ PUC_PORT_TYPE_COM, 0x10, 0x40, COM_FREQ },
947 		{ PUC_PORT_TYPE_COM, 0x10, 0x48, COM_FREQ },
948 		{ PUC_PORT_TYPE_COM, 0x10, 0x50, COM_FREQ },
949 		{ PUC_PORT_TYPE_COM, 0x10, 0x58, COM_FREQ },
950 		{ PUC_PORT_TYPE_COM, 0x10, 0x60, COM_FREQ },
951 		{ PUC_PORT_TYPE_COM, 0x10, 0x68, COM_FREQ },
952 		{ PUC_PORT_TYPE_COM, 0x10, 0x70, COM_FREQ },
953 		{ PUC_PORT_TYPE_COM, 0x10, 0x78, COM_FREQ },
954 	    },
955 	    PUC_ILR_TYPE_DIGI, { 0x07, 0x47 },
956 	},
957 
958 	{   "IC Book Labs Dreadnought x16 Pro",
959 	    {   0xb00c, 0x081c, 0,      0       },
960 	    {   0xffff, 0xffff, 0,      0       },
961 	    {
962 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8, 0x200000 },
963 		{ PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8, 0x200000 },
964 		{ PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 8, 0x200000 },
965 		{ PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 8, 0x200000 },
966 		{ PUC_PORT_TYPE_COM, 0x10, 0x20, COM_FREQ * 8, 0x200000 },
967 		{ PUC_PORT_TYPE_COM, 0x10, 0x28, COM_FREQ * 8, 0x200000 },
968 		{ PUC_PORT_TYPE_COM, 0x10, 0x30, COM_FREQ * 8, 0x200000 },
969 		{ PUC_PORT_TYPE_COM, 0x10, 0x38, COM_FREQ * 8, 0x200000 },
970 		{ PUC_PORT_TYPE_COM, 0x10, 0x40, COM_FREQ * 8, 0x200000 },
971 		{ PUC_PORT_TYPE_COM, 0x10, 0x48, COM_FREQ * 8, 0x200000 },
972 		{ PUC_PORT_TYPE_COM, 0x10, 0x50, COM_FREQ * 8, 0x200000 },
973 		{ PUC_PORT_TYPE_COM, 0x10, 0x58, COM_FREQ * 8, 0x200000 },
974 		{ PUC_PORT_TYPE_COM, 0x10, 0x60, COM_FREQ * 8, 0x200000 },
975 		{ PUC_PORT_TYPE_COM, 0x10, 0x68, COM_FREQ * 8, 0x200000 },
976 		{ PUC_PORT_TYPE_COM, 0x10, 0x70, COM_FREQ * 8, 0x200000 },
977 		{ PUC_PORT_TYPE_COM, 0x10, 0x78, COM_FREQ * 8, 0x200000 },
978 	    },
979 	    PUC_ILR_TYPE_DIGI, { 0x07, 0x47 },
980 	},
981 
982 	{ 0 }
983 };
984