pucdata.c revision 1.64 1 /* $NetBSD: pucdata.c,v 1.64 2010/07/08 08:49:54 msaitoh Exp $ */
2
3 /*
4 * Copyright (c) 1998, 1999 Christopher G. Demetriou. All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:
9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer.
11 * 2. Redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in the
13 * documentation and/or other materials provided with the distribution.
14 * 3. All advertising materials mentioning features or use of this software
15 * must display the following acknowledgement:
16 * This product includes software developed by Christopher G. Demetriou
17 * for the NetBSD Project.
18 * 4. The name of the author may not be used to endorse or promote products
19 * derived from this software without specific prior written permission
20 *
21 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
22 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
23 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
24 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
25 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
26 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
30 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31 */
32
33 /*
34 * PCI "universal" communications card driver configuration data (used to
35 * match/attach the cards).
36 */
37
38 #include <sys/cdefs.h>
39 __KERNEL_RCSID(0, "$NetBSD: pucdata.c,v 1.64 2010/07/08 08:49:54 msaitoh Exp $");
40
41 #include <sys/param.h>
42 #include <sys/systm.h>
43 #include <sys/device.h>
44
45 #include <dev/pci/pcidevs.h>
46 #include <dev/pci/pcireg.h>
47 #include <dev/pci/pcivar.h>
48 #include <dev/pci/pucvar.h>
49 #include <dev/ic/comreg.h>
50
51 const struct puc_device_description puc_devices[] = {
52 /*
53 * Advantech multi serial cards
54 */
55 { "Advantech PCI-1610 UARTs",
56 { PCI_VENDOR_ADVANTECH, PCI_PRODUCT_ADVANTECH_PCI1600,
57 PCI_PRODUCT_ADVANTECH_PCI1610, 0x0 },
58 { 0xffff, 0xffff, 0xffff, 0x0 },
59 {
60 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 },
61 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8 },
62 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 8 },
63 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 8 },
64 },
65 },
66
67 { "Advantech PCI-1612 UARTs",
68 { PCI_VENDOR_ADVANTECH, PCI_PRODUCT_ADVANTECH_PCI1600,
69 PCI_PRODUCT_ADVANTECH_PCI1612, 0x0 },
70 { 0xffff, 0xffff, 0xffff, 0x0 },
71 {
72 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 },
73 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8 },
74 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 8 },
75 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 8 },
76 },
77 },
78
79 /* The use of subvendor ID is bit strange... */
80 { "Advantech PCI-1620 (1-4) UARTs",
81 { PCI_VENDOR_ADVANTECH, PCI_PRODUCT_ADVANTECH_PCI1600,
82 PCI_PRODUCT_ADVANTECH_PCI1620, 0x0 },
83 { 0xffff, 0xffff, 0xffff, 0x0 },
84 {
85 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 },
86 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8 },
87 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 8 },
88 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 8 },
89 },
90 },
91
92 /* The use of subvendor ID is bit strange... */
93 { "Advantech PCI-1620 (5-8) UARTs",
94 { PCI_VENDOR_ADVANTECH, PCI_PRODUCT_ADVANTECH_PCI1620_1,
95 PCI_PRODUCT_ADVANTECH_PCI1620, 0x0 },
96 { 0xffff, 0xffff, 0xffff, 0x0 },
97 {
98 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 },
99 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8 },
100 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 8 },
101 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 8 },
102 },
103 },
104
105 /*
106 * Addi-Data APCI-7800 8-port serial card.
107 * Uses an AMCC chip as PCI bridge.
108 */
109 { "Addi-Data APCI-7800",
110 { PCI_VENDOR_AMCIRCUITS, 0x818e, 0, 0 },
111 { 0xffff, 0xffff, 0, 0 },
112 {
113 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
114 { PUC_PORT_TYPE_COM, 0x14, 0x08, COM_FREQ },
115 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
116 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ },
117 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
118 { PUC_PORT_TYPE_COM, 0x1c, 0x08, COM_FREQ },
119 { PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ },
120 { PUC_PORT_TYPE_COM, 0x20, 0x08, COM_FREQ },
121 },
122 },
123
124 /* Avlab Technology, Inc. Low Profile PCI 4 Serial: 4S */
125 { "Avlab Low Profile PCI 4 Serial",
126 { PCI_VENDOR_AVLAB, 0x2150, 0, 0 },
127 { 0xffff, 0xffff, 0, 0 },
128 {
129 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
130 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
131 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
132 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
133 },
134 },
135
136 /*
137 * B&B Electronics MIPort Serial cards.
138 */
139 { "BBELEC ISOLATED_2_PORT",
140 { PCI_VENDOR_BBELEC, PCI_PRODUCT_BBELEC_ISOLATED_2_PORT, 0, 0 },
141 { 0xffff, 0xffff, 0, 0 },
142 {
143 { PUC_PORT_TYPE_COM, 0x10, 0x0000, COM_FREQ * 8 },
144 { PUC_PORT_TYPE_COM, 0x10, 0x0200, COM_FREQ * 8 },
145 },
146 },
147 { "BBELEC ISOLATED_4_PORT",
148 { PCI_VENDOR_BBELEC, PCI_PRODUCT_BBELEC_ISOLATED_4_PORT, 0, 0 },
149 { 0xffff, 0xffff, 0, 0 },
150 {
151 { PUC_PORT_TYPE_COM, 0x10, 0x0000, COM_FREQ * 8 },
152 { PUC_PORT_TYPE_COM, 0x10, 0x0200, COM_FREQ * 8 },
153 { PUC_PORT_TYPE_COM, 0x10, 0x0400, COM_FREQ * 8 },
154 { PUC_PORT_TYPE_COM, 0x10, 0x0600, COM_FREQ * 8 },
155 },
156 },
157 { "BBELEC ISOLATED_8_PORT",
158 { PCI_VENDOR_BBELEC, PCI_PRODUCT_BBELEC_ISOLATED_8_PORT, 0, 0 },
159 { 0xffff, 0xffff, 0, 0 },
160 {
161 { PUC_PORT_TYPE_COM, 0x10, 0x0000, COM_FREQ * 8 },
162 { PUC_PORT_TYPE_COM, 0x10, 0x0200, COM_FREQ * 8 },
163 { PUC_PORT_TYPE_COM, 0x10, 0x0400, COM_FREQ * 8 },
164 { PUC_PORT_TYPE_COM, 0x10, 0x0600, COM_FREQ * 8 },
165 { PUC_PORT_TYPE_COM, 0x10, 0x0800, COM_FREQ * 8 },
166 { PUC_PORT_TYPE_COM, 0x10, 0x0a00, COM_FREQ * 8 },
167 { PUC_PORT_TYPE_COM, 0x10, 0x0c00, COM_FREQ * 8 },
168 { PUC_PORT_TYPE_COM, 0x10, 0x0e00, COM_FREQ * 8 },
169 },
170 },
171
172 /*
173 * Decision PCCOM PCI series. PLX 9052 with 1 or 2 16554 UARTS
174 */
175 /* Decision Computer Inc PCCOM 2 Port RS232/422/485: 2S */
176 { "Decision Computer Inc PCCOM 2 Port RS232/422/485",
177 { PCI_VENDOR_DCI, PCI_PRODUCT_DCI_APCI2, 0x0, 0x0 },
178 { 0xffff, 0xffff, 0x0, 0x0 },
179 {
180 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ},
181 { PUC_PORT_TYPE_COM, 0x1c, 0x08, COM_FREQ},
182 },
183 },
184
185 /* Decision Computer Inc PCCOM 4 Port RS232/422/485: 4S */
186 { "Decision Computer Inc PCCOM 4 Port RS232/422/485",
187 { PCI_VENDOR_DCI, PCI_PRODUCT_DCI_APCI4, 0x0, 0x0 },
188 { 0xffff, 0xffff, 0x0, 0x0 },
189 {
190 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ},
191 { PUC_PORT_TYPE_COM, 0x1c, 0x08, COM_FREQ},
192 { PUC_PORT_TYPE_COM, 0x1c, 0x10, COM_FREQ},
193 { PUC_PORT_TYPE_COM, 0x1c, 0x18, COM_FREQ},
194 },
195 },
196
197 /* Decision Computer Inc PCCOM 8 Port RS232/422/485: 8S */
198 { "Decision Computer Inc PCCOM 8 Port RS232/422/485",
199 { PCI_VENDOR_DCI, PCI_PRODUCT_DCI_APCI8, 0x0, 0x0 },
200 { 0xffff, 0xffff, 0x0, 0x0 },
201 {
202 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ},
203 { PUC_PORT_TYPE_COM, 0x1c, 0x08, COM_FREQ},
204 { PUC_PORT_TYPE_COM, 0x1c, 0x10, COM_FREQ},
205 { PUC_PORT_TYPE_COM, 0x1c, 0x18, COM_FREQ},
206 { PUC_PORT_TYPE_COM, 0x1c, 0x20, COM_FREQ},
207 { PUC_PORT_TYPE_COM, 0x1c, 0x28, COM_FREQ},
208 { PUC_PORT_TYPE_COM, 0x1c, 0x30, COM_FREQ},
209 { PUC_PORT_TYPE_COM, 0x1c, 0x38, COM_FREQ},
210 },
211 },
212
213 /* Digi International Digi Neo 4 Serial */
214 { "Digi International Digi Neo 4 Serial",
215 { PCI_VENDOR_DIGI, PCI_PRODUCT_DIGI_NEO4, 0, 0 },
216 { 0xffff, 0xffff, 0, 0 },
217 {
218 { PUC_PORT_TYPE_COM, 0x10, 0x0000, COM_FREQ * 8 },
219 { PUC_PORT_TYPE_COM, 0x10, 0x0200, COM_FREQ * 8 },
220 { PUC_PORT_TYPE_COM, 0x10, 0x0400, COM_FREQ * 8 },
221 { PUC_PORT_TYPE_COM, 0x10, 0x0600, COM_FREQ * 8 },
222 },
223 },
224
225 /* Digi International Digi Neo 8 Serial */
226 { "Digi International Digi Neo 8 Serial",
227 { PCI_VENDOR_DIGI, PCI_PRODUCT_DIGI_NEO8, 0, 0 },
228 { 0xffff, 0xffff, 0, 0 },
229 {
230 { PUC_PORT_TYPE_COM, 0x10, 0x0000, COM_FREQ * 8 },
231 { PUC_PORT_TYPE_COM, 0x10, 0x0200, COM_FREQ * 8 },
232 { PUC_PORT_TYPE_COM, 0x10, 0x0400, COM_FREQ * 8 },
233 { PUC_PORT_TYPE_COM, 0x10, 0x0600, COM_FREQ * 8 },
234 { PUC_PORT_TYPE_COM, 0x10, 0x0800, COM_FREQ * 8 },
235 { PUC_PORT_TYPE_COM, 0x10, 0x0a00, COM_FREQ * 8 },
236 { PUC_PORT_TYPE_COM, 0x10, 0x0c00, COM_FREQ * 8 },
237 { PUC_PORT_TYPE_COM, 0x10, 0x0e00, COM_FREQ * 8 },
238 },
239 },
240
241 { "EXAR XR17D152",
242 { PCI_VENDOR_EXAR, 0x0152, 0, 0 },
243 { 0xffff, 0xffff, 0, 0 },
244 {
245 { PUC_PORT_TYPE_COM, 0x10, 0x0000, COM_FREQ * 8 },
246 { PUC_PORT_TYPE_COM, 0x10, 0x0200, COM_FREQ * 8 },
247 },
248 },
249 { "EXAR XR17D154",
250 { PCI_VENDOR_EXAR, 0x0154, 0, 0 },
251 { 0xffff, 0xffff, 0, 0 },
252 {
253 { PUC_PORT_TYPE_COM, 0x10, 0x0000, COM_FREQ * 8 },
254 { PUC_PORT_TYPE_COM, 0x10, 0x0200, COM_FREQ * 8 },
255 { PUC_PORT_TYPE_COM, 0x10, 0x0400, COM_FREQ * 8 },
256 { PUC_PORT_TYPE_COM, 0x10, 0x0600, COM_FREQ * 8 },
257 },
258 },
259
260 /*
261 * Multi-Tech ISI5634PCI/4 4-port modem board.
262 * Has a 4-channel Exar XR17C154 UART, but with bogus product ID in its
263 * config EEPROM.
264 */
265 { "Multi-Tech ISI5634PCI/4",
266 { PCI_VENDOR_EXAR, 0x0158, 0x2205, 0x2003 },
267 { 0xffff, 0xffff, 0xffff, 0xffff },
268 {
269 { PUC_PORT_TYPE_COM, 0x10, 0x0000, COM_FREQ * 8 },
270 { PUC_PORT_TYPE_COM, 0x10, 0x0200, COM_FREQ * 8 },
271 { PUC_PORT_TYPE_COM, 0x10, 0x0400, COM_FREQ * 8 },
272 { PUC_PORT_TYPE_COM, 0x10, 0x0600, COM_FREQ * 8 },
273 },
274 },
275
276 { "EXAR XR17D158",
277 { PCI_VENDOR_EXAR, 0x0158, 0, 0 },
278 { 0xffff, 0xffff, 0, 0 },
279 {
280 { PUC_PORT_TYPE_COM, 0x10, 0x0000, COM_FREQ * 8 },
281 { PUC_PORT_TYPE_COM, 0x10, 0x0200, COM_FREQ * 8 },
282 { PUC_PORT_TYPE_COM, 0x10, 0x0400, COM_FREQ * 8 },
283 { PUC_PORT_TYPE_COM, 0x10, 0x0600, COM_FREQ * 8 },
284 { PUC_PORT_TYPE_COM, 0x10, 0x0800, COM_FREQ * 8 },
285 { PUC_PORT_TYPE_COM, 0x10, 0x0a00, COM_FREQ * 8 },
286 { PUC_PORT_TYPE_COM, 0x10, 0x0c00, COM_FREQ * 8 },
287 { PUC_PORT_TYPE_COM, 0x10, 0x0e00, COM_FREQ * 8 },
288 },
289 },
290
291 /* IBM SurePOS 300 Series (481033H) serial ports */
292 { "IBM SurePOS 300 Series (481033H)",
293 { PCI_VENDOR_IBM, PCI_PRODUCT_IBM_4810_SCC, 0, 0 },
294 { 0xffff, 0xfff, 0, 0 },
295 {
296 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, /* Port C */
297 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, /* Port D */
298 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ }, /* Port E */
299 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ }, /* Port F */
300 },
301 },
302
303 /* I-O DATA RSA-PCI: 2S */
304 { "I-O DATA RSA-PCI 2-port serial",
305 { PCI_VENDOR_IODATA, 0x0007, 0, 0 },
306 { 0xffff, 0xffff, 0, 0 },
307 {
308 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
309 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
310 },
311 },
312
313 /* Lava Computers 2SP-PCI */
314 { "Lava Computers 2SP-PCI parallel port",
315 { PCI_VENDOR_LAVA, 0x8000, 0, 0 },
316 { 0xffff, 0xffff, 0, 0 },
317 {
318 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
319 },
320 },
321
322 /* Lava Computers 2SP-PCI and Quattro-PCI serial ports */
323 { "Lava Computers dual serial port",
324 { PCI_VENDOR_LAVA, 0x0100, 0, 0 },
325 { 0xffff, 0xfffc, 0, 0 },
326 {
327 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
328 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
329 },
330 },
331
332 /* Lava Computers DSerial PCI serial ports */
333 { "Lava Computers serial port",
334 { PCI_VENDOR_LAVA, 0x0110, 0, 0 },
335 { 0xffff, 0xfffc, 0, 0 },
336 {
337 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
338 },
339 },
340
341 /* Lava Computers Quattro-PCI serial ports */
342 { "Lava Quattro-PCI 4-port serial",
343 { PCI_VENDOR_LAVA, 0x0120, 0, 0 },
344 { 0xffff, 0xfffc, 0, 0 },
345 {
346 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
347 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
348 },
349 },
350
351 /* Lava Computers Octopus-550 serial ports */
352 { "Lava Computers Octopus-550 8-port serial",
353 { PCI_VENDOR_LAVA, 0x0180, 0, 0 },
354 { 0xffff, 0xfffc, 0, 0 },
355 {
356 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
357 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
358 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
359 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
360 },
361 },
362
363 /* Actiontec 56K PCI Master */
364 { "Actiontec 56K PCI Master",
365 { PCI_VENDOR_LUCENT, 0x0480, 0x0, 0x0 },
366 { 0xffff, 0xffff, 0x0, 0x0 },
367 {
368 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
369 },
370 },
371
372 /*
373 * This is the Middle Digital, Inc. PCI-Weasel, which
374 * uses a PCI interface implemented in FPGA.
375 */
376 { "Middle Digital, Inc. Weasel serial port",
377 { PCI_VENDOR_MIDDLE_DIGITAL, 0x9051, 0, 0 },
378 { 0xffff, 0xffff, 0, 0 },
379 {
380 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
381 },
382 },
383
384 /* Moxa Technologies Co., Ltd. PCI I/O Card 4S RS232/422/485 */
385 { "Moxa Technologies, SmartIO C104H/PCI",
386 { PCI_VENDOR_MOXA, 0x1040, 0, 0 },
387 { 0xffff, 0xffff, 0, 0 },
388 {
389 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
390 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 },
391 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 },
392 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 },
393 },
394 },
395
396 /* Moxa Technologies Co., Ltd. PCI I/O Card 4S RS232 */
397 { "Moxa Technologies, SmartIO CP-104/PCI",
398 { PCI_VENDOR_MOXA, 0x1041, 0, 0 },
399 { 0xffff, 0xffff, 0, 0 },
400 {
401 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
402 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 },
403 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 },
404 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 },
405 },
406 },
407
408 /* Moxa Technologies Co., Ltd. PCI I/O Card 4S RS232 */
409 { "Moxa Technologies, SmartIO CP-104-V2/PCI",
410 { PCI_VENDOR_MOXA, 0x1042, 0, 0 },
411 { 0xffff, 0xffff, 0, 0 },
412 {
413 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
414 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 },
415 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 },
416 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 },
417 },
418 },
419
420 /* Moxa Technologies Co., Ltd. PCI I/O Card 4S RS232 */
421 { "Moxa Technologies, SmartIO CP-104-EL/PCIe",
422 { PCI_VENDOR_MOXA, 0x1043, 0, 0 },
423 { 0xffff, 0xffff, 0, 0 },
424 {
425 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
426 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 },
427 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 },
428 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 },
429 },
430 },
431
432 /* Moxa Technologies Co., Ltd. PCI I/O Card 4S RS232/422/485 */
433 { "Moxa Technologies, SmartIO CP-114/PCI",
434 { PCI_VENDOR_MOXA, 0x1141, 0, 0 },
435 { 0xffff, 0xffff, 0, 0 },
436 {
437 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
438 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 },
439 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 },
440 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 },
441 },
442 },
443
444 /* Moxa Technologies Co., Ltd. PCI I/O Card 8S RS232 */
445 { "Moxa Technologies, SmartIO C168H/PCI",
446 { PCI_VENDOR_MOXA, 0x1680, 0, 0 },
447 { 0xffff, 0xffff, 0, 0 },
448 {
449 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
450 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 },
451 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 },
452 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 },
453 { PUC_PORT_TYPE_COM, 0x18, 0x20, COM_FREQ * 8 },
454 { PUC_PORT_TYPE_COM, 0x18, 0x28, COM_FREQ * 8 },
455 { PUC_PORT_TYPE_COM, 0x18, 0x30, COM_FREQ * 8 },
456 { PUC_PORT_TYPE_COM, 0x18, 0x38, COM_FREQ * 8 },
457 },
458 },
459
460 /* Moxa Technologies Co., Ltd. PCI I/O Card 8S RS232 */
461 { "Moxa Technologies, SmartIO C168U/PCI",
462 { PCI_VENDOR_MOXA, 0x1681, 0, 0 },
463 { 0xffff, 0xffff, 0, 0 },
464 {
465 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
466 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 },
467 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 },
468 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 },
469 { PUC_PORT_TYPE_COM, 0x18, 0x20, COM_FREQ * 8 },
470 { PUC_PORT_TYPE_COM, 0x18, 0x28, COM_FREQ * 8 },
471 { PUC_PORT_TYPE_COM, 0x18, 0x30, COM_FREQ * 8 },
472 { PUC_PORT_TYPE_COM, 0x18, 0x38, COM_FREQ * 8 },
473 },
474 },
475
476 /* Moxa Technologies Co., Ltd. PCI I/O Card 8S RS232 */
477 { "Moxa Technologies, SmartIO C168EL/PCIe",
478 { PCI_VENDOR_MOXA, 0x1682, 0, 0 },
479 { 0xffff, 0xffff, 0, 0 },
480 {
481 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
482 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 },
483 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 },
484 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 },
485 { PUC_PORT_TYPE_COM, 0x18, 0x20, COM_FREQ * 8 },
486 { PUC_PORT_TYPE_COM, 0x18, 0x28, COM_FREQ * 8 },
487 { PUC_PORT_TYPE_COM, 0x18, 0x30, COM_FREQ * 8 },
488 { PUC_PORT_TYPE_COM, 0x18, 0x38, COM_FREQ * 8 },
489 },
490 },
491 /* Moxa Technologies Co., Ltd. PCI I/O Card 8S RS232 */
492 { "Moxa Technologies, SmartIO C168EL-A/PCI",
493 { PCI_VENDOR_MOXA, 0x1683, 0, 0 },
494 { 0xffff, 0xffff, 0, 0 },
495 {
496 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
497 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 },
498 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 },
499 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 },
500 { PUC_PORT_TYPE_COM, 0x18, 0x20, COM_FREQ * 8 },
501 { PUC_PORT_TYPE_COM, 0x18, 0x28, COM_FREQ * 8 },
502 { PUC_PORT_TYPE_COM, 0x18, 0x30, COM_FREQ * 8 },
503 { PUC_PORT_TYPE_COM, 0x18, 0x38, COM_FREQ * 8 },
504 },
505 },
506
507 /* NEC PK-UG-X001 K56flex PCI Modem card.
508 NEC MARTH bridge chip and Rockwell RCVDL56ACF/SP using. */
509 { "NEC PK-UG-X001 K56flex PCI Modem",
510 { PCI_VENDOR_NEC, 0x0074, PCI_VENDOR_NEC, 0x8014 },
511 { 0xffff, 0xffff, 0xffff, 0xffff },
512 {
513 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
514 },
515 },
516
517 /* NEC PK-UG-X008 */
518 { "NEC PK-UG-X008",
519 { PCI_VENDOR_NEC, 0x007d, PCI_VENDOR_NEC, 0x8012 },
520 { 0xffff, 0xffff, 0xffff, 0xffff },
521 {
522 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ},
523 },
524 },
525
526 /* NetMos 1P PCI : 1P */
527 { "NetMos NM9805 1284 Printer port",
528 { PCI_VENDOR_NETMOS, 0x9805, 0, 0 },
529 { 0xffff, 0xffff, 0, 0 },
530 {
531 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
532 },
533 },
534
535 /* NetMos 2P PCI : 2P */
536 { "NetMos NM9815 Dual 1284 Printer port",
537 { PCI_VENDOR_NETMOS, 0x9815, 0, 0 },
538 { 0xffff, 0xffff, 0, 0 },
539 {
540 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
541 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
542 },
543 },
544
545 /* NetMos 1S PCI NM9835 : 1S */
546 { "NetMos NM9835 UART",
547 { PCI_VENDOR_NETMOS, 0x9835, 0x1000, 0x0001 },
548 { 0xffff, 0xffff, 0xffff, 0xffff },
549 {
550 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
551 },
552 },
553
554 /* NetMos 2S PCI NM9835 : 2S */
555 { "NetMos NM9835 Dual UART",
556 { PCI_VENDOR_NETMOS, 0x9835, 0x1000, 0x0002 },
557 { 0xffff, 0xffff, 0xffff, 0xffff },
558 {
559 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
560 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
561 },
562 },
563
564 /* NetMos 2S1P PCI 16C650 : 2S, 1P */
565 { "NetMos NM9835 Dual UART and 1284 Printer port",
566 { PCI_VENDOR_NETMOS, 0x9835, 0, 0 },
567 { 0xffff, 0xffff, 0, 0 },
568 {
569 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
570 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
571 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
572 },
573 },
574
575 /* NetMos 4S0P PCI NM9845 : 4S, 0P */
576 { "NetMos NM9845 Quad UART",
577 { PCI_VENDOR_NETMOS, 0x9845, 0x1000, 0x0004 },
578 { 0xffff, 0xffff, 0xffff, 0xffff },
579 {
580 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
581 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
582 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
583 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
584 },
585 },
586
587 /* NetMos 4S1P PCI NM9845 : 4S, 1P */
588 { "NetMos NM9845 Quad UART and 1284 Printer port",
589 { PCI_VENDOR_NETMOS, 0x9845, 0x1000, 0x0014 },
590 { 0xffff, 0xffff, 0xffff, 0xffff },
591 {
592 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
593 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
594 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
595 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
596 { PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 },
597 },
598 },
599
600 /* NetMos 6S PCI 16C650 : 6S, 0P */
601 { "NetMos NM9845 6 UART",
602 { PCI_VENDOR_NETMOS, 0x9845, 0x1000, 0x0006 },
603 { 0xffff, 0xffff, 0xffff, 0xffff },
604 {
605 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
606 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
607 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
608 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
609 { PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ },
610 { PUC_PORT_TYPE_COM, 0x24, 0x00, COM_FREQ },
611 },
612 },
613
614 /* NetMos 4S1P PCI NM9845 : 4S, 1P */
615 { "NetMos NM9845 Quad UART and 1284 Printer port (unknown type)",
616 { PCI_VENDOR_NETMOS, 0x9845, 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 { PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 },
624 },
625 },
626
627 /* NetMos 4S1P PCI NM9855 : 4S, 1P */
628 { "NetMos NM9855 Quad UART and 1284 Printer port (unknown type)",
629 { PCI_VENDOR_NETMOS, 0x9855, 0x1000, 0x0014 },
630 { 0xffff, 0xffff, 0xffff, 0xffff },
631 {
632 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
633 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
634 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
635 { PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ },
636 { PUC_PORT_TYPE_COM, 0x24, 0x00, COM_FREQ },
637 },
638 },
639
640 /* NetMos 6S PCI NM9865 : 1S */
641 { "NetMos NM9865 1 UART",
642 { PCI_VENDOR_NETMOS, 0x9865, 0xa000, 0x1000 },
643 { 0xffff, 0xffff, 0xffff, 0xffff },
644 {
645 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
646 },
647 },
648
649 /* NetMos 6S PCI NM9865 : 4S */
650 { "NetMos NM9865 4 UART",
651 { PCI_VENDOR_NETMOS, 0x9865, 0xa000, 0x3004 },
652 { 0xffff, 0xffff, 0xffff, 0xffff },
653 {
654 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
655 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
656 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
657 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
658 },
659 },
660
661 /* NetMos PCIe NM9901 : 1P */
662 { "NetMos NM9901 LPT",
663 { PCI_VENDOR_NETMOS, 0x9901, 0xa000, 0x2000 },
664 { 0xffff, 0xffff, 0xffff, 0xffff },
665 {
666 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
667 },
668 },
669
670 /*
671 * Boards with an Oxford Semiconductor chip.
672 *
673 * Oxford Semiconductor provides documentation for their chip at:
674 * <URL:http://www.plxtech.com/products/uart>
675 *
676 * As sold by Kouwell <URL:http://www.kouwell.com/>.
677 * I/O Flex PCI I/O Card Model-223 with 4 serial and 1 parallel ports.
678 */
679
680 /* Oxford Semiconductor OXmPCI952 PCI UARTs */
681 { "Oxford Semiconductor OXmPCI952 UARTs",
682 { PCI_VENDOR_OXFORDSEMI, 0x950a, 0, 0 },
683 { 0xffff, 0xffff, 0, 0 },
684 {
685 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 10 },
686 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 10 },
687 },
688 },
689
690 /* Oxford Semiconductor OX16PCI952 PCI `950 UARTs - 128 byte FIFOs */
691 { "Oxford Semiconductor OX16PCI952 UARTs",
692 { PCI_VENDOR_OXFORDSEMI, 0x9521, 0, 0 },
693 { 0xffff, 0xffff, 0, 0 },
694 {
695 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
696 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
697 },
698 },
699
700 /* Oxford Semiconductor OX16PCI952 PCI Parallel port */
701 { "Oxford Semiconductor OX16PCI952 Parallel port",
702 { PCI_VENDOR_OXFORDSEMI, 0x9523, 0, 0 },
703 { 0xffff, 0xffff, 0, 0 },
704 {
705 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
706 },
707 },
708
709 /* I-O DATA RSA-PCI2 four/eight(1-4) UARTs based on OX16PCI954 */
710 { "I-O DATA RSA-PCI2/P4 or P8 (1-4) UARTs",
711 { PCI_VENDOR_OXFORDSEMI, 0x9501, PCI_VENDOR_IODATA, 0xd007 },
712 { 0xffff, 0xffff, 0xffff, 0xffff },
713 {
714 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 },
715 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8 },
716 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 8 },
717 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 8 },
718 },
719 },
720
721 /* OEM of Oxford Semiconductor PCI UARTs? */
722 { "SIIG Cyber 4 PCI 16550",
723 { PCI_VENDOR_OXFORDSEMI, 0x9501, PCI_VENDOR_SIIG, 0x2050 },
724 { 0xffff, 0xffff, 0xffff, 0xffff },
725 {
726 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 10 },
727 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 10 },
728 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 10 },
729 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 10 },
730 },
731 },
732
733 /* OEM of Oxford Semiconductor PCI UARTs? */
734 { "SIIG Cyber 4S PCI 16C650 (20x family)",
735 { PCI_VENDOR_OXFORDSEMI, 0x9501, PCI_VENDOR_SIIG, 0x2051 },
736 { 0xffff, 0xffff, 0xffff, 0xffff },
737 {
738 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 10 },
739 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 10 },
740 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 10 },
741 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 10 },
742 },
743 },
744
745 /* OEM of Oxford Semiconductor PCI UARTs? */
746 { "Avlab LP PCI 4S Quartet",
747 { PCI_VENDOR_OXFORDSEMI, 0x9501, PCI_VENDOR_AVLAB, 0x2150 },
748 { 0xffff, 0xffff, 0xffff, 0xffff },
749 {
750 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 10 },
751 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 10 },
752 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 10 },
753 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 10 },
754 },
755 },
756
757 /* Oxford Semiconductor OX16PCI954 PCI UARTs */
758 { "Oxford Semiconductor OX16PCI954 UARTs",
759 { PCI_VENDOR_OXFORDSEMI, 0x9501, PCI_VENDOR_OXFORDSEMI, 0 },
760 { 0xffff, 0xffff, 0xffff, 0 },
761 {
762 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8},
763 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8},
764 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 8},
765 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 8},
766 },
767 },
768
769 /* Oxford Semiconductor OX16PCI954 PCI UARTs (default for 0x9501) */
770 { "Oxford Semiconductor OX16PCI954 UARTs",
771 { PCI_VENDOR_OXFORDSEMI, 0x9501, 0, 0 },
772 { 0xffff, 0xffff, 0, 0 },
773 {
774 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ},
775 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ},
776 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ},
777 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ},
778 },
779 },
780
781 /* I-O DATA RSA-PCI2 eight(5-8) UARTs base on OX16PCI954 */
782 { "I-O DATA RSA-PCI2/P8 (5-8) UARTs",
783 { PCI_VENDOR_OXFORDSEMI, 0x9511, PCI_VENDOR_IODATA, 0xd007 },
784 { 0xffff, 0xffff, 0xffff, 0xffff },
785 {
786 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 },
787 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8 },
788 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 8 },
789 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 8 },
790 },
791 },
792
793 /* Exsys EX-41098, second part of SIIG Cyber 8S PCI Card */
794 { "Exsys EX-41098",
795 { PCI_VENDOR_OXFORDSEMI, 0x9511, PCI_VENDOR_SIIG, 0x2082 },
796 { 0xffff, 0xffff, 0xffff, 0xffff },
797 {
798 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 10},
799 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 10},
800 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 10},
801 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 10},
802 },
803 },
804
805 /* Oxford Semiconductor OX16PCI954 PCI Parallel port */
806 { "Oxford Semiconductor OX16PCI954 Parallel port",
807 { PCI_VENDOR_OXFORDSEMI, 0x9513, 0, 0 },
808 { 0xffff, 0xffff, 0, 0 },
809 {
810 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
811 },
812 },
813
814 /* Oxford Semiconductor OX16PCI958 UARTs */
815 { "Oxford Semiconductor OX16PCI958 UARTs",
816 { PCI_VENDOR_OXFORDSEMI, 0x9538, 0, 0 },
817 { 0xffff, 0xffff, 0, 0 },
818 {
819 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 10},
820 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 10},
821 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 10},
822 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 10},
823 { PUC_PORT_TYPE_COM, 0x18, 0x20, COM_FREQ * 10},
824 { PUC_PORT_TYPE_COM, 0x18, 0x28, COM_FREQ * 10},
825 { PUC_PORT_TYPE_COM, 0x18, 0x30, COM_FREQ * 10},
826 { PUC_PORT_TYPE_COM, 0x18, 0x38, COM_FREQ * 10},
827 },
828 },
829
830 /*
831 * XXX no entry because I have no data:
832 * XXX Dolphin Peripherals 4006 (single parallel)
833 */
834
835 /*
836 * Dolphin Peripherals 4014 (dual parallel port) card. PLX 9050, with
837 * a seemingly-lame EEPROM setup that puts the Dolphin IDs
838 * into the subsystem fields, and claims that it's a
839 * network/misc (0x02/0x80) device.
840 */
841 { "Dolphin Peripherals 4014",
842 { PCI_VENDOR_PLX, 0x9050, 0xd84d, 0x6810 },
843 { 0xffff, 0xffff, 0xffff, 0xffff },
844 {
845 { PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 },
846 { PUC_PORT_TYPE_LPT, 0x24, 0x00, 0x00 },
847 },
848 },
849
850 /*
851 * XXX Dolphin Peripherals 4025 (single serial)
852 * (clashes with Dolphin Peripherals 4036 (2s variant)
853 */
854
855 /*
856 * Dolphin Peripherals 4035 (dual serial port) card. PLX 9050, with
857 * a seemingly-lame EEPROM setup that puts the Dolphin IDs
858 * into the subsystem fields, and claims that it's a
859 * network/misc (0x02/0x80) device.
860 */
861 { "Dolphin Peripherals 4035",
862 { PCI_VENDOR_PLX, 0x9050, 0xd84d, 0x6808 },
863 { 0xffff, 0xffff, 0xffff, 0xffff },
864 {
865 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
866 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
867 },
868 },
869
870 /* VScom PCI-200: 2S */
871 { "VScom PCI-200",
872 { PCI_VENDOR_PLX, 0x1103, PCI_VENDOR_PLX, 0x1103 },
873 { 0xffff, 0xffff, 0xffff, 0xffff },
874 {
875 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
876 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ * 8 },
877 },
878 },
879
880 /* VScom PCI-400: 4S */
881 { "VScom PCI-400",
882 { PCI_VENDOR_PLX, 0x1077, PCI_VENDOR_PLX, 0x1077 },
883 { 0xffff, 0xffff, 0xffff, 0xffff },
884 {
885 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
886 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 },
887 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 },
888 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 },
889 },
890 },
891
892 /* VScom PCI-800: 8S */
893 { "VScom PCI-800",
894 { PCI_VENDOR_PLX, 0x1076, PCI_VENDOR_PLX, 0x1076 },
895 { 0xffff, 0xffff, 0xffff, 0xffff },
896 {
897 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
898 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 },
899 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 },
900 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 },
901 { PUC_PORT_TYPE_COM, 0x18, 0x20, COM_FREQ * 8 },
902 { PUC_PORT_TYPE_COM, 0x18, 0x28, COM_FREQ * 8 },
903 { PUC_PORT_TYPE_COM, 0x18, 0x30, COM_FREQ * 8 },
904 { PUC_PORT_TYPE_COM, 0x18, 0x38, COM_FREQ * 8 },
905 },
906 },
907
908 /*
909 * Perle PCI-RAS 4 Modem ports
910 */
911 { "Perle Systems PCI-RAS 4 modem ports",
912 { PCI_VENDOR_PLX, 0x9030, 0x155f, 0xf001 },
913 { 0xffff, 0xffff, 0xffff, 0xffff },
914 {
915 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 4 },
916 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 4 },
917 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 4 },
918 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 4 },
919 },
920 },
921
922 /*
923 * Perle PCI-RASV92 4 Modem ports
924 */
925 { "Perle Systems PCI-RASV92 4 modem ports",
926 { PCI_VENDOR_PLX, 0x9050, 0x155f, 0xf001 },
927 { 0xffff, 0xffff, 0xffff, 0xffff },
928 {
929 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 4 },
930 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 4 },
931 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 4 },
932 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 4 },
933 },
934 },
935
936 /*
937 * Perle PCI-RAS 8 Modem ports
938 */
939 { "Perle Systems PCI-RAS 8 modem ports",
940 { PCI_VENDOR_PLX, 0x9030, 0x155f, 0xf010 },
941 { 0xffff, 0xffff, 0xffff, 0xffff },
942 {
943 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 4 },
944 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 4 },
945 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 4 },
946 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 4 },
947 { PUC_PORT_TYPE_COM, 0x18, 0x20, COM_FREQ * 4 },
948 { PUC_PORT_TYPE_COM, 0x18, 0x28, COM_FREQ * 4 },
949 { PUC_PORT_TYPE_COM, 0x18, 0x30, COM_FREQ * 4 },
950 { PUC_PORT_TYPE_COM, 0x18, 0x38, COM_FREQ * 4 },
951 },
952 },
953
954 /*
955 * Perle PCI-RASV92 8 Modem ports
956 */
957 { "Perle Systems PCI-RASV92 8 modem ports",
958 { PCI_VENDOR_PLX, 0x9050, 0x155f, 0xf010 },
959 { 0xffff, 0xffff, 0xffff, 0xffff },
960 {
961 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 4 },
962 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 4 },
963 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 4 },
964 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 4 },
965 { PUC_PORT_TYPE_COM, 0x18, 0x20, COM_FREQ * 4 },
966 { PUC_PORT_TYPE_COM, 0x18, 0x28, COM_FREQ * 4 },
967 { PUC_PORT_TYPE_COM, 0x18, 0x30, COM_FREQ * 4 },
968 { PUC_PORT_TYPE_COM, 0x18, 0x38, COM_FREQ * 4 },
969 },
970 },
971
972 /*
973 * Boca Research Turbo Serial 654 (4 serial port) card.
974 * Appears to be the same as Chase Research PLC PCI-FAST4
975 * and Perle PCI-FAST4 Multi-Port serial cards.
976 */
977 { "Boca Research Turbo Serial 654",
978 { PCI_VENDOR_PLX, 0x9050, 0x12e0, 0x0031 },
979 { 0xffff, 0xffff, 0xffff, 0xffff },
980 {
981 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 4 },
982 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 4 },
983 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 4 },
984 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 4 },
985 },
986 },
987
988 /*
989 * Boca Research Turbo Serial 658 (8 serial port) card.
990 * Appears to be the same as Chase Research PLC PCI-FAST8
991 * and Perle PCI-FAST8 Multi-Port serial cards.
992 */
993 { "Boca Research Turbo Serial 658",
994 { PCI_VENDOR_PLX, 0x9050, 0x12e0, 0x0021 },
995 { 0xffff, 0xffff, 0xffff, 0xffff },
996 {
997 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 4 },
998 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 4 },
999 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 4 },
1000 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 4 },
1001 { PUC_PORT_TYPE_COM, 0x18, 0x20, COM_FREQ * 4 },
1002 { PUC_PORT_TYPE_COM, 0x18, 0x28, COM_FREQ * 4 },
1003 { PUC_PORT_TYPE_COM, 0x18, 0x30, COM_FREQ * 4 },
1004 { PUC_PORT_TYPE_COM, 0x18, 0x38, COM_FREQ * 4 },
1005 },
1006 },
1007
1008 /*
1009 * SIIG Boards.
1010 *
1011 * SIIG provides documentation for their boards at:
1012 * <URL:http://www.siig.com/driver.htm>
1013 *
1014 * Please excuse the weird ordering, it's the order they
1015 * use in their documentation.
1016 */
1017
1018 /*
1019 * SIIG "10x" family boards.
1020 */
1021
1022 /* SIIG Cyber Serial PCI 16C550 (10x family): 1S */
1023 { "SIIG Cyber Serial PCI 16C550 (10x family)",
1024 { PCI_VENDOR_SIIG, 0x1000, 0, 0 },
1025 { 0xffff, 0xffff, 0, 0 },
1026 {
1027 { PUC_PORT_TYPE_COM, 0x18, 0x00,
1028 (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR1 },
1029 },
1030 },
1031
1032 /* SIIG Cyber Serial PCI 16C650 (10x family): 1S */
1033 { "SIIG Cyber Serial PCI 16C650 (10x family)",
1034 { PCI_VENDOR_SIIG, 0x1001, 0, 0 },
1035 { 0xffff, 0xffff, 0, 0 },
1036 {
1037 { PUC_PORT_TYPE_COM, 0x18, 0x00,
1038 (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR1 },
1039 },
1040 },
1041
1042 /* SIIG Cyber Serial PCI 16C850 (10x family): 1S */
1043 { "SIIG Cyber Serial PCI 16C850 (10x family)",
1044 { PCI_VENDOR_SIIG, 0x1002, 0, 0 },
1045 { 0xffff, 0xffff, 0, 0 },
1046 {
1047 { PUC_PORT_TYPE_COM, 0x18, 0x00,
1048 (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR1 },
1049 },
1050 },
1051
1052 /* SIIG Cyber I/O PCI 16C550 (10x family): 1S, 1P */
1053 { "SIIG Cyber I/O PCI 16C550 (10x family)",
1054 { PCI_VENDOR_SIIG, 0x1010, 0, 0 },
1055 { 0xffff, 0xffff, 0, 0 },
1056 {
1057 { PUC_PORT_TYPE_COM, 0x18, 0x00,
1058 (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR0 },
1059 { PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 },
1060 },
1061 },
1062
1063 /* SIIG Cyber I/O PCI 16C650 (10x family): 1S, 1P */
1064 { "SIIG Cyber I/O PCI 16C650 (10x family)",
1065 { PCI_VENDOR_SIIG, 0x1011, 0, 0 },
1066 { 0xffff, 0xffff, 0, 0 },
1067 {
1068 { PUC_PORT_TYPE_COM, 0x18, 0x00,
1069 (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR0 },
1070 { PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 },
1071 },
1072 },
1073
1074 /* SIIG Cyber I/O PCI 16C850 (10x family): 1S, 1P */
1075 { "SIIG Cyber I/O PCI 16C850 (10x family)",
1076 { PCI_VENDOR_SIIG, 0x1012, 0, 0 },
1077 { 0xffff, 0xffff, 0, 0 },
1078 {
1079 { PUC_PORT_TYPE_COM, 0x18, 0x00,
1080 (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR0 },
1081 { PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 },
1082 },
1083 },
1084
1085 /* SIIG Cyber Parallel PCI (10x family): 1P */
1086 { "SIIG Cyber Parallel PCI (10x family)",
1087 { PCI_VENDOR_SIIG, 0x1020, 0, 0 },
1088 { 0xffff, 0xffff, 0, 0 },
1089 {
1090 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
1091 },
1092 },
1093
1094 /* SIIG Cyber Parallel Dual PCI (10x family): 2P */
1095 { "SIIG Cyber Parallel Dual PCI (10x family)",
1096 { PCI_VENDOR_SIIG, 0x1021, 0, 0 },
1097 { 0xffff, 0xffff, 0, 0 },
1098 {
1099 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
1100 { PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 },
1101 },
1102 },
1103
1104 /* SIIG Cyber Serial Dual PCI 16C550 (10x family): 2S */
1105 { "SIIG Cyber Serial Dual PCI 16C550 (10x family)",
1106 { PCI_VENDOR_SIIG, 0x1030, 0, 0 },
1107 { 0xffff, 0xffff, 0, 0 },
1108 {
1109 { PUC_PORT_TYPE_COM, 0x18, 0x00,
1110 (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR2 },
1111 { PUC_PORT_TYPE_COM, 0x1c, 0x00,
1112 (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR3 },
1113 },
1114 },
1115
1116 /* SIIG Cyber Serial Dual PCI 16C650 (10x family): 2S */
1117 { "SIIG Cyber Serial Dual PCI 16C650 (10x family)",
1118 { PCI_VENDOR_SIIG, 0x1031, 0, 0 },
1119 { 0xffff, 0xffff, 0, 0 },
1120 {
1121 { PUC_PORT_TYPE_COM, 0x18, 0x00,
1122 (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR2 },
1123 { PUC_PORT_TYPE_COM, 0x1c, 0x00,
1124 (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR3 },
1125 },
1126 },
1127
1128 /* SIIG Cyber Serial Dual PCI 16C850 (10x family): 2S */
1129 { "SIIG Cyber Serial Dual PCI 16C850 (10x family)",
1130 { PCI_VENDOR_SIIG, 0x1032, 0, 0 },
1131 { 0xffff, 0xffff, 0, 0 },
1132 {
1133 { PUC_PORT_TYPE_COM, 0x18, 0x00,
1134 (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR2 },
1135 { PUC_PORT_TYPE_COM, 0x1c, 0x00,
1136 (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR3 },
1137 },
1138 },
1139
1140 /* SIIG Cyber 2S1P PCI 16C550 (10x family): 2S, 1P */
1141 { "SIIG Cyber 2S1P PCI 16C550 (10x family)",
1142 { PCI_VENDOR_SIIG, 0x1034, 0, 0 },
1143 { 0xffff, 0xffff, 0, 0 },
1144 {
1145 { PUC_PORT_TYPE_COM, 0x18, 0x00,
1146 (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR2 },
1147 { PUC_PORT_TYPE_COM, 0x1c, 0x00,
1148 (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR3 },
1149 { PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 },
1150 },
1151 },
1152
1153 /* SIIG Cyber 2S1P PCI 16C650 (10x family): 2S, 1P */
1154 { "SIIG Cyber 2S1P PCI 16C650 (10x family)",
1155 { PCI_VENDOR_SIIG, 0x1035, 0, 0 },
1156 { 0xffff, 0xffff, 0, 0 },
1157 {
1158 { PUC_PORT_TYPE_COM, 0x18, 0x00,
1159 (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR2 },
1160 { PUC_PORT_TYPE_COM, 0x1c, 0x00,
1161 (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR3 },
1162 { PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 },
1163 },
1164 },
1165
1166 /* SIIG Cyber 2S1P PCI 16C850 (10x family): 2S, 1P */
1167 { "SIIG Cyber 2S1P PCI 16C850 (10x family)",
1168 { PCI_VENDOR_SIIG, 0x1036, 0, 0 },
1169 { 0xffff, 0xffff, 0, 0 },
1170 {
1171 { PUC_PORT_TYPE_COM, 0x18, 0x00,
1172 (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR2 },
1173 { PUC_PORT_TYPE_COM, 0x1c, 0x00,
1174 (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR3 },
1175 { PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 },
1176 },
1177 },
1178
1179 /* SIIG Cyber 4S PCI 16C550 (10x family): 4S */
1180 { "SIIG Cyber 4S PCI 16C550 (10x family)",
1181 { PCI_VENDOR_SIIG, 0x1050, 0, 0 },
1182 { 0xffff, 0xffff, 0, 0 },
1183 {
1184 { PUC_PORT_TYPE_COM, 0x18, 0x00,
1185 (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR0 },
1186 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ * 8 },
1187 { PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ * 8 },
1188 { PUC_PORT_TYPE_COM, 0x24, 0x00, COM_FREQ * 8 },
1189 },
1190 },
1191
1192 /* SIIG Cyber 4S PCI 16C650 (10x family): 4S */
1193 { "SIIG Cyber 4S PCI 16C650 (10x family)",
1194 { PCI_VENDOR_SIIG, 0x1051, 0, 0 },
1195 { 0xffff, 0xffff, 0, 0 },
1196 {
1197 { PUC_PORT_TYPE_COM, 0x18, 0x00,
1198 (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR0 },
1199 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ * 8 },
1200 { PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ * 8 },
1201 { PUC_PORT_TYPE_COM, 0x24, 0x00, COM_FREQ * 8 },
1202 },
1203 },
1204
1205 /* SIIG Cyber 4S PCI 16C850 (10x family): 4S */
1206 { "SIIG Cyber 4S PCI 16C850 (10x family)",
1207 { PCI_VENDOR_SIIG, 0x1052, 0, 0 },
1208 { 0xffff, 0xffff, 0, 0 },
1209 {
1210 { PUC_PORT_TYPE_COM, 0x18, 0x00,
1211 (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR0 },
1212 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ * 8 },
1213 { PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ * 8 },
1214 { PUC_PORT_TYPE_COM, 0x24, 0x00, COM_FREQ * 8 },
1215 },
1216 },
1217
1218 /*
1219 * SIIG "20x" family boards.
1220 */
1221
1222 /* SIIG Cyber Serial PCI 16C550 (20x family): 1S */
1223 { "SIIG Cyber Serial PCI 16C550 (20x family)",
1224 { PCI_VENDOR_SIIG, 0x2000, 0, 0 },
1225 { 0xffff, 0xffff, 0, 0 },
1226 {
1227 { PUC_PORT_TYPE_COM, 0x10, 0x00,
1228 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
1229 },
1230 },
1231
1232 /* SIIG Cyber Serial PCI 16C650 (20x family): 1S */
1233 { "SIIG Cyber Serial PCI 16C650 (20x family)",
1234 { PCI_VENDOR_SIIG, 0x2001, 0, 0 },
1235 { 0xffff, 0xffff, 0, 0 },
1236 {
1237 { PUC_PORT_TYPE_COM, 0x10, 0x00,
1238 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
1239 },
1240 },
1241
1242 /* SIIG Cyber Serial PCI 16C850 (20x family): 1S */
1243 { "SIIG Cyber Serial PCI 16C850 (20x family)",
1244 { PCI_VENDOR_SIIG, 0x2002, 0, 0 },
1245 { 0xffff, 0xffff, 0, 0 },
1246 {
1247 { PUC_PORT_TYPE_COM, 0x10, 0x00,
1248 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
1249 },
1250 },
1251
1252 /* SIIG Cyber I/O PCI 16C550 (20x family): 1S, 1P */
1253 { "SIIG Cyber I/O PCI 16C550 (20x family)",
1254 { PCI_VENDOR_SIIG, 0x2010, 0, 0 },
1255 { 0xffff, 0xffff, 0, 0 },
1256 {
1257 { PUC_PORT_TYPE_COM, 0x10, 0x00,
1258 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
1259 { PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 },
1260 },
1261 },
1262
1263 /* SIIG Cyber I/O PCI 16C650 (20x family): 1S, 1P */
1264 { "SIIG Cyber I/O PCI 16C650 (20x family)",
1265 { PCI_VENDOR_SIIG, 0x2011, 0, 0 },
1266 { 0xffff, 0xffff, 0, 0 },
1267 {
1268 { PUC_PORT_TYPE_COM, 0x10, 0x00,
1269 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
1270 { PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 },
1271 },
1272 },
1273
1274 /* SIIG Cyber I/O PCI 16C850 (20x family): 1S, 1P */
1275 { "SIIG Cyber I/O PCI 16C850 (20x family)",
1276 { PCI_VENDOR_SIIG, 0x2012, 0, 0 },
1277 { 0xffff, 0xffff, 0, 0 },
1278 {
1279 { PUC_PORT_TYPE_COM, 0x10, 0x00,
1280 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
1281 { PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 },
1282 },
1283 },
1284
1285 /* SIIG Cyber Parallel PCI (20x family): 1P */
1286 { "SIIG Cyber Parallel PCI (20x family)",
1287 { PCI_VENDOR_SIIG, 0x2020, 0, 0 },
1288 { 0xffff, 0xffff, 0, 0 },
1289 {
1290 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
1291 },
1292 },
1293
1294 /* SIIG Cyber Parallel Dual PCI (20x family): 2P */
1295 { "SIIG Cyber Parallel Dual PCI (20x family)",
1296 { PCI_VENDOR_SIIG, 0x2021, 0, 0 },
1297 { 0xffff, 0xffff, 0, 0 },
1298 {
1299 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
1300 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
1301 },
1302 },
1303
1304 /* SIIG Cyber Serial Dual PCI 16C550 (20x family): 2S */
1305 { "SIIG Cyber Serial Dual PCI 16C550 (20x family)",
1306 { PCI_VENDOR_SIIG, 0x2030, 0, 0 },
1307 { 0xffff, 0xffff, 0, 0 },
1308 {
1309 { PUC_PORT_TYPE_COM, 0x10, 0x00,
1310 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
1311 { PUC_PORT_TYPE_COM, 0x14, 0x00,
1312 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR1 },
1313 },
1314 },
1315
1316 /* SIIG Cyber Serial Dual PCI 16C650 (20x family): 2S */
1317 { "SIIG Cyber Serial Dual PCI 16C650 (20x family)",
1318 { PCI_VENDOR_SIIG, 0x2031, 0, 0 },
1319 { 0xffff, 0xffff, 0, 0 },
1320 {
1321 { PUC_PORT_TYPE_COM, 0x10, 0x00,
1322 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
1323 { PUC_PORT_TYPE_COM, 0x14, 0x00,
1324 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR1 },
1325 },
1326 },
1327
1328 /* SIIG Cyber Serial Dual PCI 16C850 (20x family): 2S */
1329 { "SIIG Cyber Serial Dual PCI 16C850 (20x family)",
1330 { PCI_VENDOR_SIIG, 0x2032, 0, 0 },
1331 { 0xffff, 0xffff, 0, 0 },
1332 {
1333 { PUC_PORT_TYPE_COM, 0x10, 0x00,
1334 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
1335 { PUC_PORT_TYPE_COM, 0x14, 0x00,
1336 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR1 },
1337 },
1338 },
1339
1340 /* SIIG Cyber 2P1S PCI 16C550 (20x family): 1S, 2P */
1341 { "SIIG Cyber 2P1S PCI 16C550 (20x family)",
1342 { PCI_VENDOR_SIIG, 0x2040, 0, 0 },
1343 { 0xffff, 0xffff, 0, 0 },
1344 {
1345 { PUC_PORT_TYPE_COM, 0x10, 0x00,
1346 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
1347 { PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 },
1348 { PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 },
1349 },
1350 },
1351
1352 /* SIIG Cyber 2P1S PCI 16C650 (20x family): 1S, 2P */
1353 { "SIIG Cyber 2P1S PCI 16C650 (20x family)",
1354 { PCI_VENDOR_SIIG, 0x2041, 0, 0 },
1355 { 0xffff, 0xffff, 0, 0 },
1356 {
1357 { PUC_PORT_TYPE_COM, 0x10, 0x00,
1358 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
1359 { PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 },
1360 { PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 },
1361 },
1362 },
1363
1364 /* SIIG Cyber 2P1S PCI 16C850 (20x family): 1S, 2P */
1365 { "SIIG Cyber 2P1S PCI 16C850 (20x family)",
1366 { PCI_VENDOR_SIIG, 0x2042, 0, 0 },
1367 { 0xffff, 0xffff, 0, 0 },
1368 {
1369 { PUC_PORT_TYPE_COM, 0x10, 0x00,
1370 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
1371 { PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 },
1372 { PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 },
1373 },
1374 },
1375
1376 /* SIIG Cyber 4S PCI 16C550 (20x family): 4S */
1377 { "SIIG Cyber 4S PCI 16C550 (20x family)",
1378 { PCI_VENDOR_SIIG, 0x2050, 0, 0 },
1379 { 0xffff, 0xffff, 0, 0 },
1380 {
1381 { PUC_PORT_TYPE_COM, 0x10, 0x00,
1382 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
1383 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ * 8 },
1384 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
1385 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ * 8 },
1386 },
1387 },
1388
1389 /* SIIG Cyber 4S PCI 16C650 (20x family): 4S */
1390 { "SIIG Cyber 4S PCI 16C650 (20x family)",
1391 { PCI_VENDOR_SIIG, 0x2051, 0, 0 },
1392 { 0xffff, 0xffff, 0, 0 },
1393 {
1394 { PUC_PORT_TYPE_COM, 0x10, 0x00,
1395 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
1396 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ * 8 },
1397 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
1398 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ * 8 },
1399 },
1400 },
1401
1402 /* SIIG Cyber 4S PCI 16C850 (20x family): 4S */
1403 { "SIIG Cyber 4S PCI 16C850 (20x family)",
1404 { PCI_VENDOR_SIIG, 0x2052, 0, 0 },
1405 { 0xffff, 0xffff, 0, 0 },
1406 {
1407 { PUC_PORT_TYPE_COM, 0x10, 0x00,
1408 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
1409 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ * 8 },
1410 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
1411 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ * 8 },
1412 },
1413 },
1414
1415 /* SIIG Cyber 2S1P PCI 16C550 (20x family): 2S, 1P */
1416 { "SIIG Cyber 2S1P PCI 16C550 (20x family)",
1417 { PCI_VENDOR_SIIG, 0x2060, 0, 0 },
1418 { 0xffff, 0xffff, 0, 0 },
1419 {
1420 { PUC_PORT_TYPE_COM, 0x10, 0x00,
1421 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
1422 { PUC_PORT_TYPE_COM, 0x14, 0x00,
1423 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR1 },
1424 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
1425 },
1426 },
1427
1428 /* SIIG Cyber 2S1P PCI 16C650 (20x family): 2S, 1P */
1429 { "SIIG Cyber 2S1P PCI 16C650 (20x family)",
1430 { PCI_VENDOR_SIIG, 0x2061, 0, 0 },
1431 { 0xffff, 0xffff, 0, 0 },
1432 {
1433 { PUC_PORT_TYPE_COM, 0x10, 0x00,
1434 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
1435 { PUC_PORT_TYPE_COM, 0x14, 0x00,
1436 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR1 },
1437 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
1438 },
1439 },
1440
1441 /* SIIG Cyber 2S1P PCI 16C850 (20x family): 2S, 1P */
1442 { "SIIG Cyber 2S1P PCI 16C850 (20x family)",
1443 { PCI_VENDOR_SIIG, 0x2062, 0, 0 },
1444 { 0xffff, 0xffff, 0, 0 },
1445 {
1446 { PUC_PORT_TYPE_COM, 0x10, 0x00,
1447 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
1448 { PUC_PORT_TYPE_COM, 0x14, 0x00,
1449 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR1 },
1450 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
1451 },
1452 },
1453
1454 /* SIIG PS8000 PCI 8S 16C550 (20x family): 8S - 16 Byte FIFOs */
1455 { "SIIG PS8000 PCI 8S 16C550 (20x family)",
1456 { PCI_VENDOR_SIIG, 0x2080, 0, 0 },
1457 { 0xffff, 0xffff, 0, 0 },
1458 {
1459 { PUC_PORT_TYPE_COM, 0x10, 0x00,
1460 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
1461 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ * 8 },
1462 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
1463 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ * 8 },
1464 { PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ * 8 },
1465 { PUC_PORT_TYPE_COM, 0x20, 0x08, COM_FREQ * 8 },
1466 { PUC_PORT_TYPE_COM, 0x20, 0x10, COM_FREQ * 8 },
1467 { PUC_PORT_TYPE_COM, 0x20, 0x18, COM_FREQ * 8 },
1468 },
1469 },
1470
1471 /* SIIG PS8000 PCI 8S 16C650 (20x family): 8S - 32 Byte FIFOs */
1472 { "SIIG PS8000 PCI 8S 16C650 (20x family)",
1473 { PCI_VENDOR_SIIG, 0x2081, 0, 0 },
1474 { 0xffff, 0xffff, 0, 0 },
1475 {
1476 { PUC_PORT_TYPE_COM, 0x10, 0x00,
1477 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
1478 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ * 8 },
1479 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
1480 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ * 8 },
1481 { PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ * 8 },
1482 { PUC_PORT_TYPE_COM, 0x20, 0x08, COM_FREQ * 8 },
1483 { PUC_PORT_TYPE_COM, 0x20, 0x10, COM_FREQ * 8 },
1484 { PUC_PORT_TYPE_COM, 0x20, 0x18, COM_FREQ * 8 },
1485 },
1486 },
1487
1488 /* SIIG PS8000 PCI 8S 16C850 (20x family): 8S - 128 Byte FIFOs */
1489 { "SIIG PS8000 PCI 8S 16C850 (20x family)",
1490 { PCI_VENDOR_SIIG, 0x2082, 0, 0 },
1491 { 0xffff, 0xffff, 0, 0 },
1492 {
1493 { PUC_PORT_TYPE_COM, 0x10, 0x00,
1494 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
1495 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ * 8 },
1496 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
1497 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ * 8 },
1498 { PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ * 8 },
1499 { PUC_PORT_TYPE_COM, 0x20, 0x08, COM_FREQ * 8 },
1500 { PUC_PORT_TYPE_COM, 0x20, 0x10, COM_FREQ * 8 },
1501 { PUC_PORT_TYPE_COM, 0x20, 0x18, COM_FREQ * 8 },
1502 },
1503 },
1504
1505 /*
1506 * SUNIX 40XX series of serial/parallel combo cards.
1507 * Tested with 4055A and 4065A.
1508 */
1509 { "SUNIX 400X 1P",
1510 { PCI_VENDOR_SUNIX, 0x7168, PCI_VENDOR_SUNIX, 0x4000 },
1511 { 0xffff, 0xffff, 0xffff, 0xeff0 },
1512 {
1513 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
1514 },
1515 },
1516
1517 { "SUNIX 401X 2P",
1518 { PCI_VENDOR_SUNIX, 0x7168, PCI_VENDOR_SUNIX, 0x4010 },
1519 { 0xffff, 0xffff, 0xffff, 0xeff0 },
1520 {
1521 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
1522 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
1523 },
1524 },
1525
1526 { "SUNIX 402X 1S",
1527 { PCI_VENDOR_SUNIX, 0x7168, PCI_VENDOR_SUNIX, 0x4020 },
1528 { 0xffff, 0xffff, 0xffff, 0xeff0 },
1529 {
1530 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8},
1531 },
1532 },
1533
1534 { "SUNIX 403X 2S",
1535 { PCI_VENDOR_SUNIX, 0x7168, PCI_VENDOR_SUNIX, 0x4030 },
1536 { 0xffff, 0xffff, 0xffff, 0xeff0 },
1537 {
1538 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8},
1539 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8},
1540 },
1541 },
1542
1543 { "SUNIX 405X 4S",
1544 { PCI_VENDOR_SUNIX, 0x7168, PCI_VENDOR_SUNIX, 0x4050 },
1545 { 0xffff, 0xffff, 0xffff, 0xeff0 },
1546 {
1547 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8},
1548 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8},
1549 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ},
1550 { PUC_PORT_TYPE_COM, 0x14, 0x08, COM_FREQ},
1551 },
1552 },
1553
1554 { "SUNIX 406X 8S",
1555 { PCI_VENDOR_SUNIX, 0x7168, PCI_VENDOR_SUNIX, 0x4060 },
1556 { 0xffff, 0xffff, 0xffff, 0xeff0 },
1557 {
1558 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8},
1559 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8},
1560 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ},
1561 { PUC_PORT_TYPE_COM, 0x14, 0x08, COM_FREQ},
1562 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ},
1563 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ},
1564 { PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ},
1565 { PUC_PORT_TYPE_COM, 0x24, 0x00, COM_FREQ},
1566 },
1567 },
1568
1569 { "SUNIX 407X 2S/1P",
1570 { PCI_VENDOR_SUNIX, 0x7168, PCI_VENDOR_SUNIX, 0x4070 },
1571 { 0xffff, 0xffff, 0xffff, 0xeff0 },
1572 {
1573 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8},
1574 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8},
1575 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
1576 },
1577 },
1578
1579 { "SUNIX 408X 2S/2P",
1580 { PCI_VENDOR_SUNIX, 0x7168, PCI_VENDOR_SUNIX, 0x4080 },
1581 { 0xffff, 0xffff, 0xffff, 0xeff0 },
1582 {
1583 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8},
1584 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8},
1585 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
1586 { PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 },
1587 },
1588 },
1589
1590 { "SUNIX 409X 4S/2P",
1591 { PCI_VENDOR_SUNIX, 0x7168, PCI_VENDOR_SUNIX, 0x4090 },
1592 { 0xffff, 0xffff, 0xffff, 0xeff0 },
1593 {
1594 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8},
1595 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8},
1596 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ},
1597 { PUC_PORT_TYPE_COM, 0x14, 0x08, COM_FREQ},
1598 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
1599 { PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 },
1600 },
1601 },
1602
1603 /*
1604 * Dolphin Peripherals 4036 (dual serial port) card.
1605 * (Dolpin 4025 has the same ID but only one port)
1606 */
1607 { "Dolphin Peripherals 4036",
1608 { PCI_VENDOR_SUNIX, 0x7168, 0x0, 0x0 },
1609 { 0xffff, 0xffff, 0x0, 0x0 },
1610 {
1611 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8},
1612 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8},
1613 },
1614 },
1615
1616 /*
1617 * XXX no entry because I have no data:
1618 * XXX Dolphin Peripherals 4078 (dual serial and single parallel)
1619 */
1620
1621 { "Titan PCI-010HV2",
1622 { PCI_VENDOR_TITAN, 0xe001, 0, 0 },
1623 { 0xffff, 0xffff, 0, 0 },
1624 {
1625 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
1626 },
1627 },
1628 { "Titan PCI-200HV2",
1629 { PCI_VENDOR_TITAN, 0xe020, 0, 0 },
1630 { 0xffff, 0xffff, 0, 0 },
1631 {
1632 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 },
1633 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ * 8 },
1634 },
1635 },
1636
1637 /*
1638 * VScom PCI-800H. Uses 8 16950 UART, behind a PCI chips that offers
1639 * 4 com port on PCI device 0 and 4 on PCI device 1. PCI device 0 has
1640 * device ID 3 and PCI device 1 device ID 4.
1641 */
1642 { "Titan PCI-800H",
1643 { PCI_VENDOR_TITAN, 0xa003, 0, 0 },
1644 { 0xffff, 0xffff, 0, 0 },
1645 {
1646 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 },
1647 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8 },
1648 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 8 },
1649 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 8 },
1650 },
1651 },
1652 { "Titan PCI-800H",
1653 { PCI_VENDOR_TITAN, 0xa004, 0, 0 },
1654 { 0xffff, 0xffff, 0, 0 },
1655 {
1656 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 },
1657 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8 },
1658 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 8 },
1659 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 8 },
1660 },
1661 },
1662 { "Titan PCI-200H",
1663 { PCI_VENDOR_TITAN, 0xa005, 0, 0 },
1664 { 0xffff, 0xffff, 0, 0 },
1665 {
1666 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 },
1667 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8 },
1668 },
1669 },
1670 { "Titan PCI-800L",
1671 { PCI_VENDOR_TITAN, 0x8080, 0, 0 },
1672 { 0xffff, 0xffff, 0, 0 },
1673 {
1674 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ * 8 },
1675 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
1676 { PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ * 8 },
1677 { PUC_PORT_TYPE_COM, 0x20, 0x08, COM_FREQ * 8 },
1678 { PUC_PORT_TYPE_COM, 0x20, 0x10, COM_FREQ * 8 },
1679 { PUC_PORT_TYPE_COM, 0x20, 0x18, COM_FREQ * 8 },
1680 { PUC_PORT_TYPE_COM, 0x20, 0x20, COM_FREQ * 8 },
1681 { PUC_PORT_TYPE_COM, 0x20, 0x28, COM_FREQ * 8 },
1682 },
1683 },
1684
1685 /* US Robotics (3Com) PCI Modems */
1686 { "US Robotics (3Com) 3CP5609 PCI 16550 Modem",
1687 { PCI_VENDOR_USR, 0x1008, 0, 0 },
1688 { 0xffff, 0xffff, 0, 0 },
1689 {
1690 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
1691 },
1692 },
1693
1694 { .name = NULL },
1695 };
1696