M_NOWAIT work stage 1/999: Fix some boot-time misuses of M_NOWAIT -> M_WAITOK
[dragonfly.git] / sys / dev / misc / 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  * $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 };