pucdata.c revision 1.65 1 /* $NetBSD: pucdata.c,v 1.65 2010/07/08 12:09:31 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.65 2010/07/08 12:09:31 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-Express 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-Express I/O Card 8S RS232 */
492 { "Moxa Technologies, SmartIO CP-168EL-A/PCIe",
493 { PCI_VENDOR_MOXA, 0x1683, 0, 0 },
494 { 0xffff, 0xffff, 0, 0 },
495 {
496 { PUC_PORT_TYPE_COM, 0x14, 0x000, COM_FREQ * 8 },
497 { PUC_PORT_TYPE_COM, 0x14, 0x200, COM_FREQ * 8 },
498 { PUC_PORT_TYPE_COM, 0x14, 0x400, COM_FREQ * 8 },
499 { PUC_PORT_TYPE_COM, 0x14, 0x600, COM_FREQ * 8 },
500 { PUC_PORT_TYPE_COM, 0x14, 0x800, COM_FREQ * 8 },
501 { PUC_PORT_TYPE_COM, 0x14, 0xa00, COM_FREQ * 8 },
502 { PUC_PORT_TYPE_COM, 0x14, 0xc00, COM_FREQ * 8 },
503 { PUC_PORT_TYPE_COM, 0x14, 0xe00, 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 Peripheral Controller :UART part */
662 { "NetMos NM9901 UART",
663 { PCI_VENDOR_NETMOS, PCI_PRODUCT_NETMOS_NM9901, 0xa000, 0x1000 },
664 { 0xffff, 0xffff, 0xffff, 0xffff },
665 {
666 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
667 },
668 },
669
670 /* NetMos PCIe NM9901 : 1P */
671 { "NetMos NM9901 LPT",
672 { PCI_VENDOR_NETMOS, 0x9901, 0xa000, 0x2000 },
673 { 0xffff, 0xffff, 0xffff, 0xffff },
674 {
675 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
676 },
677 },
678
679 /*
680 * Boards with an Oxford Semiconductor chip.
681 *
682 * Oxford Semiconductor provides documentation for their chip at:
683 * <URL:http://www.plxtech.com/products/uart>
684 *
685 * As sold by Kouwell <URL:http://www.kouwell.com/>.
686 * I/O Flex PCI I/O Card Model-223 with 4 serial and 1 parallel ports.
687 */
688
689 /* Oxford Semiconductor OXmPCI952 PCI UARTs */
690 { "Oxford Semiconductor OXmPCI952 UARTs",
691 { PCI_VENDOR_OXFORDSEMI, 0x950a, 0, 0 },
692 { 0xffff, 0xffff, 0, 0 },
693 {
694 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 10 },
695 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 10 },
696 },
697 },
698
699 /* Oxford Semiconductor OX16PCI952 PCI `950 UARTs - 128 byte FIFOs */
700 { "Oxford Semiconductor OX16PCI952 UARTs",
701 { PCI_VENDOR_OXFORDSEMI, 0x9521, 0, 0 },
702 { 0xffff, 0xffff, 0, 0 },
703 {
704 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
705 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
706 },
707 },
708
709 /* Oxford Semiconductor OX16PCI952 PCI Parallel port */
710 { "Oxford Semiconductor OX16PCI952 Parallel port",
711 { PCI_VENDOR_OXFORDSEMI, 0x9523, 0, 0 },
712 { 0xffff, 0xffff, 0, 0 },
713 {
714 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
715 },
716 },
717
718 /* I-O DATA RSA-PCI2 four/eight(1-4) UARTs based on OX16PCI954 */
719 { "I-O DATA RSA-PCI2/P4 or P8 (1-4) UARTs",
720 { PCI_VENDOR_OXFORDSEMI, 0x9501, PCI_VENDOR_IODATA, 0xd007 },
721 { 0xffff, 0xffff, 0xffff, 0xffff },
722 {
723 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 },
724 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8 },
725 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 8 },
726 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 8 },
727 },
728 },
729
730 /* OEM of Oxford Semiconductor PCI UARTs? */
731 { "SIIG Cyber 4 PCI 16550",
732 { PCI_VENDOR_OXFORDSEMI, 0x9501, PCI_VENDOR_SIIG, 0x2050 },
733 { 0xffff, 0xffff, 0xffff, 0xffff },
734 {
735 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 10 },
736 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 10 },
737 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 10 },
738 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 10 },
739 },
740 },
741
742 /* OEM of Oxford Semiconductor PCI UARTs? */
743 { "SIIG Cyber 4S PCI 16C650 (20x family)",
744 { PCI_VENDOR_OXFORDSEMI, 0x9501, PCI_VENDOR_SIIG, 0x2051 },
745 { 0xffff, 0xffff, 0xffff, 0xffff },
746 {
747 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 10 },
748 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 10 },
749 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 10 },
750 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 10 },
751 },
752 },
753
754 /* OEM of Oxford Semiconductor PCI UARTs? */
755 { "Avlab LP PCI 4S Quartet",
756 { PCI_VENDOR_OXFORDSEMI, 0x9501, PCI_VENDOR_AVLAB, 0x2150 },
757 { 0xffff, 0xffff, 0xffff, 0xffff },
758 {
759 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 10 },
760 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 10 },
761 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 10 },
762 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 10 },
763 },
764 },
765
766 /* Oxford Semiconductor OX16PCI954 PCI UARTs */
767 { "Oxford Semiconductor OX16PCI954 UARTs",
768 { PCI_VENDOR_OXFORDSEMI, 0x9501, PCI_VENDOR_OXFORDSEMI, 0 },
769 { 0xffff, 0xffff, 0xffff, 0 },
770 {
771 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8},
772 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8},
773 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 8},
774 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 8},
775 },
776 },
777
778 /* Oxford Semiconductor OX16PCI954 PCI UARTs (default for 0x9501) */
779 { "Oxford Semiconductor OX16PCI954 UARTs",
780 { PCI_VENDOR_OXFORDSEMI, 0x9501, 0, 0 },
781 { 0xffff, 0xffff, 0, 0 },
782 {
783 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ},
784 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ},
785 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ},
786 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ},
787 },
788 },
789
790 /* I-O DATA RSA-PCI2 eight(5-8) UARTs base on OX16PCI954 */
791 { "I-O DATA RSA-PCI2/P8 (5-8) UARTs",
792 { PCI_VENDOR_OXFORDSEMI, 0x9511, PCI_VENDOR_IODATA, 0xd007 },
793 { 0xffff, 0xffff, 0xffff, 0xffff },
794 {
795 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 },
796 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8 },
797 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 8 },
798 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 8 },
799 },
800 },
801
802 /* Exsys EX-41098, second part of SIIG Cyber 8S PCI Card */
803 { "Exsys EX-41098",
804 { PCI_VENDOR_OXFORDSEMI, 0x9511, PCI_VENDOR_SIIG, 0x2082 },
805 { 0xffff, 0xffff, 0xffff, 0xffff },
806 {
807 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 10},
808 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 10},
809 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 10},
810 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 10},
811 },
812 },
813
814 /* Oxford Semiconductor OX16PCI954 PCI Parallel port */
815 { "Oxford Semiconductor OX16PCI954 Parallel port",
816 { PCI_VENDOR_OXFORDSEMI, 0x9513, 0, 0 },
817 { 0xffff, 0xffff, 0, 0 },
818 {
819 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
820 },
821 },
822
823 /* Oxford Semiconductor OX16PCI958 UARTs */
824 { "Oxford Semiconductor OX16PCI958 UARTs",
825 { PCI_VENDOR_OXFORDSEMI, 0x9538, 0, 0 },
826 { 0xffff, 0xffff, 0, 0 },
827 {
828 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 10},
829 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 10},
830 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 10},
831 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 10},
832 { PUC_PORT_TYPE_COM, 0x18, 0x20, COM_FREQ * 10},
833 { PUC_PORT_TYPE_COM, 0x18, 0x28, COM_FREQ * 10},
834 { PUC_PORT_TYPE_COM, 0x18, 0x30, COM_FREQ * 10},
835 { PUC_PORT_TYPE_COM, 0x18, 0x38, COM_FREQ * 10},
836 },
837 },
838
839 /*
840 * XXX no entry because I have no data:
841 * XXX Dolphin Peripherals 4006 (single parallel)
842 */
843
844 /*
845 * Dolphin Peripherals 4014 (dual parallel port) card. PLX 9050, with
846 * a seemingly-lame EEPROM setup that puts the Dolphin IDs
847 * into the subsystem fields, and claims that it's a
848 * network/misc (0x02/0x80) device.
849 */
850 { "Dolphin Peripherals 4014",
851 { PCI_VENDOR_PLX, 0x9050, 0xd84d, 0x6810 },
852 { 0xffff, 0xffff, 0xffff, 0xffff },
853 {
854 { PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 },
855 { PUC_PORT_TYPE_LPT, 0x24, 0x00, 0x00 },
856 },
857 },
858
859 /*
860 * XXX Dolphin Peripherals 4025 (single serial)
861 * (clashes with Dolphin Peripherals 4036 (2s variant)
862 */
863
864 /*
865 * Dolphin Peripherals 4035 (dual serial port) card. PLX 9050, with
866 * a seemingly-lame EEPROM setup that puts the Dolphin IDs
867 * into the subsystem fields, and claims that it's a
868 * network/misc (0x02/0x80) device.
869 */
870 { "Dolphin Peripherals 4035",
871 { PCI_VENDOR_PLX, 0x9050, 0xd84d, 0x6808 },
872 { 0xffff, 0xffff, 0xffff, 0xffff },
873 {
874 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
875 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
876 },
877 },
878
879 /* VScom PCI-200: 2S */
880 { "VScom PCI-200",
881 { PCI_VENDOR_PLX, 0x1103, PCI_VENDOR_PLX, 0x1103 },
882 { 0xffff, 0xffff, 0xffff, 0xffff },
883 {
884 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
885 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ * 8 },
886 },
887 },
888
889 /* VScom PCI-400: 4S */
890 { "VScom PCI-400",
891 { PCI_VENDOR_PLX, 0x1077, PCI_VENDOR_PLX, 0x1077 },
892 { 0xffff, 0xffff, 0xffff, 0xffff },
893 {
894 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
895 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 },
896 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 },
897 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 },
898 },
899 },
900
901 /* VScom PCI-800: 8S */
902 { "VScom PCI-800",
903 { PCI_VENDOR_PLX, 0x1076, PCI_VENDOR_PLX, 0x1076 },
904 { 0xffff, 0xffff, 0xffff, 0xffff },
905 {
906 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
907 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 },
908 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 },
909 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 },
910 { PUC_PORT_TYPE_COM, 0x18, 0x20, COM_FREQ * 8 },
911 { PUC_PORT_TYPE_COM, 0x18, 0x28, COM_FREQ * 8 },
912 { PUC_PORT_TYPE_COM, 0x18, 0x30, COM_FREQ * 8 },
913 { PUC_PORT_TYPE_COM, 0x18, 0x38, COM_FREQ * 8 },
914 },
915 },
916
917 /*
918 * Perle PCI-RAS 4 Modem ports
919 */
920 { "Perle Systems PCI-RAS 4 modem ports",
921 { PCI_VENDOR_PLX, 0x9030, 0x155f, 0xf001 },
922 { 0xffff, 0xffff, 0xffff, 0xffff },
923 {
924 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 4 },
925 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 4 },
926 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 4 },
927 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 4 },
928 },
929 },
930
931 /*
932 * Perle PCI-RASV92 4 Modem ports
933 */
934 { "Perle Systems PCI-RASV92 4 modem ports",
935 { PCI_VENDOR_PLX, 0x9050, 0x155f, 0xf001 },
936 { 0xffff, 0xffff, 0xffff, 0xffff },
937 {
938 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 4 },
939 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 4 },
940 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 4 },
941 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 4 },
942 },
943 },
944
945 /*
946 * Perle PCI-RAS 8 Modem ports
947 */
948 { "Perle Systems PCI-RAS 8 modem ports",
949 { PCI_VENDOR_PLX, 0x9030, 0x155f, 0xf010 },
950 { 0xffff, 0xffff, 0xffff, 0xffff },
951 {
952 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 4 },
953 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 4 },
954 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 4 },
955 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 4 },
956 { PUC_PORT_TYPE_COM, 0x18, 0x20, COM_FREQ * 4 },
957 { PUC_PORT_TYPE_COM, 0x18, 0x28, COM_FREQ * 4 },
958 { PUC_PORT_TYPE_COM, 0x18, 0x30, COM_FREQ * 4 },
959 { PUC_PORT_TYPE_COM, 0x18, 0x38, COM_FREQ * 4 },
960 },
961 },
962
963 /*
964 * Perle PCI-RASV92 8 Modem ports
965 */
966 { "Perle Systems PCI-RASV92 8 modem ports",
967 { PCI_VENDOR_PLX, 0x9050, 0x155f, 0xf010 },
968 { 0xffff, 0xffff, 0xffff, 0xffff },
969 {
970 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 4 },
971 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 4 },
972 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 4 },
973 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 4 },
974 { PUC_PORT_TYPE_COM, 0x18, 0x20, COM_FREQ * 4 },
975 { PUC_PORT_TYPE_COM, 0x18, 0x28, COM_FREQ * 4 },
976 { PUC_PORT_TYPE_COM, 0x18, 0x30, COM_FREQ * 4 },
977 { PUC_PORT_TYPE_COM, 0x18, 0x38, COM_FREQ * 4 },
978 },
979 },
980
981 /*
982 * Boca Research Turbo Serial 654 (4 serial port) card.
983 * Appears to be the same as Chase Research PLC PCI-FAST4
984 * and Perle PCI-FAST4 Multi-Port serial cards.
985 */
986 { "Boca Research Turbo Serial 654",
987 { PCI_VENDOR_PLX, 0x9050, 0x12e0, 0x0031 },
988 { 0xffff, 0xffff, 0xffff, 0xffff },
989 {
990 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 4 },
991 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 4 },
992 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 4 },
993 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 4 },
994 },
995 },
996
997 /*
998 * Boca Research Turbo Serial 658 (8 serial port) card.
999 * Appears to be the same as Chase Research PLC PCI-FAST8
1000 * and Perle PCI-FAST8 Multi-Port serial cards.
1001 */
1002 { "Boca Research Turbo Serial 658",
1003 { PCI_VENDOR_PLX, 0x9050, 0x12e0, 0x0021 },
1004 { 0xffff, 0xffff, 0xffff, 0xffff },
1005 {
1006 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 4 },
1007 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 4 },
1008 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 4 },
1009 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 4 },
1010 { PUC_PORT_TYPE_COM, 0x18, 0x20, COM_FREQ * 4 },
1011 { PUC_PORT_TYPE_COM, 0x18, 0x28, COM_FREQ * 4 },
1012 { PUC_PORT_TYPE_COM, 0x18, 0x30, COM_FREQ * 4 },
1013 { PUC_PORT_TYPE_COM, 0x18, 0x38, COM_FREQ * 4 },
1014 },
1015 },
1016
1017 /*
1018 * SIIG Boards.
1019 *
1020 * SIIG provides documentation for their boards at:
1021 * <URL:http://www.siig.com/driver.htm>
1022 *
1023 * Please excuse the weird ordering, it's the order they
1024 * use in their documentation.
1025 */
1026
1027 /*
1028 * SIIG "10x" family boards.
1029 */
1030
1031 /* SIIG Cyber Serial PCI 16C550 (10x family): 1S */
1032 { "SIIG Cyber Serial PCI 16C550 (10x family)",
1033 { PCI_VENDOR_SIIG, 0x1000, 0, 0 },
1034 { 0xffff, 0xffff, 0, 0 },
1035 {
1036 { PUC_PORT_TYPE_COM, 0x18, 0x00,
1037 (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR1 },
1038 },
1039 },
1040
1041 /* SIIG Cyber Serial PCI 16C650 (10x family): 1S */
1042 { "SIIG Cyber Serial PCI 16C650 (10x family)",
1043 { PCI_VENDOR_SIIG, 0x1001, 0, 0 },
1044 { 0xffff, 0xffff, 0, 0 },
1045 {
1046 { PUC_PORT_TYPE_COM, 0x18, 0x00,
1047 (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR1 },
1048 },
1049 },
1050
1051 /* SIIG Cyber Serial PCI 16C850 (10x family): 1S */
1052 { "SIIG Cyber Serial PCI 16C850 (10x family)",
1053 { PCI_VENDOR_SIIG, 0x1002, 0, 0 },
1054 { 0xffff, 0xffff, 0, 0 },
1055 {
1056 { PUC_PORT_TYPE_COM, 0x18, 0x00,
1057 (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR1 },
1058 },
1059 },
1060
1061 /* SIIG Cyber I/O PCI 16C550 (10x family): 1S, 1P */
1062 { "SIIG Cyber I/O PCI 16C550 (10x family)",
1063 { PCI_VENDOR_SIIG, 0x1010, 0, 0 },
1064 { 0xffff, 0xffff, 0, 0 },
1065 {
1066 { PUC_PORT_TYPE_COM, 0x18, 0x00,
1067 (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR0 },
1068 { PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 },
1069 },
1070 },
1071
1072 /* SIIG Cyber I/O PCI 16C650 (10x family): 1S, 1P */
1073 { "SIIG Cyber I/O PCI 16C650 (10x family)",
1074 { PCI_VENDOR_SIIG, 0x1011, 0, 0 },
1075 { 0xffff, 0xffff, 0, 0 },
1076 {
1077 { PUC_PORT_TYPE_COM, 0x18, 0x00,
1078 (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR0 },
1079 { PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 },
1080 },
1081 },
1082
1083 /* SIIG Cyber I/O PCI 16C850 (10x family): 1S, 1P */
1084 { "SIIG Cyber I/O PCI 16C850 (10x family)",
1085 { PCI_VENDOR_SIIG, 0x1012, 0, 0 },
1086 { 0xffff, 0xffff, 0, 0 },
1087 {
1088 { PUC_PORT_TYPE_COM, 0x18, 0x00,
1089 (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR0 },
1090 { PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 },
1091 },
1092 },
1093
1094 /* SIIG Cyber Parallel PCI (10x family): 1P */
1095 { "SIIG Cyber Parallel PCI (10x family)",
1096 { PCI_VENDOR_SIIG, 0x1020, 0, 0 },
1097 { 0xffff, 0xffff, 0, 0 },
1098 {
1099 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
1100 },
1101 },
1102
1103 /* SIIG Cyber Parallel Dual PCI (10x family): 2P */
1104 { "SIIG Cyber Parallel Dual PCI (10x family)",
1105 { PCI_VENDOR_SIIG, 0x1021, 0, 0 },
1106 { 0xffff, 0xffff, 0, 0 },
1107 {
1108 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
1109 { PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 },
1110 },
1111 },
1112
1113 /* SIIG Cyber Serial Dual PCI 16C550 (10x family): 2S */
1114 { "SIIG Cyber Serial Dual PCI 16C550 (10x family)",
1115 { PCI_VENDOR_SIIG, 0x1030, 0, 0 },
1116 { 0xffff, 0xffff, 0, 0 },
1117 {
1118 { PUC_PORT_TYPE_COM, 0x18, 0x00,
1119 (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR2 },
1120 { PUC_PORT_TYPE_COM, 0x1c, 0x00,
1121 (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR3 },
1122 },
1123 },
1124
1125 /* SIIG Cyber Serial Dual PCI 16C650 (10x family): 2S */
1126 { "SIIG Cyber Serial Dual PCI 16C650 (10x family)",
1127 { PCI_VENDOR_SIIG, 0x1031, 0, 0 },
1128 { 0xffff, 0xffff, 0, 0 },
1129 {
1130 { PUC_PORT_TYPE_COM, 0x18, 0x00,
1131 (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR2 },
1132 { PUC_PORT_TYPE_COM, 0x1c, 0x00,
1133 (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR3 },
1134 },
1135 },
1136
1137 /* SIIG Cyber Serial Dual PCI 16C850 (10x family): 2S */
1138 { "SIIG Cyber Serial Dual PCI 16C850 (10x family)",
1139 { PCI_VENDOR_SIIG, 0x1032, 0, 0 },
1140 { 0xffff, 0xffff, 0, 0 },
1141 {
1142 { PUC_PORT_TYPE_COM, 0x18, 0x00,
1143 (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR2 },
1144 { PUC_PORT_TYPE_COM, 0x1c, 0x00,
1145 (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR3 },
1146 },
1147 },
1148
1149 /* SIIG Cyber 2S1P PCI 16C550 (10x family): 2S, 1P */
1150 { "SIIG Cyber 2S1P PCI 16C550 (10x family)",
1151 { PCI_VENDOR_SIIG, 0x1034, 0, 0 },
1152 { 0xffff, 0xffff, 0, 0 },
1153 {
1154 { PUC_PORT_TYPE_COM, 0x18, 0x00,
1155 (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR2 },
1156 { PUC_PORT_TYPE_COM, 0x1c, 0x00,
1157 (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR3 },
1158 { PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 },
1159 },
1160 },
1161
1162 /* SIIG Cyber 2S1P PCI 16C650 (10x family): 2S, 1P */
1163 { "SIIG Cyber 2S1P PCI 16C650 (10x family)",
1164 { PCI_VENDOR_SIIG, 0x1035, 0, 0 },
1165 { 0xffff, 0xffff, 0, 0 },
1166 {
1167 { PUC_PORT_TYPE_COM, 0x18, 0x00,
1168 (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR2 },
1169 { PUC_PORT_TYPE_COM, 0x1c, 0x00,
1170 (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR3 },
1171 { PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 },
1172 },
1173 },
1174
1175 /* SIIG Cyber 2S1P PCI 16C850 (10x family): 2S, 1P */
1176 { "SIIG Cyber 2S1P PCI 16C850 (10x family)",
1177 { PCI_VENDOR_SIIG, 0x1036, 0, 0 },
1178 { 0xffff, 0xffff, 0, 0 },
1179 {
1180 { PUC_PORT_TYPE_COM, 0x18, 0x00,
1181 (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR2 },
1182 { PUC_PORT_TYPE_COM, 0x1c, 0x00,
1183 (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR3 },
1184 { PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 },
1185 },
1186 },
1187
1188 /* SIIG Cyber 4S PCI 16C550 (10x family): 4S */
1189 { "SIIG Cyber 4S PCI 16C550 (10x family)",
1190 { PCI_VENDOR_SIIG, 0x1050, 0, 0 },
1191 { 0xffff, 0xffff, 0, 0 },
1192 {
1193 { PUC_PORT_TYPE_COM, 0x18, 0x00,
1194 (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR0 },
1195 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ * 8 },
1196 { PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ * 8 },
1197 { PUC_PORT_TYPE_COM, 0x24, 0x00, COM_FREQ * 8 },
1198 },
1199 },
1200
1201 /* SIIG Cyber 4S PCI 16C650 (10x family): 4S */
1202 { "SIIG Cyber 4S PCI 16C650 (10x family)",
1203 { PCI_VENDOR_SIIG, 0x1051, 0, 0 },
1204 { 0xffff, 0xffff, 0, 0 },
1205 {
1206 { PUC_PORT_TYPE_COM, 0x18, 0x00,
1207 (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR0 },
1208 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ * 8 },
1209 { PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ * 8 },
1210 { PUC_PORT_TYPE_COM, 0x24, 0x00, COM_FREQ * 8 },
1211 },
1212 },
1213
1214 /* SIIG Cyber 4S PCI 16C850 (10x family): 4S */
1215 { "SIIG Cyber 4S PCI 16C850 (10x family)",
1216 { PCI_VENDOR_SIIG, 0x1052, 0, 0 },
1217 { 0xffff, 0xffff, 0, 0 },
1218 {
1219 { PUC_PORT_TYPE_COM, 0x18, 0x00,
1220 (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR0 },
1221 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ * 8 },
1222 { PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ * 8 },
1223 { PUC_PORT_TYPE_COM, 0x24, 0x00, COM_FREQ * 8 },
1224 },
1225 },
1226
1227 /*
1228 * SIIG "20x" family boards.
1229 */
1230
1231 /* SIIG Cyber Serial PCI 16C550 (20x family): 1S */
1232 { "SIIG Cyber Serial PCI 16C550 (20x family)",
1233 { PCI_VENDOR_SIIG, 0x2000, 0, 0 },
1234 { 0xffff, 0xffff, 0, 0 },
1235 {
1236 { PUC_PORT_TYPE_COM, 0x10, 0x00,
1237 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
1238 },
1239 },
1240
1241 /* SIIG Cyber Serial PCI 16C650 (20x family): 1S */
1242 { "SIIG Cyber Serial PCI 16C650 (20x family)",
1243 { PCI_VENDOR_SIIG, 0x2001, 0, 0 },
1244 { 0xffff, 0xffff, 0, 0 },
1245 {
1246 { PUC_PORT_TYPE_COM, 0x10, 0x00,
1247 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
1248 },
1249 },
1250
1251 /* SIIG Cyber Serial PCI 16C850 (20x family): 1S */
1252 { "SIIG Cyber Serial PCI 16C850 (20x family)",
1253 { PCI_VENDOR_SIIG, 0x2002, 0, 0 },
1254 { 0xffff, 0xffff, 0, 0 },
1255 {
1256 { PUC_PORT_TYPE_COM, 0x10, 0x00,
1257 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
1258 },
1259 },
1260
1261 /* SIIG Cyber I/O PCI 16C550 (20x family): 1S, 1P */
1262 { "SIIG Cyber I/O PCI 16C550 (20x family)",
1263 { PCI_VENDOR_SIIG, 0x2010, 0, 0 },
1264 { 0xffff, 0xffff, 0, 0 },
1265 {
1266 { PUC_PORT_TYPE_COM, 0x10, 0x00,
1267 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
1268 { PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 },
1269 },
1270 },
1271
1272 /* SIIG Cyber I/O PCI 16C650 (20x family): 1S, 1P */
1273 { "SIIG Cyber I/O PCI 16C650 (20x family)",
1274 { PCI_VENDOR_SIIG, 0x2011, 0, 0 },
1275 { 0xffff, 0xffff, 0, 0 },
1276 {
1277 { PUC_PORT_TYPE_COM, 0x10, 0x00,
1278 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
1279 { PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 },
1280 },
1281 },
1282
1283 /* SIIG Cyber I/O PCI 16C850 (20x family): 1S, 1P */
1284 { "SIIG Cyber I/O PCI 16C850 (20x family)",
1285 { PCI_VENDOR_SIIG, 0x2012, 0, 0 },
1286 { 0xffff, 0xffff, 0, 0 },
1287 {
1288 { PUC_PORT_TYPE_COM, 0x10, 0x00,
1289 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
1290 { PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 },
1291 },
1292 },
1293
1294 /* SIIG Cyber Parallel PCI (20x family): 1P */
1295 { "SIIG Cyber Parallel PCI (20x family)",
1296 { PCI_VENDOR_SIIG, 0x2020, 0, 0 },
1297 { 0xffff, 0xffff, 0, 0 },
1298 {
1299 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
1300 },
1301 },
1302
1303 /* SIIG Cyber Parallel Dual PCI (20x family): 2P */
1304 { "SIIG Cyber Parallel Dual PCI (20x family)",
1305 { PCI_VENDOR_SIIG, 0x2021, 0, 0 },
1306 { 0xffff, 0xffff, 0, 0 },
1307 {
1308 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
1309 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
1310 },
1311 },
1312
1313 /* SIIG Cyber Serial Dual PCI 16C550 (20x family): 2S */
1314 { "SIIG Cyber Serial Dual PCI 16C550 (20x family)",
1315 { PCI_VENDOR_SIIG, 0x2030, 0, 0 },
1316 { 0xffff, 0xffff, 0, 0 },
1317 {
1318 { PUC_PORT_TYPE_COM, 0x10, 0x00,
1319 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
1320 { PUC_PORT_TYPE_COM, 0x14, 0x00,
1321 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR1 },
1322 },
1323 },
1324
1325 /* SIIG Cyber Serial Dual PCI 16C650 (20x family): 2S */
1326 { "SIIG Cyber Serial Dual PCI 16C650 (20x family)",
1327 { PCI_VENDOR_SIIG, 0x2031, 0, 0 },
1328 { 0xffff, 0xffff, 0, 0 },
1329 {
1330 { PUC_PORT_TYPE_COM, 0x10, 0x00,
1331 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
1332 { PUC_PORT_TYPE_COM, 0x14, 0x00,
1333 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR1 },
1334 },
1335 },
1336
1337 /* SIIG Cyber Serial Dual PCI 16C850 (20x family): 2S */
1338 { "SIIG Cyber Serial Dual PCI 16C850 (20x family)",
1339 { PCI_VENDOR_SIIG, 0x2032, 0, 0 },
1340 { 0xffff, 0xffff, 0, 0 },
1341 {
1342 { PUC_PORT_TYPE_COM, 0x10, 0x00,
1343 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
1344 { PUC_PORT_TYPE_COM, 0x14, 0x00,
1345 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR1 },
1346 },
1347 },
1348
1349 /* SIIG Cyber 2P1S PCI 16C550 (20x family): 1S, 2P */
1350 { "SIIG Cyber 2P1S PCI 16C550 (20x family)",
1351 { PCI_VENDOR_SIIG, 0x2040, 0, 0 },
1352 { 0xffff, 0xffff, 0, 0 },
1353 {
1354 { PUC_PORT_TYPE_COM, 0x10, 0x00,
1355 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
1356 { PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 },
1357 { PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 },
1358 },
1359 },
1360
1361 /* SIIG Cyber 2P1S PCI 16C650 (20x family): 1S, 2P */
1362 { "SIIG Cyber 2P1S PCI 16C650 (20x family)",
1363 { PCI_VENDOR_SIIG, 0x2041, 0, 0 },
1364 { 0xffff, 0xffff, 0, 0 },
1365 {
1366 { PUC_PORT_TYPE_COM, 0x10, 0x00,
1367 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
1368 { PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 },
1369 { PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 },
1370 },
1371 },
1372
1373 /* SIIG Cyber 2P1S PCI 16C850 (20x family): 1S, 2P */
1374 { "SIIG Cyber 2P1S PCI 16C850 (20x family)",
1375 { PCI_VENDOR_SIIG, 0x2042, 0, 0 },
1376 { 0xffff, 0xffff, 0, 0 },
1377 {
1378 { PUC_PORT_TYPE_COM, 0x10, 0x00,
1379 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
1380 { PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 },
1381 { PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 },
1382 },
1383 },
1384
1385 /* SIIG Cyber 4S PCI 16C550 (20x family): 4S */
1386 { "SIIG Cyber 4S PCI 16C550 (20x family)",
1387 { PCI_VENDOR_SIIG, 0x2050, 0, 0 },
1388 { 0xffff, 0xffff, 0, 0 },
1389 {
1390 { PUC_PORT_TYPE_COM, 0x10, 0x00,
1391 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
1392 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ * 8 },
1393 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
1394 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ * 8 },
1395 },
1396 },
1397
1398 /* SIIG Cyber 4S PCI 16C650 (20x family): 4S */
1399 { "SIIG Cyber 4S PCI 16C650 (20x family)",
1400 { PCI_VENDOR_SIIG, 0x2051, 0, 0 },
1401 { 0xffff, 0xffff, 0, 0 },
1402 {
1403 { PUC_PORT_TYPE_COM, 0x10, 0x00,
1404 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
1405 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ * 8 },
1406 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
1407 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ * 8 },
1408 },
1409 },
1410
1411 /* SIIG Cyber 4S PCI 16C850 (20x family): 4S */
1412 { "SIIG Cyber 4S PCI 16C850 (20x family)",
1413 { PCI_VENDOR_SIIG, 0x2052, 0, 0 },
1414 { 0xffff, 0xffff, 0, 0 },
1415 {
1416 { PUC_PORT_TYPE_COM, 0x10, 0x00,
1417 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
1418 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ * 8 },
1419 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
1420 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ * 8 },
1421 },
1422 },
1423
1424 /* SIIG Cyber 2S1P PCI 16C550 (20x family): 2S, 1P */
1425 { "SIIG Cyber 2S1P PCI 16C550 (20x family)",
1426 { PCI_VENDOR_SIIG, 0x2060, 0, 0 },
1427 { 0xffff, 0xffff, 0, 0 },
1428 {
1429 { PUC_PORT_TYPE_COM, 0x10, 0x00,
1430 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
1431 { PUC_PORT_TYPE_COM, 0x14, 0x00,
1432 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR1 },
1433 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
1434 },
1435 },
1436
1437 /* SIIG Cyber 2S1P PCI 16C650 (20x family): 2S, 1P */
1438 { "SIIG Cyber 2S1P PCI 16C650 (20x family)",
1439 { PCI_VENDOR_SIIG, 0x2061, 0, 0 },
1440 { 0xffff, 0xffff, 0, 0 },
1441 {
1442 { PUC_PORT_TYPE_COM, 0x10, 0x00,
1443 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
1444 { PUC_PORT_TYPE_COM, 0x14, 0x00,
1445 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR1 },
1446 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
1447 },
1448 },
1449
1450 /* SIIG Cyber 2S1P PCI 16C850 (20x family): 2S, 1P */
1451 { "SIIG Cyber 2S1P PCI 16C850 (20x family)",
1452 { PCI_VENDOR_SIIG, 0x2062, 0, 0 },
1453 { 0xffff, 0xffff, 0, 0 },
1454 {
1455 { PUC_PORT_TYPE_COM, 0x10, 0x00,
1456 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
1457 { PUC_PORT_TYPE_COM, 0x14, 0x00,
1458 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR1 },
1459 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
1460 },
1461 },
1462
1463 /* SIIG PS8000 PCI 8S 16C550 (20x family): 8S - 16 Byte FIFOs */
1464 { "SIIG PS8000 PCI 8S 16C550 (20x family)",
1465 { PCI_VENDOR_SIIG, 0x2080, 0, 0 },
1466 { 0xffff, 0xffff, 0, 0 },
1467 {
1468 { PUC_PORT_TYPE_COM, 0x10, 0x00,
1469 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
1470 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ * 8 },
1471 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
1472 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ * 8 },
1473 { PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ * 8 },
1474 { PUC_PORT_TYPE_COM, 0x20, 0x08, COM_FREQ * 8 },
1475 { PUC_PORT_TYPE_COM, 0x20, 0x10, COM_FREQ * 8 },
1476 { PUC_PORT_TYPE_COM, 0x20, 0x18, COM_FREQ * 8 },
1477 },
1478 },
1479
1480 /* SIIG PS8000 PCI 8S 16C650 (20x family): 8S - 32 Byte FIFOs */
1481 { "SIIG PS8000 PCI 8S 16C650 (20x family)",
1482 { PCI_VENDOR_SIIG, 0x2081, 0, 0 },
1483 { 0xffff, 0xffff, 0, 0 },
1484 {
1485 { PUC_PORT_TYPE_COM, 0x10, 0x00,
1486 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
1487 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ * 8 },
1488 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
1489 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ * 8 },
1490 { PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ * 8 },
1491 { PUC_PORT_TYPE_COM, 0x20, 0x08, COM_FREQ * 8 },
1492 { PUC_PORT_TYPE_COM, 0x20, 0x10, COM_FREQ * 8 },
1493 { PUC_PORT_TYPE_COM, 0x20, 0x18, COM_FREQ * 8 },
1494 },
1495 },
1496
1497 /* SIIG PS8000 PCI 8S 16C850 (20x family): 8S - 128 Byte FIFOs */
1498 { "SIIG PS8000 PCI 8S 16C850 (20x family)",
1499 { PCI_VENDOR_SIIG, 0x2082, 0, 0 },
1500 { 0xffff, 0xffff, 0, 0 },
1501 {
1502 { PUC_PORT_TYPE_COM, 0x10, 0x00,
1503 (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
1504 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ * 8 },
1505 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
1506 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ * 8 },
1507 { PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ * 8 },
1508 { PUC_PORT_TYPE_COM, 0x20, 0x08, COM_FREQ * 8 },
1509 { PUC_PORT_TYPE_COM, 0x20, 0x10, COM_FREQ * 8 },
1510 { PUC_PORT_TYPE_COM, 0x20, 0x18, COM_FREQ * 8 },
1511 },
1512 },
1513
1514 /*
1515 * SUNIX 40XX series of serial/parallel combo cards.
1516 * Tested with 4055A and 4065A.
1517 */
1518 { "SUNIX 400X 1P",
1519 { PCI_VENDOR_SUNIX, 0x7168, PCI_VENDOR_SUNIX, 0x4000 },
1520 { 0xffff, 0xffff, 0xffff, 0xeff0 },
1521 {
1522 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
1523 },
1524 },
1525
1526 { "SUNIX 401X 2P",
1527 { PCI_VENDOR_SUNIX, 0x7168, PCI_VENDOR_SUNIX, 0x4010 },
1528 { 0xffff, 0xffff, 0xffff, 0xeff0 },
1529 {
1530 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
1531 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
1532 },
1533 },
1534
1535 { "SUNIX 402X 1S",
1536 { PCI_VENDOR_SUNIX, 0x7168, PCI_VENDOR_SUNIX, 0x4020 },
1537 { 0xffff, 0xffff, 0xffff, 0xeff0 },
1538 {
1539 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8},
1540 },
1541 },
1542
1543 { "SUNIX 403X 2S",
1544 { PCI_VENDOR_SUNIX, 0x7168, PCI_VENDOR_SUNIX, 0x4030 },
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 },
1550 },
1551
1552 { "SUNIX 405X 4S",
1553 { PCI_VENDOR_SUNIX, 0x7168, PCI_VENDOR_SUNIX, 0x4050 },
1554 { 0xffff, 0xffff, 0xffff, 0xeff0 },
1555 {
1556 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8},
1557 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8},
1558 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ},
1559 { PUC_PORT_TYPE_COM, 0x14, 0x08, COM_FREQ},
1560 },
1561 },
1562
1563 { "SUNIX 406X 8S",
1564 { PCI_VENDOR_SUNIX, 0x7168, PCI_VENDOR_SUNIX, 0x4060 },
1565 { 0xffff, 0xffff, 0xffff, 0xeff0 },
1566 {
1567 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8},
1568 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8},
1569 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ},
1570 { PUC_PORT_TYPE_COM, 0x14, 0x08, COM_FREQ},
1571 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ},
1572 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ},
1573 { PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ},
1574 { PUC_PORT_TYPE_COM, 0x24, 0x00, COM_FREQ},
1575 },
1576 },
1577
1578 { "SUNIX 407X 2S/1P",
1579 { PCI_VENDOR_SUNIX, 0x7168, PCI_VENDOR_SUNIX, 0x4070 },
1580 { 0xffff, 0xffff, 0xffff, 0xeff0 },
1581 {
1582 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8},
1583 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8},
1584 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
1585 },
1586 },
1587
1588 { "SUNIX 408X 2S/2P",
1589 { PCI_VENDOR_SUNIX, 0x7168, PCI_VENDOR_SUNIX, 0x4080 },
1590 { 0xffff, 0xffff, 0xffff, 0xeff0 },
1591 {
1592 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8},
1593 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8},
1594 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
1595 { PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 },
1596 },
1597 },
1598
1599 { "SUNIX 409X 4S/2P",
1600 { PCI_VENDOR_SUNIX, 0x7168, PCI_VENDOR_SUNIX, 0x4090 },
1601 { 0xffff, 0xffff, 0xffff, 0xeff0 },
1602 {
1603 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8},
1604 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8},
1605 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ},
1606 { PUC_PORT_TYPE_COM, 0x14, 0x08, COM_FREQ},
1607 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
1608 { PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 },
1609 },
1610 },
1611
1612 /*
1613 * Dolphin Peripherals 4036 (dual serial port) card.
1614 * (Dolpin 4025 has the same ID but only one port)
1615 */
1616 { "Dolphin Peripherals 4036",
1617 { PCI_VENDOR_SUNIX, 0x7168, 0x0, 0x0 },
1618 { 0xffff, 0xffff, 0x0, 0x0 },
1619 {
1620 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8},
1621 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8},
1622 },
1623 },
1624
1625 /*
1626 * XXX no entry because I have no data:
1627 * XXX Dolphin Peripherals 4078 (dual serial and single parallel)
1628 */
1629
1630 { "Titan PCI-010HV2",
1631 { PCI_VENDOR_TITAN, 0xe001, 0, 0 },
1632 { 0xffff, 0xffff, 0, 0 },
1633 {
1634 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
1635 },
1636 },
1637 { "Titan PCI-200HV2",
1638 { PCI_VENDOR_TITAN, 0xe020, 0, 0 },
1639 { 0xffff, 0xffff, 0, 0 },
1640 {
1641 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 },
1642 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ * 8 },
1643 },
1644 },
1645
1646 /*
1647 * VScom PCI-800H. Uses 8 16950 UART, behind a PCI chips that offers
1648 * 4 com port on PCI device 0 and 4 on PCI device 1. PCI device 0 has
1649 * device ID 3 and PCI device 1 device ID 4.
1650 */
1651 { "Titan PCI-800H",
1652 { PCI_VENDOR_TITAN, 0xa003, 0, 0 },
1653 { 0xffff, 0xffff, 0, 0 },
1654 {
1655 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 },
1656 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8 },
1657 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 8 },
1658 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 8 },
1659 },
1660 },
1661 { "Titan PCI-800H",
1662 { PCI_VENDOR_TITAN, 0xa004, 0, 0 },
1663 { 0xffff, 0xffff, 0, 0 },
1664 {
1665 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 },
1666 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8 },
1667 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 8 },
1668 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 8 },
1669 },
1670 },
1671 { "Titan PCI-200H",
1672 { PCI_VENDOR_TITAN, 0xa005, 0, 0 },
1673 { 0xffff, 0xffff, 0, 0 },
1674 {
1675 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 },
1676 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8 },
1677 },
1678 },
1679 { "Titan PCI-800L",
1680 { PCI_VENDOR_TITAN, 0x8080, 0, 0 },
1681 { 0xffff, 0xffff, 0, 0 },
1682 {
1683 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ * 8 },
1684 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
1685 { PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ * 8 },
1686 { PUC_PORT_TYPE_COM, 0x20, 0x08, COM_FREQ * 8 },
1687 { PUC_PORT_TYPE_COM, 0x20, 0x10, COM_FREQ * 8 },
1688 { PUC_PORT_TYPE_COM, 0x20, 0x18, COM_FREQ * 8 },
1689 { PUC_PORT_TYPE_COM, 0x20, 0x20, COM_FREQ * 8 },
1690 { PUC_PORT_TYPE_COM, 0x20, 0x28, COM_FREQ * 8 },
1691 },
1692 },
1693
1694 /* US Robotics (3Com) PCI Modems */
1695 { "US Robotics (3Com) 3CP5609 PCI 16550 Modem",
1696 { PCI_VENDOR_USR, 0x1008, 0, 0 },
1697 { 0xffff, 0xffff, 0, 0 },
1698 {
1699 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
1700 },
1701 },
1702
1703 { .name = NULL },
1704 };
1705