]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - sys/dev/puc/pucdata.c
This commit was generated by cvs2svn to compensate for changes in r91830,
[FreeBSD/FreeBSD.git] / sys / dev / puc / pucdata.c
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
33 #include <sys/cdefs.h>
34 __FBSDID("$FreeBSD$");
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 #if __FreeBSD_version < 500000
44 #include <pci/pcireg.h>
45 #include <pci/pcivar.h>
46 #include <isa/sioreg.h>
47 #else
48 #include <dev/pci/pcireg.h>
49 #include <dev/pci/pcivar.h>
50 #include <dev/sio/sioreg.h>
51 #endif
52 #include <dev/puc/pucvar.h>
53
54 #define COM_FREQ        DEFAULT_RCLK
55
56 const struct puc_device_description puc_devices[] = {
57         /*
58          * XXX no entry because I have no data:
59          * XXX Dolphin Peripherals 4006 (single parallel)
60          */
61
62         /*
63          * Dolphin Peripherals 4014 (dual parallel port) card.  PLX 9050, with
64          * a seemingly-lame EEPROM setup that puts the Dolphin IDs
65          * into the subsystem fields, and claims that it's a
66          * network/misc (0x02/0x80) device.
67          */
68         {   "Dolphin Peripherals 4014",
69             {   0x10b5, 0x9050, 0xd84d, 0x6810  },
70             {   0xffff, 0xffff, 0xffff, 0xffff  },
71             {
72                 { PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 },
73                 { PUC_PORT_TYPE_LPT, 0x24, 0x00, 0x00 },
74             },
75         },
76
77         /*
78          * XXX Dolphin Peripherals 4025 (single serial)
79          * (clashes with Dolphin Peripherals  4036 (2s variant)
80          */
81
82         /*
83          * Dolphin Peripherals 4035 (dual serial port) card.  PLX 9050, with
84          * a seemingly-lame EEPROM setup that puts the Dolphin IDs
85          * into the subsystem fields, and claims that it's a
86          * network/misc (0x02/0x80) device.
87          */
88         {   "Dolphin Peripherals 4035",
89             {   0x10b5, 0x9050, 0xd84d, 0x6808  },
90             {   0xffff, 0xffff, 0xffff, 0xffff  },
91             {
92                 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
93                 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
94             },
95         },
96
97         /*
98          * Dolphin Peripherals 4036 (dual serial port) card.
99          * (Dolpin 4025 has the same ID but only one port)
100          */
101         {   "Dolphin Peripherals 4036",
102             {   0x1409, 0x7168, 0x0,    0x0     },
103             {   0xffff, 0xffff, 0x0,    0x0     },
104             {
105                 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8},
106                 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8},
107             },
108         },
109
110         /*
111          * XXX no entry because I have no data:
112          * XXX Dolphin Peripherals 4078 (dual serial and single parallel)
113          */
114
115
116         /*
117          * SIIG Boards.
118          *
119          * SIIG provides documentation for their boards at:
120          * <URL:http://www.siig.com/driver.htm>
121          *
122          * Please excuse the weird ordering, it's the order they
123          * use in their documentation.
124          */
125
126         /*
127          * SIIG "10x" family boards.
128          */
129
130         /* SIIG Cyber Serial PCI 16C550 (10x family): 1S */
131         {   "SIIG Cyber Serial PCI 16C550 (10x family)",
132             {   0x131f, 0x1000, 0,      0       },
133             {   0xffff, 0xffff, 0,      0       },
134             {
135                 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
136             },
137         },
138
139         /* SIIG Cyber Serial PCI 16C650 (10x family): 1S */
140         {   "SIIG Cyber Serial PCI 16C650 (10x family)",
141             {   0x131f, 0x1001, 0,      0       },
142             {   0xffff, 0xffff, 0,      0       },
143             {
144                 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
145             },
146         },
147
148         /* SIIG Cyber Serial PCI 16C850 (10x family): 1S */
149         {   "SIIG Cyber Serial PCI 16C850 (10x family)",
150             {   0x131f, 0x1002, 0,      0       },
151             {   0xffff, 0xffff, 0,      0       },
152             {
153                 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
154             },
155         },
156
157         /* SIIG Cyber I/O PCI 16C550 (10x family): 1S, 1P */
158         {   "SIIG Cyber I/O PCI 16C550 (10x family)",
159             {   0x131f, 0x1010, 0,      0       },
160             {   0xffff, 0xffff, 0,      0       },
161             {
162                 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
163                 { PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 },
164             },
165         },
166
167         /* SIIG Cyber I/O PCI 16C650 (10x family): 1S, 1P */
168         {   "SIIG Cyber I/O PCI 16C650 (10x family)",
169             {   0x131f, 0x1011, 0,      0       },
170             {   0xffff, 0xffff, 0,      0       },
171             {
172                 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
173                 { PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 },
174             },
175         },
176
177         /* SIIG Cyber I/O PCI 16C850 (10x family): 1S, 1P */
178         {   "SIIG Cyber I/O PCI 16C850 (10x family)",
179             {   0x131f, 0x1012, 0,      0       },
180             {   0xffff, 0xffff, 0,      0       },
181             {
182                 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
183                 { PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 },
184             },
185         },
186
187         /* SIIG Cyber Parallel PCI (10x family): 1P */
188         {   "SIIG Cyber Parallel PCI (10x family)",
189             {   0x131f, 0x1020, 0,      0       },
190             {   0xffff, 0xffff, 0,      0       },
191             {
192                 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
193             },
194         },
195
196         /* SIIG Cyber Parallel Dual PCI (10x family): 2P */
197         {   "SIIG Cyber Parallel Dual PCI (10x family)",
198             {   0x131f, 0x1021, 0,      0       },
199             {   0xffff, 0xffff, 0,      0       },
200             {
201                 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
202                 { PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 },
203             },
204         },
205
206         /* SIIG Cyber Serial Dual PCI 16C550 (10x family): 2S */
207         {   "SIIG Cyber Serial Dual PCI 16C550 (10x family)",
208             {   0x131f, 0x1030, 0,      0       },
209             {   0xffff, 0xffff, 0,      0       },
210             {
211                 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
212                 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
213             },
214         },
215
216         /* SIIG Cyber Serial Dual PCI 16C650 (10x family): 2S */
217         {   "SIIG Cyber Serial Dual PCI 16C650 (10x family)",
218             {   0x131f, 0x1031, 0,      0       },
219             {   0xffff, 0xffff, 0,      0       },
220             {
221                 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
222                 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
223             },
224         },
225
226         /* SIIG Cyber Serial Dual PCI 16C850 (10x family): 2S */
227         {   "SIIG Cyber Serial Dual PCI 16C850 (10x family)",
228             {   0x131f, 0x1032, 0,      0       },
229             {   0xffff, 0xffff, 0,      0       },
230             {
231                 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
232                 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
233             },
234         },
235
236         /* SIIG Cyber 2S1P PCI 16C550 (10x family): 2S, 1P */
237         {   "SIIG Cyber 2S1P PCI 16C550 (10x family)",
238             {   0x131f, 0x1034, 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 2S1P PCI 16C650 (10x family): 2S, 1P */
248         {   "SIIG Cyber 2S1P PCI 16C650 (10x family)",
249             {   0x131f, 0x1035, 0,      0       },      /* XXX really? */
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_LPT, 0x20, 0x00, 0x00 },
255             },
256         },
257
258         /* SIIG Cyber 2S1P PCI 16C850 (10x family): 2S, 1P */
259         {   "SIIG Cyber 2S1P PCI 16C850 (10x family)",
260             {   0x131f, 0x1036, 0,      0       },      /* XXX really? */
261             {   0xffff, 0xffff, 0,      0       },
262             {
263                 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
264                 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
265                 { PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 },
266             },
267         },
268
269         /* SIIG Cyber 4S PCI 16C550 (10x family): 4S */
270         {   "SIIG Cyber 4S PCI 16C550 (10x family)",
271             {   0x131f, 0x1050, 0,      0       },
272             {   0xffff, 0xffff, 0,      0       },
273             {
274                 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
275                 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
276                 { PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ },
277                 { PUC_PORT_TYPE_COM, 0x24, 0x00, COM_FREQ },
278             },
279         },
280
281         /* SIIG Cyber 4S PCI 16C650 (10x family): 4S */
282         {   "SIIG Cyber 4S PCI 16C650 (10x family)",
283             {   0x131f, 0x1051, 0,      0       },
284             {   0xffff, 0xffff, 0,      0       },
285             {
286                 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
287                 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
288                 { PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ },
289                 { PUC_PORT_TYPE_COM, 0x24, 0x00, COM_FREQ },
290             },
291         },
292
293         /* SIIG Cyber 4S PCI 16C850 (10x family): 4S */
294         {   "SIIG Cyber 4S PCI 16C850 (10x family)",
295             {   0x131f, 0x1052, 0,      0       },
296             {   0xffff, 0xffff, 0,      0       },
297             {
298                 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
299                 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
300                 { PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ },
301                 { PUC_PORT_TYPE_COM, 0x24, 0x00, COM_FREQ },
302             },
303         },
304
305         /*
306          * SIIG "20x" family boards.
307          */
308
309         /* SIIG Cyber Parallel PCI (20x family): 1P */
310         {   "SIIG Cyber Parallel PCI (20x family)",
311             {   0x131f, 0x2020, 0,      0       },
312             {   0xffff, 0xffff, 0,      0       },
313             {
314                 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
315             },
316         },
317
318         /* SIIG Cyber Parallel Dual PCI (20x family): 2P */
319         {   "SIIG Cyber Parallel Dual PCI (20x family)",
320             {   0x131f, 0x2021, 0,      0       },
321             {   0xffff, 0xffff, 0,      0       },
322             {
323                 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
324                 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
325             },
326         },
327
328         /* SIIG Cyber 2P1S PCI 16C550 (20x family): 1S, 2P */
329         {   "SIIG Cyber 2P1S PCI 16C550 (20x family)",
330             {   0x131f, 0x2040, 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 2P1S PCI 16C650 (20x family): 1S, 2P */
340         {   "SIIG Cyber 2P1S PCI 16C650 (20x family)",
341             {   0x131f, 0x2041, 0,      0       },
342             {   0xffff, 0xffff, 0,      0       },
343             {
344                 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
345                 { PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 },
346                 { PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 },
347             },
348         },
349
350         /* SIIG Cyber 2P1S PCI 16C850 (20x family): 1S, 2P */
351         {   "SIIG Cyber 2P1S PCI 16C850 (20x family)",
352             {   0x131f, 0x2042, 0,      0       },
353             {   0xffff, 0xffff, 0,      0       },
354             {
355                 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
356                 { PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 },
357                 { PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 },
358             },
359         },
360
361         /* SIIG Cyber Serial PCI 16C550 (20x family): 1S */
362         {   "SIIG Cyber Serial PCI 16C550 (20x family)",
363             {   0x131f, 0x2000, 0,      0       },
364             {   0xffff, 0xffff, 0,      0       },
365             {
366                 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
367             },
368         },
369
370         /* SIIG Cyber Serial PCI 16C650 (20x family): 1S */
371         {   "SIIG Cyber Serial PCI 16C650 (20x family)",
372             {   0x131f, 0x2001, 0,      0       },
373             {   0xffff, 0xffff, 0,      0       },
374             {
375                 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
376             },
377         },
378
379         /* SIIG Cyber Serial PCI 16C850 (20x family): 1S */
380         {   "SIIG Cyber Serial PCI 16C850 (20x family)",
381             {   0x131f, 0x2002, 0,      0       },
382             {   0xffff, 0xffff, 0,      0       },
383             {
384                 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
385             },
386         },
387
388         /* SIIG Cyber I/O PCI 16C550 (20x family): 1S, 1P */
389         {   "SIIG Cyber I/O PCI 16C550 (20x family)",
390             {   0x131f, 0x2010, 0,      0       },
391             {   0xffff, 0xffff, 0,      0       },
392             {
393                 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
394                 { PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 },
395             },
396         },
397
398         /* SIIG Cyber I/O PCI 16C650 (20x family): 1S, 1P */
399         {   "SIIG Cyber I/O PCI 16C650 (20x family)",
400             {   0x131f, 0x2011, 0,      0       },
401             {   0xffff, 0xffff, 0,      0       },
402             {
403                 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
404                 { PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 },
405             },
406         },
407
408         /* SIIG Cyber I/O PCI 16C850 (20x family): 1S, 1P */
409         {   "SIIG Cyber I/O PCI 16C850 (20x family)",
410             {   0x131f, 0x2012, 0,      0       },
411             {   0xffff, 0xffff, 0,      0       },
412             {
413                 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
414                 { PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 },
415             },
416         },
417
418         /* SIIG Cyber Serial Dual PCI 16C550 (20x family): 2S */
419         {   "SIIG Cyber Serial Dual PCI 16C550 (20x family)",
420             {   0x131f, 0x2030, 0,      0       },
421             {   0xffff, 0xffff, 0,      0       },
422             {
423                 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
424                 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
425             },
426         },
427
428         /* SIIG Cyber Serial Dual PCI 16C650 (20x family): 2S */
429         {   "SIIG Cyber Serial Dual PCI 16C650 (20x family)",
430             {   0x131f, 0x2031, 0,      0       },
431             {   0xffff, 0xffff, 0,      0       },
432             {
433                 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
434                 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
435             },
436         },
437
438         /* SIIG Cyber Serial Dual PCI 16C850 (20x family): 2S */
439         {   "SIIG Cyber Serial Dual PCI 16C850 (20x family)",
440             {   0x131f, 0x2032, 0,      0       },
441             {   0xffff, 0xffff, 0,      0       },
442             {
443                 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
444                 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
445             },
446         },
447
448         /* SIIG Cyber 2S1P PCI 16C550 (20x family): 2S, 1P */
449         {   "SIIG Cyber 2S1P PCI 16C550 (20x family)",
450             {   0x131f, 0x2060, 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 2S1P PCI 16C650 (20x family): 2S, 1P */
460         {   "SIIG Cyber 2S1P PCI 16C650 (20x family)",
461             {   0x131f, 0x2061, 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_LPT, 0x18, 0x00, 0x00 },
467             },
468         },
469
470         /* SIIG Cyber 2S1P PCI 16C850 (20x family): 2S, 1P */
471         {   "SIIG Cyber 2S1P PCI 16C850 (20x family)",
472             {   0x131f, 0x2062, 0,      0       },
473             {   0xffff, 0xffff, 0,      0       },
474             {
475                 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
476                 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
477                 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
478             },
479         },
480
481         /* SIIG Cyber 4S PCI 16C550 (20x family): 4S */
482         {   "SIIG Cyber 4S PCI 16C550 (20x family)",
483             {   0x131f, 0x2050, 0,      0       },
484             {   0xffff, 0xffff, 0,      0       },
485             {
486                 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
487                 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
488                 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
489                 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
490             },
491         },
492
493         /* SIIG Cyber 4S PCI 16C650 (20x family): 4S */
494         {   "SIIG Cyber 4S PCI 16C650 (20x family)",
495             {   0x131f, 0x2051, 0,      0       },
496             {   0xffff, 0xffff, 0,      0       },
497             {
498                 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
499                 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
500                 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
501                 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
502             },
503         },
504
505         /* SIIG Cyber 4S PCI 16C850 (20x family): 4S */
506         {   "SIIG Cyber 4S PCI 16C850 (20x family)",
507             {   0x131f, 0x2052, 0,      0       },
508             {   0xffff, 0xffff, 0,      0       },
509             {
510                 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
511                 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
512                 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
513                 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
514             },
515         },
516
517         /* VScom PCI-400: 4S */
518         {   "VScom PCI-400",
519             {   0x10b5, 0x1077, 0x10b5, 0x1077  },
520             {   0xffff, 0xffff, 0xffff, 0xffff  },
521             {
522                 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
523                 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 },
524                 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 },
525                 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 },
526             },
527         },
528
529         /* VScom PCI-800: 8S */
530         {   "VScom PCI-800",
531             {   0x10b5, 0x1076, 0x10b5, 0x1076  },
532             {   0xffff, 0xffff, 0xffff, 0xffff  },
533             {
534                 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
535                 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 },
536                 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 },
537                 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 },
538                 { PUC_PORT_TYPE_COM, 0x18, 0x20, COM_FREQ * 8 },
539                 { PUC_PORT_TYPE_COM, 0x18, 0x28, COM_FREQ * 8 },
540                 { PUC_PORT_TYPE_COM, 0x18, 0x30, COM_FREQ * 8 },
541                 { PUC_PORT_TYPE_COM, 0x18, 0x38, COM_FREQ * 8 },
542             },
543         },
544         /*
545          * VScom PCI-800H. Uses 8 16950 UART, behind a PCI chips that offers
546          * 4 com port on PCI device 0 and 4 on PCI device 1. PCI device 0 has
547          * device ID 3 and PCI device 1 device ID 4.
548          */
549         {   "Titan PCI-800H",
550             {   0x14d2, 0xa003, 0,      0       },
551             {   0xffff, 0xffff, 0,      0       },
552             {
553                 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 },
554                 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8 },
555                 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 8 },
556                 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 8 },
557             },
558         },
559         {   "Titan PCI-800H",
560             {   0x14d2, 0xa004, 0,      0       },
561             {   0xffff, 0xffff, 0,      0       },
562             {
563                 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 },
564                 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8 },
565                 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 8 },
566                 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 8 },
567             },
568         },
569         {   "Titan PCI-200H",
570             {   0x14d2, 0xa005, 0,      0       },
571             {   0xffff, 0xffff, 0,      0       },
572             {
573                 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 },
574                 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8 },
575             },
576         },
577
578         /* NEC PK-UG-X001 K56flex PCI Modem card.
579            NEC MARTH bridge chip and Rockwell RCVDL56ACF/SP using. */
580         {   "NEC PK-UG-X001 K56flex PCI Modem",
581             {   0x1033, 0x0074, 0x1033, 0x8014  },
582             {   0xffff, 0xffff, 0xffff, 0xffff  },
583             {
584                 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
585             },
586         },
587
588         /* NEC PK-UG-X008 */
589         {   "NEC PK-UG-X008",
590             {   0x1033, 0x007d, 0x1033, 0x8012  },
591             {   0xffff, 0xffff, 0xffff, 0xffff  },
592             {
593                 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ},
594             },
595         },
596
597         /* Lava Computers 2SP-PCI */
598         {   "Lava Computers 2SP-PCI parallel port",
599             {   0x1407, 0x8000, 0,      0       },
600             {   0xffff, 0xffff, 0,      0       },
601             {
602                 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
603             },
604         },
605
606         /* Lava Computers 2SP-PCI and Quattro-PCI serial ports */
607         {   "Lava Computers dual serial port",
608             {   0x1407, 0x0100, 0,      0       },
609             {   0xffff, 0xfffc, 0,      0       },
610             {
611                 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
612                 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
613             },
614         },
615
616         /* Lava Computers DSerial PCI serial ports */
617         {   "Lava Computers serial port",
618             {   0x1407, 0x0110, 0,      0       },
619             {   0xffff, 0xfffc, 0,      0       },
620             {
621                 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
622             },
623         },
624
625         /* Lava Computers Octopus-550 serial ports */
626         {   "Lava Computers Octopus-550 8-port serial",
627             {   0x1407, 0x0180, 0,      0       },
628             {   0xffff, 0xfffc, 0,      0       },
629             {
630                 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
631                 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
632                 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
633                 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
634             },
635         },
636
637         /* US Robotics (3Com) PCI Modems */
638         {   "US Robotics (3Com) 3CP5609 PCI 16550 Modem",
639             {   0x12b9, 0x1008, 0,      0       },
640             {   0xffff, 0xffff, 0,      0       },
641             {
642                 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
643             },
644         },
645
646         /* Actiontec  56K PCI Master */
647         {   "Actiontec 56K PCI Master",
648             {   0x11c1, 0x0480, 0x0,    0x0     },
649             {   0xffff, 0xffff, 0x0,    0x0     },
650             {
651                 { PUC_PORT_TYPE_COM,    0x14,   0x00, COM_FREQ },
652             },
653         },
654
655         /*
656          * Boards with an Oxford Semiconductor chip.
657          *
658          * Oxford Semiconductor provides documentation for their chip at:
659          * <URL:http://www.oxsemi.com/products/uarts/index.html>
660          *
661          * As sold by Kouwell <URL:http://www.kouwell.com/>.
662          * I/O Flex PCI I/O Card Model-223 with 4 serial and 1 parallel ports.
663          */
664
665         /* Oxford Semiconductor OX16PCI954 PCI UARTs */
666         {   "Qxford Semiconductor OX16PCI954 UARTs",
667             {   0x1415, 0x9501, 0,      0       },
668             {   0xffff, 0xffff, 0,      0       },
669             {
670                 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
671                 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ },
672                 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ },
673                 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ },
674             },
675         },
676
677         /* Oxford Semiconductor OX16PCI954 PCI Parallel port */
678         {   "Qxford Semiconductor OX16PCI954 Parallel port",
679             {   0x1415, 0x9513, 0,      0       },
680             {   0xffff, 0xffff, 0,      0       },
681             {
682                 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
683             },
684         },
685
686         /* NetMos 2S1P PCI 16C650 : 2S, 1P */
687         {   "NetMos NM9835 Dual UART and 1284 Printer port",
688             {   0x9710, 0x9835, 0,      0       },
689             {   0xffff, 0xffff, 0,      0       },
690             {
691                 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
692                 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
693                 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
694             },
695         },
696
697         /*
698          * This is the Middle Digital, Inc. PCI-Weasel, which
699          * uses a PCI interface implemented in FPGA.
700          */
701         {   "Middle Digital, Inc. Weasel serial port",
702             {   0xdeaf, 0x9051, 0,      0       },
703             {   0xffff, 0xffff, 0,      0       },
704             {
705                 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
706             },
707         },
708
709         /* SD-LAB PCI I/O Card 4S2P */
710         {   "Syba Tech Ltd. PCI-4S2P-550-ECP",
711             {   0x1592, 0x0781, 0,      0       },
712             {   0xffff, 0xffff, 0,      0       },
713             {
714                 { PUC_PORT_TYPE_COM, 0x10, 0x2e8, COM_FREQ },
715                 { PUC_PORT_TYPE_COM, 0x10, 0x2f8, COM_FREQ },
716                 { PUC_PORT_TYPE_LPT, 0x10, 0x000, 0x00 },
717                 { PUC_PORT_TYPE_COM, 0x10, 0x3e8, COM_FREQ },
718                 { PUC_PORT_TYPE_COM, 0x10, 0x3f8, COM_FREQ },
719                 { PUC_PORT_TYPE_LPT, 0x10, 0x000, 0x00 },
720             },
721         },
722
723         /* Moxa Technologies Co., Ltd. PCI I/O Card 4S RS232/422/485 */
724         {   "Moxa Technologies, Industio CP-114",
725             {   0x1393, 0x1141, 0,      0       },
726             {   0xffff, 0xffff, 0,      0,      },
727             {
728                 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
729                 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 },
730                 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 },
731                 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 },
732             },
733         },
734
735         /* Moxa Technologies Co., Ltd. PCI I/O Card 8S RS232 */
736         {   "Moxa Technologies, C168H/PCI",
737             {   0x1393, 0x1680, 0,      0       },
738             {   0xffff, 0xffff, 0,      0,      },
739             {
740                 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
741                 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 },
742                 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 },
743                 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 },
744                 { PUC_PORT_TYPE_COM, 0x18, 0x20, COM_FREQ * 8 },
745                 { PUC_PORT_TYPE_COM, 0x18, 0x28, COM_FREQ * 8 },
746                 { PUC_PORT_TYPE_COM, 0x18, 0x30, COM_FREQ * 8 },
747                 { PUC_PORT_TYPE_COM, 0x18, 0x38, COM_FREQ * 8 },
748             },
749         },
750
751         {   "Avlab Technology, PCI IO 2S",
752             {   0x14db, 0x2130, 0,      0       },
753             {   0xffff, 0xffff, 0,      0       },
754             {
755                 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
756                 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
757             },
758         },
759
760         { 0 }
761 };