xref: /netbsd-src/sys/dev/pci/pucdata.c (revision bcc8ec9959e7b01e313d813067bfb43a3ad70551)
1 /*	$NetBSD: pucdata.c,v 1.14 2001/01/04 11:34:27 bouyer 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 
33 /*
34  * PCI "universal" communications card driver configuration data (used to
35  * match/attach the cards).
36  */
37 
38 #include <sys/param.h>
39 #include <sys/systm.h>
40 #include <sys/device.h>
41 
42 #include <dev/pci/pcireg.h>
43 #include <dev/pci/pcivar.h>
44 #include <dev/pci/pucvar.h>
45 #include <dev/ic/comreg.h>
46 
47 const struct puc_device_description puc_devices[] = {
48 	/*
49 	 * XXX no entry because I have no data:
50 	 * XXX Dolphin Peripherals 4006 (single parallel)
51 	 */
52 
53 	/*
54 	 * Dolphin Peripherals 4014 (dual parallel port) card.  PLX 9050, with
55 	 * a seemingly-lame EEPROM setup that puts the Dolphin IDs
56 	 * into the subsystem fields, and claims that it's a
57 	 * network/misc (0x02/0x80) device.
58 	 */
59 	{   "Dolphin Peripherals 4014",
60 	    {	0x10b5,	0x9050,	0xd84d,	0x6810	},
61 	    {	0xffff,	0xffff,	0xffff,	0xffff	},
62 	    {
63 		{ PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 },
64 		{ PUC_PORT_TYPE_LPT, 0x24, 0x00, 0x00 },
65 	    },
66 	},
67 
68 	/*
69 	 * XXX no entry because I have no data:
70 	 * XXX Dolphin Peripherals 4025 (single serial)
71 	 */
72 
73 	/*
74 	 * Dolphin Peripherals 4035 (dual serial port) card.  PLX 9050, with
75 	 * a seemingly-lame EEPROM setup that puts the Dolphin IDs
76 	 * into the subsystem fields, and claims that it's a
77 	 * network/misc (0x02/0x80) device.
78 	 */
79 	{   "Dolphin Peripherals 4035",
80 	    {	0x10b5,	0x9050,	0xd84d,	0x6808	},
81 	    {	0xffff,	0xffff,	0xffff,	0xffff	},
82 	    {
83 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
84 		{ PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
85 	    },
86 	},
87 
88 	/*
89 	 * XXX no entry because I have no data:
90 	 * XXX Dolphin Peripherals 4078 (dual serial and single parallel)
91 	 */
92 
93 
94 	/*
95 	 * SIIG Boards.
96 	 *
97 	 * SIIG provides documentation for their boards at:
98 	 * <URL:http://www.siig.com/driver.htm>
99 	 *
100 	 * Please excuse the weird ordering, it's the order they
101 	 * use in their documentation.
102 	 */
103 
104 	/*
105 	 * SIIG "10x" family boards.
106 	 */
107 
108 	/* SIIG Cyber Serial PCI 16C550 (10x family): 1S */
109 	{   "SIIG Cyber Serial PCI 16C550 (10x family)",
110 	    {	0x131f,	0x1000,	0,	0	},
111 	    {	0xffff,	0xffff,	0,	0	},
112 	    {
113 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
114 	    },
115 	},
116 
117 	/* SIIG Cyber Serial PCI 16C650 (10x family): 1S */
118 	{   "SIIG Cyber Serial PCI 16C650 (10x family)",
119 	    {	0x131f,	0x1001,	0,	0	},
120 	    {	0xffff,	0xffff,	0,	0	},
121 	    {
122 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
123 	    },
124 	},
125 
126 	/* SIIG Cyber Serial PCI 16C850 (10x family): 1S */
127 	{   "SIIG Cyber Serial PCI 16C850 (10x family)",
128 	    {	0x131f,	0x1002,	0,	0	},
129 	    {	0xffff,	0xffff,	0,	0	},
130 	    {
131 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
132 	    },
133 	},
134 
135 	/* SIIG Cyber I/O PCI 16C550 (10x family): 1S, 1P */
136 	{   "SIIG Cyber I/O PCI 16C550 (10x family)",
137 	    {	0x131f,	0x1010,	0,	0	},
138 	    {	0xffff,	0xffff,	0,	0	},
139 	    {
140 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
141 		{ PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 },
142 	    },
143 	},
144 
145 	/* SIIG Cyber I/O PCI 16C650 (10x family): 1S, 1P */
146 	{   "SIIG Cyber I/O PCI 16C650 (10x family)",
147 	    {	0x131f,	0x1011,	0,	0	},
148 	    {	0xffff,	0xffff,	0,	0	},
149 	    {
150 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
151 		{ PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 },
152 	    },
153 	},
154 
155 	/* SIIG Cyber I/O PCI 16C850 (10x family): 1S, 1P */
156 	{   "SIIG Cyber I/O PCI 16C850 (10x family)",
157 	    {	0x131f,	0x1012,	0,	0	},
158 	    {	0xffff,	0xffff,	0,	0	},
159 	    {
160 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
161 		{ PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 },
162 	    },
163 	},
164 
165 	/* SIIG Cyber Parallel PCI (10x family): 1P */
166 	{   "SIIG Cyber Parallel PCI (10x family)",
167 	    {	0x131f,	0x1020,	0,	0	},
168 	    {	0xffff,	0xffff,	0,	0	},
169 	    {
170 		{ PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
171 	    },
172 	},
173 
174 	/* SIIG Cyber Parallel Dual PCI (10x family): 2P */
175 	{   "SIIG Cyber Parallel Dual PCI (10x family)",
176 	    {	0x131f,	0x1021,	0,	0	},
177 	    {	0xffff,	0xffff,	0,	0	},
178 	    {
179 		{ PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
180 		{ PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 },
181 	    },
182 	},
183 
184 	/* SIIG Cyber Serial Dual PCI 16C550 (10x family): 2S */
185 	{   "SIIG Cyber Serial Dual PCI 16C550 (10x family)",
186 	    {	0x131f,	0x1030,	0,	0	},
187 	    {	0xffff,	0xffff,	0,	0	},
188 	    {
189 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
190 		{ PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
191 	    },
192 	},
193 
194 	/* SIIG Cyber Serial Dual PCI 16C650 (10x family): 2S */
195 	{   "SIIG Cyber Serial Dual PCI 16C650 (10x family)",
196 	    {	0x131f,	0x1031,	0,	0	},
197 	    {	0xffff,	0xffff,	0,	0	},
198 	    {
199 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
200 		{ PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
201 	    },
202 	},
203 
204 	/* SIIG Cyber Serial Dual PCI 16C850 (10x family): 2S */
205 	{   "SIIG Cyber Serial Dual PCI 16C850 (10x family)",
206 	    {	0x131f,	0x1032,	0,	0	},
207 	    {	0xffff,	0xffff,	0,	0	},
208 	    {
209 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
210 		{ PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
211 	    },
212 	},
213 
214 	/* SIIG Cyber 2S1P PCI 16C550 (10x family): 2S, 1P */
215 	{   "SIIG Cyber 2S1P PCI 16C550 (10x family)",
216 	    {	0x131f,	0x1034,	0,	0	},	/* XXX really? */
217 	    {	0xffff,	0xffff,	0,	0	},
218 	    {
219 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
220 		{ PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
221 		{ PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 },
222 	    },
223 	},
224 
225 	/* SIIG Cyber 2S1P PCI 16C650 (10x family): 2S, 1P */
226 	{   "SIIG Cyber 2S1P PCI 16C650 (10x family)",
227 	    {	0x131f,	0x1035,	0,	0	},	/* XXX really? */
228 	    {	0xffff,	0xffff,	0,	0	},
229 	    {
230 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
231 		{ PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
232 		{ PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 },
233 	    },
234 	},
235 
236 	/* SIIG Cyber 2S1P PCI 16C850 (10x family): 2S, 1P */
237 	{   "SIIG Cyber 2S1P PCI 16C850 (10x family)",
238 	    {	0x131f,	0x1036,	0,	0	},	/* XXX really? */
239 	    {	0xffff,	0xffff,	0,	0	},
240 	    {
241 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
242 		{ PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
243 		{ PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 },
244 	    },
245 	},
246 
247 	/* SIIG Cyber 4S PCI 16C550 (10x family): 4S */
248 	{   "SIIG Cyber 4S PCI 16C550 (10x family)",
249 	    {	0x131f,	0x1050,	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 		{ PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ },
255 		{ PUC_PORT_TYPE_COM, 0x24, 0x00, COM_FREQ },
256 	    },
257 	},
258 
259 	/* SIIG Cyber 4S PCI 16C650 (10x family): 4S */
260 	{   "SIIG Cyber 4S PCI 16C650 (10x family)",
261 	    {	0x131f,	0x1051,	0,	0	},
262 	    {	0xffff,	0xffff,	0,	0	},
263 	    {
264 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
265 		{ PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
266 		{ PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ },
267 		{ PUC_PORT_TYPE_COM, 0x24, 0x00, COM_FREQ },
268 	    },
269 	},
270 
271 	/* SIIG Cyber 4S PCI 16C850 (10x family): 4S */
272 	{   "SIIG Cyber 4S PCI 16C850 (10x family)",
273 	    {	0x131f,	0x1052,	0,	0	},
274 	    {	0xffff,	0xffff,	0,	0	},
275 	    {
276 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
277 		{ PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
278 		{ PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ },
279 		{ PUC_PORT_TYPE_COM, 0x24, 0x00, COM_FREQ },
280 	    },
281 	},
282 
283 	/*
284 	 * SIIG "20x" family boards.
285 	 */
286 
287 	/* SIIG Cyber Parallel PCI (20x family): 1P */
288 	{   "SIIG Cyber Parallel PCI (20x family)",
289 	    {	0x131f,	0x2020,	0,	0	},
290 	    {	0xffff,	0xffff,	0,	0	},
291 	    {
292 		{ PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
293 	    },
294 	},
295 
296 	/* SIIG Cyber Parallel Dual PCI (20x family): 2P */
297 	{   "SIIG Cyber Parallel Dual PCI (20x family)",
298 	    {	0x131f,	0x2021,	0,	0	},
299 	    {	0xffff,	0xffff,	0,	0	},
300 	    {
301 		{ PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
302 		{ PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
303 	    },
304 	},
305 
306 	/* SIIG Cyber 2P1S PCI 16C550 (20x family): 1S, 2P */
307 	{   "SIIG Cyber 2P1S PCI 16C550 (20x family)",
308 	    {	0x131f,	0x2040,	0,	0	},
309 	    {	0xffff,	0xffff,	0,	0	},
310 	    {
311 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
312 		{ PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 },
313 		{ PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 },
314 	    },
315 	},
316 
317 	/* SIIG Cyber 2P1S PCI 16C650 (20x family): 1S, 2P */
318 	{   "SIIG Cyber 2P1S PCI 16C650 (20x family)",
319 	    {	0x131f,	0x2041,	0,	0	},
320 	    {	0xffff,	0xffff,	0,	0	},
321 	    {
322 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
323 		{ PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 },
324 		{ PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 },
325 	    },
326 	},
327 
328 	/* SIIG Cyber 2P1S PCI 16C850 (20x family): 1S, 2P */
329 	{   "SIIG Cyber 2P1S PCI 16C850 (20x family)",
330 	    {	0x131f,	0x2042,	0,	0	},
331 	    {	0xffff,	0xffff,	0,	0	},
332 	    {
333 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
334 		{ PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 },
335 		{ PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 },
336 	    },
337 	},
338 
339 	/* SIIG Cyber Serial PCI 16C550 (20x family): 1S */
340 	{   "SIIG Cyber Serial PCI 16C550 (20x family)",
341 	    {	0x131f,	0x2000,	0,	0	},
342 	    {	0xffff,	0xffff,	0,	0	},
343 	    {
344 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
345 	    },
346 	},
347 
348 	/* SIIG Cyber Serial PCI 16C650 (20x family): 1S */
349 	{   "SIIG Cyber Serial PCI 16C650 (20x family)",
350 	    {	0x131f,	0x2001,	0,	0	},
351 	    {	0xffff,	0xffff,	0,	0	},
352 	    {
353 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
354 	    },
355 	},
356 
357 	/* SIIG Cyber Serial PCI 16C850 (20x family): 1S */
358 	{   "SIIG Cyber Serial PCI 16C850 (20x family)",
359 	    {	0x131f,	0x2002,	0,	0	},
360 	    {	0xffff,	0xffff,	0,	0	},
361 	    {
362 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
363 	    },
364 	},
365 
366 	/* SIIG Cyber I/O PCI 16C550 (20x family): 1S, 1P */
367 	{   "SIIG Cyber I/O PCI 16C550 (20x family)",
368 	    {	0x131f,	0x2010,	0,	0	},
369 	    {	0xffff,	0xffff,	0,	0	},
370 	    {
371 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
372 		{ PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 },
373 	    },
374 	},
375 
376 	/* SIIG Cyber I/O PCI 16C650 (20x family): 1S, 1P */
377 	{   "SIIG Cyber I/O PCI 16C650 (20x family)",
378 	    {	0x131f,	0x2011,	0,	0	},
379 	    {	0xffff,	0xffff,	0,	0	},
380 	    {
381 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
382 		{ PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 },
383 	    },
384 	},
385 
386 	/* SIIG Cyber I/O PCI 16C850 (20x family): 1S, 1P */
387 	{   "SIIG Cyber I/O PCI 16C850 (20x family)",
388 	    {	0x131f,	0x2012,	0,	0	},
389 	    {	0xffff,	0xffff,	0,	0	},
390 	    {
391 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
392 		{ PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 },
393 	    },
394 	},
395 
396 	/* SIIG Cyber Serial Dual PCI 16C550 (20x family): 2S */
397 	{   "SIIG Cyber Serial Dual PCI 16C550 (20x family)",
398 	    {	0x131f,	0x2030,	0,	0	},
399 	    {	0xffff,	0xffff,	0,	0	},
400 	    {
401 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
402 		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
403 	    },
404 	},
405 
406 	/* SIIG Cyber Serial Dual PCI 16C650 (20x family): 2S */
407 	{   "SIIG Cyber Serial Dual PCI 16C650 (20x family)",
408 	    {	0x131f,	0x2031,	0,	0	},
409 	    {	0xffff,	0xffff,	0,	0	},
410 	    {
411 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
412 		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
413 	    },
414 	},
415 
416 	/* SIIG Cyber Serial Dual PCI 16C850 (20x family): 2S */
417 	{   "SIIG Cyber Serial Dual PCI 16C850 (20x family)",
418 	    {	0x131f,	0x2032,	0,	0	},
419 	    {	0xffff,	0xffff,	0,	0	},
420 	    {
421 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
422 		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
423 	    },
424 	},
425 
426 	/* SIIG Cyber 2S1P PCI 16C550 (20x family): 2S, 1P */
427 	{   "SIIG Cyber 2S1P PCI 16C550 (20x family)",
428 	    {	0x131f,	0x2060,	0,	0	},
429 	    {	0xffff,	0xffff,	0,	0	},
430 	    {
431 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
432 		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
433 		{ PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
434 	    },
435 	},
436 
437 	/* SIIG Cyber 2S1P PCI 16C650 (20x family): 2S, 1P */
438 	{   "SIIG Cyber 2S1P PCI 16C650 (20x family)",
439 	    {	0x131f,	0x2061,	0,	0	},
440 	    {	0xffff,	0xffff,	0,	0	},
441 	    {
442 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
443 		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
444 		{ PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
445 	    },
446 	},
447 
448 	/* SIIG Cyber 2S1P PCI 16C850 (20x family): 2S, 1P */
449 	{   "SIIG Cyber 2S1P PCI 16C850 (20x family)",
450 	    {	0x131f,	0x2062,	0,	0	},
451 	    {	0xffff,	0xffff,	0,	0	},
452 	    {
453 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
454 		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
455 		{ PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
456 	    },
457 	},
458 
459 	/* SIIG Cyber 4S PCI 16C550 (20x family): 4S */
460 	{   "SIIG Cyber 4S PCI 16C550 (20x family)",
461 	    {	0x131f,	0x2050,	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 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
467 		{ PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
468 	    },
469 	},
470 
471 	/* SIIG Cyber 4S PCI 16C650 (20x family): 4S */
472 	{   "SIIG Cyber 4S PCI 16C650 (20x family)",
473 	    {	0x131f,	0x2051,	0,	0	},
474 	    {	0xffff,	0xffff,	0,	0	},
475 	    {
476 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
477 		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
478 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
479 		{ PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
480 	    },
481 	},
482 
483 	/* SIIG Cyber 4S PCI 16C850 (20x family): 4S */
484 	{   "SIIG Cyber 4S PCI 16C850 (20x family)",
485 	    {	0x131f,	0x2052,	0,	0	},
486 	    {	0xffff,	0xffff,	0,	0	},
487 	    {
488 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
489 		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
490 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
491 		{ PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
492 	    },
493 	},
494 
495 
496 	/*
497 	 * VScom PCI-800, as sold on http://www.swann.com.au/isp/titan.html.
498 	 * Some PLX chip.  Note: This board has a software selectable(?)
499 	 * clock multiplier which this driver doesn't support, so you'll
500 	 * have to use an appropriately scaled baud rate when talking to
501 	 * the card.
502 	 */
503 	{   "VScom PCI-800",
504 	    {	0x10b5,	0x1076,	0x10b5,	0x1076	},
505 	    {	0xffff,	0xffff,	0xffff,	0xffff	},
506 	    {
507 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
508 		{ PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ },
509 		{ PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ },
510 		{ PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ },
511 		{ PUC_PORT_TYPE_COM, 0x18, 0x20, COM_FREQ },
512 		{ PUC_PORT_TYPE_COM, 0x18, 0x28, COM_FREQ },
513 		{ PUC_PORT_TYPE_COM, 0x18, 0x30, COM_FREQ },
514 		{ PUC_PORT_TYPE_COM, 0x18, 0x38, COM_FREQ },
515 	    },
516 	},
517 	/*
518 	 * VScom PCI-800H. Uses 8 16950 UART, behind a PCI chips that offers
519 	 * 4 com port on PCI device 0 and 4 on PCI device 1. PCI device 0 has
520 	 * device ID 3 and PCI device 1 device ID 4. Uses a 14.7456 Mhz crystal
521 	 * instead of the standart 1.8432Mhz.
522 	 */
523 	{   "VScom PCI-800H",
524 	    {	0x14d2,	0xa003,	0,	0	},
525 	    {	0xffff,	0xffff,	0,	0	},
526 	    {
527 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, 14745600 },
528 		{ PUC_PORT_TYPE_COM, 0x10, 0x08, 14745600 },
529 		{ PUC_PORT_TYPE_COM, 0x10, 0x10, 14745600 },
530 		{ PUC_PORT_TYPE_COM, 0x10, 0x18, 14745600 },
531 	    },
532 	},
533 	{   "VScom PCI-800H",
534 	    {	0x14d2,	0xa004,	0,	0	},
535 	    {	0xffff,	0xffff,	0,	0	},
536 	    {
537 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, 14745600 },
538 		{ PUC_PORT_TYPE_COM, 0x10, 0x08, 14745600 },
539 		{ PUC_PORT_TYPE_COM, 0x10, 0x10, 14745600 },
540 		{ PUC_PORT_TYPE_COM, 0x10, 0x18, 14745600 },
541 	    },
542 	},
543 
544 	/* NEC PK-UG-X001 K56flex PCI Modem card.
545 	   NEC MARTH bridge chip and Rockwell RCVDL56ACF/SP using. */
546 	{   "NEC PK-UG-X001 K56flex PCI Modem",
547 	    {	0x1033,	0x0074,	0x1033,	0x8014	},
548 	    {	0xffff,	0xffff,	0xffff,	0xffff	},
549 	    {
550 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
551 	    },
552 	},
553 
554 	/*NEC PK-UG-X008 */
555 	{   "NEC PK-UG-X008",
556 	    {	0x1033,	0x007d,	0x1033,	0x8012	},
557 	    {	0xffff,	0xffff,	0xffff,	0xffff	},
558 	    {
559 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ},
560 	    },
561 	},
562 
563 	/* Lava Computers 2SP-PCI */
564 	{   "Lava Computers 2SP-PCI parallel port",
565 	    {	0x1407,	0x8000,	0,	0	},
566 	    {	0xffff,	0xffff,	0,	0	},
567 	    {
568 		{ PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
569 	    },
570 	},
571 
572 	/* Lava Computers 2SP-PCI and Quattro-PCI serial ports */
573 	{   "Lava Computers dual serial port",
574 	    {	0x1407,	0x0100,	0,	0	},
575 	    {	0xffff,	0xfffc,	0,	0	},
576 	    {
577 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
578 		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
579 	    },
580 	},
581 
582 	/* US Robotics (3Com) PCI Modems */
583 	{   "US Robotics (3Com) 3CP5609 PCI 16550 Modem",
584 	    {	0x12b9,	0x1008,	0,	0	},
585 	    {	0xffff,	0xffff,	0,	0	},
586 	    {
587 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
588 	    },
589 	},
590 
591 	/* Actiontec  56K PCI Master */
592 	{   "Actiontec 56K PCI Master",
593 	    {	0x11c1,	0x0480,	0x0, 	0x0	},
594 	    {	0xffff,	0xffff,	0x0,	0x0	},
595 	    {
596 		{ PUC_PORT_TYPE_COM,	0x14,	0x00, COM_FREQ },
597 	    },
598 	},
599 
600 	/*
601 	 * Boards with an Oxford Semiconductor chip.
602 	 *
603 	 * Oxford Semiconductor provides documentation for their chip at:
604 	 * <URL:http://www.oxsemi.com/products/uarts/index.html>
605 	 *
606 	 * As sold by Kouwell <URL:http://www.kouwell.com/>.
607 	 * I/O Flex PCI I/O Card Model-223 with 4 serial and 1 parallel ports.
608 	 */
609 
610 	/* Oxford Semiconductor OX16PCI954 PCI UARTs */
611 	{   "Qxford Semiconductor OX16PCI954 UARTs",
612 	    {	0x1415,	0x9501,	0,	0	},
613 	    {	0xffff,	0xffff,	0,	0	},
614 	    {
615 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
616 		{ PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ },
617 		{ PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ },
618 		{ PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ },
619 	    },
620 	},
621 
622 	/* Oxford Semiconductor OX16PCI954 PCI Parallel port */
623 	{   "Qxford Semiconductor OX16PCI954 Parallel port",
624 	    {	0x1415,	0x9513,	0,	0	},
625 	    {	0xffff,	0xffff,	0,	0	},
626 	    {
627 		{ PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
628 	    },
629 	},
630 
631 	{ 0 }
632 };
633