]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - sys/dev/puc/pucdata.c
This commit was generated by cvs2svn to compensate for changes in r100928,
[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 #include <dev/pci/pcireg.h>
44 #include <dev/pci/pcivar.h>
45 #include <dev/sio/sioreg.h>
46 #include <dev/puc/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-400: 4S */
627         {   "VScom PCI-400",
628             {   0x10b5, 0x1077, 0x10b5, 0x1077  },
629             {   0xffff, 0xffff, 0xffff, 0xffff  },
630             {
631                 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
632                 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 },
633                 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 },
634                 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 },
635             },
636         },
637
638         /* VScom PCI-800: 8S */
639         {   "VScom PCI-800",
640             {   0x10b5, 0x1076, 0x10b5, 0x1076  },
641             {   0xffff, 0xffff, 0xffff, 0xffff  },
642             {
643                 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
644                 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 },
645                 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 },
646                 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 },
647                 { PUC_PORT_TYPE_COM, 0x18, 0x20, COM_FREQ * 8 },
648                 { PUC_PORT_TYPE_COM, 0x18, 0x28, COM_FREQ * 8 },
649                 { PUC_PORT_TYPE_COM, 0x18, 0x30, COM_FREQ * 8 },
650                 { PUC_PORT_TYPE_COM, 0x18, 0x38, COM_FREQ * 8 },
651             },
652         },
653         /*
654          * VScom PCI-800H. Uses 8 16950 UART, behind a PCI chips that offers
655          * 4 com port on PCI device 0 and 4 on PCI device 1. PCI device 0 has
656          * device ID 3 and PCI device 1 device ID 4.
657          */
658         {   "Titan PCI-800H",
659             {   0x14d2, 0xa003, 0,      0       },
660             {   0xffff, 0xffff, 0,      0       },
661             {
662                 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 },
663                 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8 },
664                 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 8 },
665                 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 8 },
666             },
667         },
668         {   "Titan PCI-800H",
669             {   0x14d2, 0xa004, 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-200H",
679             {   0x14d2, 0xa005, 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             },
685         },
686
687         /* NEC PK-UG-X001 K56flex PCI Modem card.
688            NEC MARTH bridge chip and Rockwell RCVDL56ACF/SP using. */
689         {   "NEC PK-UG-X001 K56flex PCI Modem",
690             {   0x1033, 0x0074, 0x1033, 0x8014  },
691             {   0xffff, 0xffff, 0xffff, 0xffff  },
692             {
693                 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
694             },
695         },
696
697         /* NEC PK-UG-X008 */
698         {   "NEC PK-UG-X008",
699             {   0x1033, 0x007d, 0x1033, 0x8012  },
700             {   0xffff, 0xffff, 0xffff, 0xffff  },
701             {
702                 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ},
703             },
704         },
705
706         /* Lava Computers 2SP-PCI */
707         {   "Lava Computers 2SP-PCI parallel port",
708             {   0x1407, 0x8000, 0,      0       },
709             {   0xffff, 0xffff, 0,      0       },
710             {
711                 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
712             },
713         },
714
715         /* Lava Computers 2SP-PCI and Quattro-PCI serial ports */
716         {   "Lava Computers dual serial port",
717             {   0x1407, 0x0100, 0,      0       },
718             {   0xffff, 0xfffc, 0,      0       },
719             {
720                 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
721                 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
722             },
723         },
724
725         /* Lava Computers newer Quattro-PCI serial ports */
726         {   "Lava Computers Quattro-PCI serial port",
727             {   0x1407, 0x0120, 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 DSerial PCI serial ports */
736         {   "Lava Computers serial port",
737             {   0x1407, 0x0110, 0,      0       },
738             {   0xffff, 0xfffc, 0,      0       },
739             {
740                 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
741             },
742         },
743
744         /* Lava Computers Octopus-550 serial ports */
745         {   "Lava Computers Octopus-550 8-port serial",
746             {   0x1407, 0x0180, 0,      0       },
747             {   0xffff, 0xfffc, 0,      0       },
748             {
749                 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
750                 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
751                 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
752                 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
753             },
754         },
755
756         /* US Robotics (3Com) PCI Modems */
757         {   "US Robotics (3Com) 3CP5609 PCI 16550 Modem",
758             {   0x12b9, 0x1008, 0,      0       },
759             {   0xffff, 0xffff, 0,      0       },
760             {
761                 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
762             },
763         },
764
765         /* Actiontec  56K PCI Master */
766         {   "Actiontec 56K PCI Master",
767             {   0x11c1, 0x0480, 0x0,    0x0     },
768             {   0xffff, 0xffff, 0x0,    0x0     },
769             {
770                 { PUC_PORT_TYPE_COM,    0x14,   0x00, COM_FREQ },
771             },
772         },
773
774         /*
775          * Boards with an Oxford Semiconductor chip.
776          *
777          * Oxford Semiconductor provides documentation for their chip at:
778          * <URL:http://www.oxsemi.com/products/uarts/index.html>
779          *
780          * As sold by Kouwell <URL:http://www.kouwell.com/>.
781          * I/O Flex PCI I/O Card Model-223 with 4 serial and 1 parallel ports.
782          */
783
784         /* Oxford Semiconductor OX16PCI954 PCI UARTs */
785         {   "Qxford Semiconductor OX16PCI954 UARTs",
786             {   0x1415, 0x9501, 0,      0       },
787             {   0xffff, 0xffff, 0,      0       },
788             {
789                 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
790                 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ },
791                 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ },
792                 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ },
793             },
794         },
795
796         /* Oxford Semiconductor OX16PCI954 PCI Parallel port */
797         {   "Qxford Semiconductor OX16PCI954 Parallel port",
798             {   0x1415, 0x9513, 0,      0       },
799             {   0xffff, 0xffff, 0,      0       },
800             {
801                 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
802             },
803         },
804
805         /* NetMos 2S1P PCI 16C650 : 2S, 1P */
806         {   "NetMos NM9835 Dual UART and 1284 Printer port",
807             {   0x9710, 0x9835, 0,      0       },
808             {   0xffff, 0xffff, 0,      0       },
809             {
810                 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
811                 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
812                 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
813             },
814         },
815
816         /*
817          * This is the Middle Digital, Inc. PCI-Weasel, which
818          * uses a PCI interface implemented in FPGA.
819          */
820         {   "Middle Digital, Inc. Weasel serial port",
821             {   0xdeaf, 0x9051, 0,      0       },
822             {   0xffff, 0xffff, 0,      0       },
823             {
824                 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
825             },
826         },
827
828         /* SD-LAB PCI I/O Card 4S2P */
829         {   "Syba Tech Ltd. PCI-4S2P-550-ECP",
830             {   0x1592, 0x0781, 0,      0       },
831             {   0xffff, 0xffff, 0,      0       },
832             {
833                 { PUC_PORT_TYPE_COM, 0x10, 0x2e8, COM_FREQ },
834                 { PUC_PORT_TYPE_COM, 0x10, 0x2f8, COM_FREQ },
835                 { PUC_PORT_TYPE_LPT, 0x10, 0x000, 0x00 },
836                 { PUC_PORT_TYPE_COM, 0x10, 0x3e8, COM_FREQ },
837                 { PUC_PORT_TYPE_COM, 0x10, 0x3f8, COM_FREQ },
838                 { PUC_PORT_TYPE_LPT, 0x10, 0x000, 0x00 },
839             },
840         },
841
842         /* Moxa Technologies Co., Ltd. PCI I/O Card 4S RS232/422/485 */
843         {   "Moxa Technologies, Industio CP-114",
844             {   0x1393, 0x1141, 0,      0       },
845             {   0xffff, 0xffff, 0,      0,      },
846             {
847                 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
848                 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 },
849                 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 },
850                 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 },
851             },
852         },
853
854         /* Moxa Technologies Co., Ltd. PCI I/O Card 8S RS232 */
855         {   "Moxa Technologies, C168H/PCI",
856             {   0x1393, 0x1680, 0,      0       },
857             {   0xffff, 0xffff, 0,      0,      },
858             {
859                 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
860                 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 },
861                 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 },
862                 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 },
863                 { PUC_PORT_TYPE_COM, 0x18, 0x20, COM_FREQ * 8 },
864                 { PUC_PORT_TYPE_COM, 0x18, 0x28, COM_FREQ * 8 },
865                 { PUC_PORT_TYPE_COM, 0x18, 0x30, COM_FREQ * 8 },
866                 { PUC_PORT_TYPE_COM, 0x18, 0x38, COM_FREQ * 8 },
867             },
868         },
869
870         {   "Avlab Technology, PCI IO 2S",
871             {   0x14db, 0x2130, 0,      0       },
872             {   0xffff, 0xffff, 0,      0       },
873             {
874                 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
875                 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
876             },
877         },
878
879         /* Decision Computer Inc, serial ports */
880         {   "Decision Computer Inc, PCCOM 4-port serial",
881             {   0x6666, 0x0001, 0,      0       },
882             {   0xffff, 0xffff, 0,      0       },
883             {
884                 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
885                 { PUC_PORT_TYPE_COM, 0x1c, 0x08, COM_FREQ },
886                 { PUC_PORT_TYPE_COM, 0x1c, 0x10, COM_FREQ },
887                 { PUC_PORT_TYPE_COM, 0x1c, 0x18, COM_FREQ },
888             },
889         },
890
891         {   "PCCOM dual port RS232/422/485",
892             {   0x6666, 0x0004, 0,      0       },
893             {   0xffff, 0xffff, 0,      0       },
894             {
895                 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
896                 { PUC_PORT_TYPE_COM, 0x1c, 0x08, COM_FREQ },
897             },
898         },
899
900         { 0 }
901 };