1 /* $NetBSD: pucdata.c,v 1.32 2002/10/29 08:59:36 chs 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.32 2002/10/29 08:59:36 chs Exp $"); 40 41 #include <sys/param.h> 42 #include <sys/systm.h> 43 #include <sys/device.h> 44 45 #include <dev/pci/pcireg.h> 46 #include <dev/pci/pcivar.h> 47 #include <dev/pci/pucvar.h> 48 #include <dev/ic/comreg.h> 49 50 const struct puc_device_description puc_devices[] = { 51 /* 52 * SUNIX 40XX series of serial/parallel combo cards. 53 * Tested with 4055A and 4065A. 54 */ 55 { "SUNIX 400X 1P", 56 { 0x1409, 0x7168, 0x1409, 0x4000 }, 57 { 0xffff, 0xffff, 0xffff, 0xeff0 }, 58 { 59 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 }, 60 }, 61 }, 62 63 { "SUNIX 401X 2P", 64 { 0x1409, 0x7168, 0x1409, 0x4010 }, 65 { 0xffff, 0xffff, 0xffff, 0xeff0 }, 66 { 67 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 }, 68 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 }, 69 }, 70 }, 71 72 { "SUNIX 402X 1S", 73 { 0x1409, 0x7168, 0x1409, 0x4020 }, 74 { 0xffff, 0xffff, 0xffff, 0xeff0 }, 75 { 76 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8}, 77 }, 78 }, 79 80 { "SUNIX 403X 2S", 81 { 0x1409, 0x7168, 0x1409, 0x4030 }, 82 { 0xffff, 0xffff, 0xffff, 0xeff0 }, 83 { 84 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8}, 85 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8}, 86 }, 87 }, 88 89 { "SUNIX 405X 4S", 90 { 0x1409, 0x7168, 0x1409, 0x4050 }, 91 { 0xffff, 0xffff, 0xffff, 0xeff0 }, 92 { 93 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8}, 94 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8}, 95 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ}, 96 { PUC_PORT_TYPE_COM, 0x14, 0x08, COM_FREQ}, 97 }, 98 }, 99 100 { "SUNIX 406X 8S", 101 { 0x1409, 0x7168, 0x1409, 0x4060 }, 102 { 0xffff, 0xffff, 0xffff, 0xeff0 }, 103 { 104 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8}, 105 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8}, 106 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ}, 107 { PUC_PORT_TYPE_COM, 0x14, 0x08, COM_FREQ}, 108 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ}, 109 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ}, 110 { PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ}, 111 { PUC_PORT_TYPE_COM, 0x24, 0x00, COM_FREQ}, 112 }, 113 }, 114 115 { "SUNIX 407X 2S/1P", 116 { 0x1409, 0x7168, 0x1409, 0x4070 }, 117 { 0xffff, 0xffff, 0xffff, 0xeff0 }, 118 { 119 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8}, 120 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8}, 121 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 }, 122 }, 123 }, 124 125 { "SUNIX 408X 2S/2P", 126 { 0x1409, 0x7168, 0x1409, 0x4080 }, 127 { 0xffff, 0xffff, 0xffff, 0xeff0 }, 128 { 129 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8}, 130 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8}, 131 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 }, 132 { PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 }, 133 }, 134 }, 135 136 { "SUNIX 409X 4S/2P", 137 { 0x1409, 0x7168, 0x1409, 0x4090 }, 138 { 0xffff, 0xffff, 0xffff, 0xeff0 }, 139 { 140 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8}, 141 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8}, 142 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ}, 143 { PUC_PORT_TYPE_COM, 0x14, 0x08, COM_FREQ}, 144 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 }, 145 { PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 }, 146 }, 147 }, 148 149 /* 150 * XXX no entry because I have no data: 151 * XXX Dolphin Peripherals 4006 (single parallel) 152 */ 153 154 /* 155 * Dolphin Peripherals 4014 (dual parallel port) card. PLX 9050, with 156 * a seemingly-lame EEPROM setup that puts the Dolphin IDs 157 * into the subsystem fields, and claims that it's a 158 * network/misc (0x02/0x80) device. 159 */ 160 { "Dolphin Peripherals 4014", 161 { 0x10b5, 0x9050, 0xd84d, 0x6810 }, 162 { 0xffff, 0xffff, 0xffff, 0xffff }, 163 { 164 { PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 }, 165 { PUC_PORT_TYPE_LPT, 0x24, 0x00, 0x00 }, 166 }, 167 }, 168 169 /* 170 * XXX Dolphin Peripherals 4025 (single serial) 171 * (clashes with Dolphin Peripherals 4036 (2s variant) 172 */ 173 174 /* 175 * Dolphin Peripherals 4035 (dual serial port) card. PLX 9050, with 176 * a seemingly-lame EEPROM setup that puts the Dolphin IDs 177 * into the subsystem fields, and claims that it's a 178 * network/misc (0x02/0x80) device. 179 */ 180 { "Dolphin Peripherals 4035", 181 { 0x10b5, 0x9050, 0xd84d, 0x6808 }, 182 { 0xffff, 0xffff, 0xffff, 0xffff }, 183 { 184 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, 185 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ }, 186 }, 187 }, 188 189 /* 190 * Dolphin Peripherals 4036 (dual serial port) card. 191 * (Dolpin 4025 has the same ID but only one port) 192 */ 193 { "Dolphin Peripherals 4036", 194 { 0x1409, 0x7168, 0x0, 0x0 }, 195 { 0xffff, 0xffff, 0x0, 0x0 }, 196 { 197 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8}, 198 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8}, 199 }, 200 }, 201 202 /* 203 * XXX no entry because I have no data: 204 * XXX Dolphin Peripherals 4078 (dual serial and single parallel) 205 */ 206 207 208 /* 209 * SIIG Boards. 210 * 211 * SIIG provides documentation for their boards at: 212 * <URL:http://www.siig.com/driver.htm> 213 * 214 * Please excuse the weird ordering, it's the order they 215 * use in their documentation. 216 */ 217 218 /* 219 * SIIG "10x" family boards. 220 */ 221 222 /* SIIG Cyber Serial PCI 16C550 (10x family): 1S */ 223 { "SIIG Cyber Serial PCI 16C550 (10x family)", 224 { 0x131f, 0x1000, 0, 0 }, 225 { 0xffff, 0xffff, 0, 0 }, 226 { 227 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, 228 }, 229 }, 230 231 /* SIIG Cyber Serial PCI 16C650 (10x family): 1S */ 232 { "SIIG Cyber Serial PCI 16C650 (10x family)", 233 { 0x131f, 0x1001, 0, 0 }, 234 { 0xffff, 0xffff, 0, 0 }, 235 { 236 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, 237 }, 238 }, 239 240 /* SIIG Cyber Serial PCI 16C850 (10x family): 1S */ 241 { "SIIG Cyber Serial PCI 16C850 (10x family)", 242 { 0x131f, 0x1002, 0, 0 }, 243 { 0xffff, 0xffff, 0, 0 }, 244 { 245 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, 246 }, 247 }, 248 249 /* SIIG Cyber I/O PCI 16C550 (10x family): 1S, 1P */ 250 { "SIIG Cyber I/O PCI 16C550 (10x family)", 251 { 0x131f, 0x1010, 0, 0 }, 252 { 0xffff, 0xffff, 0, 0 }, 253 { 254 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, 255 { PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 }, 256 }, 257 }, 258 259 /* SIIG Cyber I/O PCI 16C650 (10x family): 1S, 1P */ 260 { "SIIG Cyber I/O PCI 16C650 (10x family)", 261 { 0x131f, 0x1011, 0, 0 }, 262 { 0xffff, 0xffff, 0, 0 }, 263 { 264 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, 265 { PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 }, 266 }, 267 }, 268 269 /* SIIG Cyber I/O PCI 16C850 (10x family): 1S, 1P */ 270 { "SIIG Cyber I/O PCI 16C850 (10x family)", 271 { 0x131f, 0x1012, 0, 0 }, 272 { 0xffff, 0xffff, 0, 0 }, 273 { 274 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, 275 { PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 }, 276 }, 277 }, 278 279 /* SIIG Cyber Parallel PCI (10x family): 1P */ 280 { "SIIG Cyber Parallel PCI (10x family)", 281 { 0x131f, 0x1020, 0, 0 }, 282 { 0xffff, 0xffff, 0, 0 }, 283 { 284 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 }, 285 }, 286 }, 287 288 /* SIIG Cyber Parallel Dual PCI (10x family): 2P */ 289 { "SIIG Cyber Parallel Dual PCI (10x family)", 290 { 0x131f, 0x1021, 0, 0 }, 291 { 0xffff, 0xffff, 0, 0 }, 292 { 293 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 }, 294 { PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 }, 295 }, 296 }, 297 298 /* SIIG Cyber Serial Dual PCI 16C550 (10x family): 2S */ 299 { "SIIG Cyber Serial Dual PCI 16C550 (10x family)", 300 { 0x131f, 0x1030, 0, 0 }, 301 { 0xffff, 0xffff, 0, 0 }, 302 { 303 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, 304 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ }, 305 }, 306 }, 307 308 /* SIIG Cyber Serial Dual PCI 16C650 (10x family): 2S */ 309 { "SIIG Cyber Serial Dual PCI 16C650 (10x family)", 310 { 0x131f, 0x1031, 0, 0 }, 311 { 0xffff, 0xffff, 0, 0 }, 312 { 313 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, 314 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ }, 315 }, 316 }, 317 318 /* SIIG Cyber Serial Dual PCI 16C850 (10x family): 2S */ 319 { "SIIG Cyber Serial Dual PCI 16C850 (10x family)", 320 { 0x131f, 0x1032, 0, 0 }, 321 { 0xffff, 0xffff, 0, 0 }, 322 { 323 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, 324 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ }, 325 }, 326 }, 327 328 /* SIIG Cyber 2S1P PCI 16C550 (10x family): 2S, 1P */ 329 { "SIIG Cyber 2S1P PCI 16C550 (10x family)", 330 { 0x131f, 0x1034, 0, 0 }, /* XXX really? */ 331 { 0xffff, 0xffff, 0, 0 }, 332 { 333 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, 334 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ }, 335 { PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 }, 336 }, 337 }, 338 339 /* SIIG Cyber 2S1P PCI 16C650 (10x family): 2S, 1P */ 340 { "SIIG Cyber 2S1P PCI 16C650 (10x family)", 341 { 0x131f, 0x1035, 0, 0 }, /* XXX really? */ 342 { 0xffff, 0xffff, 0, 0 }, 343 { 344 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, 345 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ }, 346 { PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 }, 347 }, 348 }, 349 350 /* SIIG Cyber 2S1P PCI 16C850 (10x family): 2S, 1P */ 351 { "SIIG Cyber 2S1P PCI 16C850 (10x family)", 352 { 0x131f, 0x1036, 0, 0 }, /* XXX really? */ 353 { 0xffff, 0xffff, 0, 0 }, 354 { 355 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, 356 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ }, 357 { PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 }, 358 }, 359 }, 360 361 /* SIIG Cyber 4S PCI 16C550 (10x family): 4S */ 362 { "SIIG Cyber 4S PCI 16C550 (10x family)", 363 { 0x131f, 0x1050, 0, 0 }, 364 { 0xffff, 0xffff, 0, 0 }, 365 { 366 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, 367 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ }, 368 { PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ }, 369 { PUC_PORT_TYPE_COM, 0x24, 0x00, COM_FREQ }, 370 }, 371 }, 372 373 /* SIIG Cyber 4S PCI 16C650 (10x family): 4S */ 374 { "SIIG Cyber 4S PCI 16C650 (10x family)", 375 { 0x131f, 0x1051, 0, 0 }, 376 { 0xffff, 0xffff, 0, 0 }, 377 { 378 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, 379 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ }, 380 { PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ }, 381 { PUC_PORT_TYPE_COM, 0x24, 0x00, COM_FREQ }, 382 }, 383 }, 384 385 /* SIIG Cyber 4S PCI 16C850 (10x family): 4S */ 386 { "SIIG Cyber 4S PCI 16C850 (10x family)", 387 { 0x131f, 0x1052, 0, 0 }, 388 { 0xffff, 0xffff, 0, 0 }, 389 { 390 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, 391 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ }, 392 { PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ }, 393 { PUC_PORT_TYPE_COM, 0x24, 0x00, COM_FREQ }, 394 }, 395 }, 396 397 /* 398 * SIIG "20x" family boards. 399 */ 400 401 /* SIIG Cyber Parallel PCI (20x family): 1P */ 402 { "SIIG Cyber Parallel PCI (20x family)", 403 { 0x131f, 0x2020, 0, 0 }, 404 { 0xffff, 0xffff, 0, 0 }, 405 { 406 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 }, 407 }, 408 }, 409 410 /* SIIG Cyber Parallel Dual PCI (20x family): 2P */ 411 { "SIIG Cyber Parallel Dual PCI (20x family)", 412 { 0x131f, 0x2021, 0, 0 }, 413 { 0xffff, 0xffff, 0, 0 }, 414 { 415 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 }, 416 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 }, 417 }, 418 }, 419 420 /* SIIG Cyber 2P1S PCI 16C550 (20x family): 1S, 2P */ 421 { "SIIG Cyber 2P1S PCI 16C550 (20x family)", 422 { 0x131f, 0x2040, 0, 0 }, 423 { 0xffff, 0xffff, 0, 0 }, 424 { 425 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 426 { PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 }, 427 { PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 }, 428 }, 429 }, 430 431 /* SIIG Cyber 2P1S PCI 16C650 (20x family): 1S, 2P */ 432 { "SIIG Cyber 2P1S PCI 16C650 (20x family)", 433 { 0x131f, 0x2041, 0, 0 }, 434 { 0xffff, 0xffff, 0, 0 }, 435 { 436 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 437 { PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 }, 438 { PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 }, 439 }, 440 }, 441 442 /* SIIG Cyber 2P1S PCI 16C850 (20x family): 1S, 2P */ 443 { "SIIG Cyber 2P1S PCI 16C850 (20x family)", 444 { 0x131f, 0x2042, 0, 0 }, 445 { 0xffff, 0xffff, 0, 0 }, 446 { 447 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 448 { PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 }, 449 { PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 }, 450 }, 451 }, 452 453 /* SIIG Cyber Serial PCI 16C550 (20x family): 1S */ 454 { "SIIG Cyber Serial PCI 16C550 (20x family)", 455 { 0x131f, 0x2000, 0, 0 }, 456 { 0xffff, 0xffff, 0, 0 }, 457 { 458 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 459 }, 460 }, 461 462 /* SIIG Cyber Serial PCI 16C650 (20x family): 1S */ 463 { "SIIG Cyber Serial PCI 16C650 (20x family)", 464 { 0x131f, 0x2001, 0, 0 }, 465 { 0xffff, 0xffff, 0, 0 }, 466 { 467 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 468 }, 469 }, 470 471 /* SIIG Cyber Serial PCI 16C850 (20x family): 1S */ 472 { "SIIG Cyber Serial PCI 16C850 (20x family)", 473 { 0x131f, 0x2002, 0, 0 }, 474 { 0xffff, 0xffff, 0, 0 }, 475 { 476 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 477 }, 478 }, 479 480 /* SIIG Cyber I/O PCI 16C550 (20x family): 1S, 1P */ 481 { "SIIG Cyber I/O PCI 16C550 (20x family)", 482 { 0x131f, 0x2010, 0, 0 }, 483 { 0xffff, 0xffff, 0, 0 }, 484 { 485 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 486 { PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 }, 487 }, 488 }, 489 490 /* SIIG Cyber I/O PCI 16C650 (20x family): 1S, 1P */ 491 { "SIIG Cyber I/O PCI 16C650 (20x family)", 492 { 0x131f, 0x2011, 0, 0 }, 493 { 0xffff, 0xffff, 0, 0 }, 494 { 495 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 496 { PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 }, 497 }, 498 }, 499 500 /* SIIG Cyber I/O PCI 16C850 (20x family): 1S, 1P */ 501 { "SIIG Cyber I/O PCI 16C850 (20x family)", 502 { 0x131f, 0x2012, 0, 0 }, 503 { 0xffff, 0xffff, 0, 0 }, 504 { 505 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 506 { PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 }, 507 }, 508 }, 509 510 /* SIIG Cyber Serial Dual PCI 16C550 (20x family): 2S */ 511 { "SIIG Cyber Serial Dual PCI 16C550 (20x family)", 512 { 0x131f, 0x2030, 0, 0 }, 513 { 0xffff, 0xffff, 0, 0 }, 514 { 515 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 516 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ }, 517 }, 518 }, 519 520 /* SIIG Cyber Serial Dual PCI 16C650 (20x family): 2S */ 521 { "SIIG Cyber Serial Dual PCI 16C650 (20x family)", 522 { 0x131f, 0x2031, 0, 0 }, 523 { 0xffff, 0xffff, 0, 0 }, 524 { 525 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 526 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ }, 527 }, 528 }, 529 530 /* SIIG Cyber Serial Dual PCI 16C850 (20x family): 2S */ 531 { "SIIG Cyber Serial Dual PCI 16C850 (20x family)", 532 { 0x131f, 0x2032, 0, 0 }, 533 { 0xffff, 0xffff, 0, 0 }, 534 { 535 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 536 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ }, 537 }, 538 }, 539 540 /* SIIG Cyber 2S1P PCI 16C550 (20x family): 2S, 1P */ 541 { "SIIG Cyber 2S1P PCI 16C550 (20x family)", 542 { 0x131f, 0x2060, 0, 0 }, 543 { 0xffff, 0xffff, 0, 0 }, 544 { 545 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 546 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ }, 547 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 }, 548 }, 549 }, 550 551 /* SIIG Cyber 2S1P PCI 16C650 (20x family): 2S, 1P */ 552 { "SIIG Cyber 2S1P PCI 16C650 (20x family)", 553 { 0x131f, 0x2061, 0, 0 }, 554 { 0xffff, 0xffff, 0, 0 }, 555 { 556 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 557 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ }, 558 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 }, 559 }, 560 }, 561 562 /* SIIG Cyber 2S1P PCI 16C850 (20x family): 2S, 1P */ 563 { "SIIG Cyber 2S1P PCI 16C850 (20x family)", 564 { 0x131f, 0x2062, 0, 0 }, 565 { 0xffff, 0xffff, 0, 0 }, 566 { 567 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 568 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ }, 569 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 }, 570 }, 571 }, 572 573 /* SIIG Cyber 4S PCI 16C550 (20x family): 4S */ 574 { "SIIG Cyber 4S PCI 16C550 (20x family)", 575 { 0x131f, 0x2050, 0, 0 }, 576 { 0xffff, 0xffff, 0, 0 }, 577 { 578 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 579 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ }, 580 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, 581 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ }, 582 }, 583 }, 584 585 /* SIIG Cyber 4S PCI 16C650 (20x family): 4S */ 586 { "SIIG Cyber 4S PCI 16C650 (20x family)", 587 { 0x131f, 0x2051, 0, 0 }, 588 { 0xffff, 0xffff, 0, 0 }, 589 { 590 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 591 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ }, 592 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, 593 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ }, 594 }, 595 }, 596 597 /* SIIG Cyber 4S PCI 16C850 (20x family): 4S */ 598 { "SIIG Cyber 4S PCI 16C850 (20x family)", 599 { 0x131f, 0x2052, 0, 0 }, 600 { 0xffff, 0xffff, 0, 0 }, 601 { 602 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 603 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ }, 604 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, 605 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ }, 606 }, 607 }, 608 609 /* SIIG Cyber PS8000 PCI 16C650 (20x family): 8S - 32 Byte FIFOs */ 610 { "SIIG PS8000 8S PCI 16C650 (20x family)", 611 { 0x131f, 0x2081, 0, 0 }, 612 { 0xffff, 0xffff, 0, 0 }, 613 { 614 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 615 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ }, 616 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, 617 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ }, 618 { PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ }, 619 { PUC_PORT_TYPE_COM, 0x20, 0x08, COM_FREQ }, 620 { PUC_PORT_TYPE_COM, 0x20, 0x10, COM_FREQ }, 621 { PUC_PORT_TYPE_COM, 0x20, 0x18, COM_FREQ }, 622 }, 623 }, 624 625 /* VScom PCI-400: 4S */ 626 { "VScom PCI-400", 627 { 0x10b5, 0x1077, 0x10b5, 0x1077 }, 628 { 0xffff, 0xffff, 0xffff, 0xffff }, 629 { 630 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 }, 631 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 }, 632 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 }, 633 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 }, 634 }, 635 }, 636 637 /* VScom PCI-800: 8S */ 638 { "VScom PCI-800", 639 { 0x10b5, 0x1076, 0x10b5, 0x1076 }, 640 { 0xffff, 0xffff, 0xffff, 0xffff }, 641 { 642 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 }, 643 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 }, 644 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 }, 645 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 }, 646 { PUC_PORT_TYPE_COM, 0x18, 0x20, COM_FREQ * 8 }, 647 { PUC_PORT_TYPE_COM, 0x18, 0x28, COM_FREQ * 8 }, 648 { PUC_PORT_TYPE_COM, 0x18, 0x30, COM_FREQ * 8 }, 649 { PUC_PORT_TYPE_COM, 0x18, 0x38, COM_FREQ * 8 }, 650 }, 651 }, 652 653 /* 654 * VScom PCI-800H. Uses 8 16950 UART, behind a PCI chips that offers 655 * 4 com port on PCI device 0 and 4 on PCI device 1. PCI device 0 has 656 * device ID 3 and PCI device 1 device ID 4. 657 */ 658 { "Titan PCI-800H", 659 { 0x14d2, 0xa003, 0, 0 }, 660 { 0xffff, 0xffff, 0, 0 }, 661 { 662 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 }, 663 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8 }, 664 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 8 }, 665 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 8 }, 666 }, 667 }, 668 { "Titan PCI-800H", 669 { 0x14d2, 0xa004, 0, 0 }, 670 { 0xffff, 0xffff, 0, 0 }, 671 { 672 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 }, 673 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8 }, 674 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 8 }, 675 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 8 }, 676 }, 677 }, 678 { "Titan PCI-200H", 679 { 0x14d2, 0xa005, 0, 0 }, 680 { 0xffff, 0xffff, 0, 0 }, 681 { 682 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 }, 683 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8 }, 684 }, 685 }, 686 { "Titan PCI-800L", 687 { 0x14d2, 0x8080, 0, 0 }, 688 { 0xffff, 0xffff, 0, 0 }, 689 { 690 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ * 8 }, 691 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 }, 692 { PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ * 8 }, 693 { PUC_PORT_TYPE_COM, 0x20, 0x08, COM_FREQ * 8 }, 694 { PUC_PORT_TYPE_COM, 0x20, 0x10, COM_FREQ * 8 }, 695 { PUC_PORT_TYPE_COM, 0x20, 0x18, COM_FREQ * 8 }, 696 { PUC_PORT_TYPE_COM, 0x20, 0x20, COM_FREQ * 8 }, 697 { PUC_PORT_TYPE_COM, 0x20, 0x28, COM_FREQ * 8 }, 698 }, 699 }, 700 /* NEC PK-UG-X001 K56flex PCI Modem card. 701 NEC MARTH bridge chip and Rockwell RCVDL56ACF/SP using. */ 702 { "NEC PK-UG-X001 K56flex PCI Modem", 703 { 0x1033, 0x0074, 0x1033, 0x8014 }, 704 { 0xffff, 0xffff, 0xffff, 0xffff }, 705 { 706 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 707 }, 708 }, 709 710 /* NEC PK-UG-X008 */ 711 { "NEC PK-UG-X008", 712 { 0x1033, 0x007d, 0x1033, 0x8012 }, 713 { 0xffff, 0xffff, 0xffff, 0xffff }, 714 { 715 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ}, 716 }, 717 }, 718 719 /* Lava Computers 2SP-PCI */ 720 { "Lava Computers 2SP-PCI parallel port", 721 { 0x1407, 0x8000, 0, 0 }, 722 { 0xffff, 0xffff, 0, 0 }, 723 { 724 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 }, 725 }, 726 }, 727 728 /* Lava Computers 2SP-PCI and Quattro-PCI serial ports */ 729 { "Lava Computers dual serial port", 730 { 0x1407, 0x0100, 0, 0 }, 731 { 0xffff, 0xfffc, 0, 0 }, 732 { 733 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 734 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ }, 735 }, 736 }, 737 738 /* Lava Computers DSerial PCI serial ports */ 739 { "Lava Computers serial port", 740 { 0x1407, 0x0110, 0, 0 }, 741 { 0xffff, 0xfffc, 0, 0 }, 742 { 743 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 744 }, 745 }, 746 747 /* Lava Computers Octopus-550 serial ports */ 748 { "Lava Computers Octopus-550 8-port serial", 749 { 0x1407, 0x0180, 0, 0 }, 750 { 0xffff, 0xfffc, 0, 0 }, 751 { 752 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 753 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ }, 754 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, 755 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ }, 756 }, 757 }, 758 759 /* US Robotics (3Com) PCI Modems */ 760 { "US Robotics (3Com) 3CP5609 PCI 16550 Modem", 761 { 0x12b9, 0x1008, 0, 0 }, 762 { 0xffff, 0xffff, 0, 0 }, 763 { 764 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 765 }, 766 }, 767 768 /* Actiontec 56K PCI Master */ 769 { "Actiontec 56K PCI Master", 770 { 0x11c1, 0x0480, 0x0, 0x0 }, 771 { 0xffff, 0xffff, 0x0, 0x0 }, 772 { 773 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ }, 774 }, 775 }, 776 777 /* 778 * Boards with an Oxford Semiconductor chip. 779 * 780 * Oxford Semiconductor provides documentation for their chip at: 781 * <URL:http://www.oxsemi.com/products/uarts/index.html> 782 * 783 * As sold by Kouwell <URL:http://www.kouwell.com/>. 784 * I/O Flex PCI I/O Card Model-223 with 4 serial and 1 parallel ports. 785 */ 786 787 /* Oxford Semiconductor OX16PCI952 PCI `950 UARTs - 128 byte FIFOs */ 788 { "Oxford Semiconductor OX16PCI952 UARTs", 789 { 0x1415, 0x9521, 0, 0 }, 790 { 0xffff, 0xffff, 0, 0 }, 791 { 792 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 793 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ }, 794 }, 795 }, 796 797 /* Oxford Semiconductor OX16PCI952 PCI Parallel port */ 798 { "Oxford Semiconductor OX16PCI952 Parallel port", 799 { 0x1415, 0x9523, 0, 0 }, 800 { 0xffff, 0xffff, 0, 0 }, 801 { 802 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 }, 803 }, 804 }, 805 806 /* Oxford Semiconductor OX16PCI954 PCI UARTs */ 807 { "Oxford Semiconductor OX16PCI954 UARTs", 808 { 0x1415, 0x9501, 0, 0 }, 809 { 0xffff, 0xffff, 0, 0 }, 810 { 811 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 812 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ }, 813 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ }, 814 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ }, 815 }, 816 }, 817 818 /* Oxford Semiconductor OX16PCI954 PCI Parallel port */ 819 { "Oxford Semiconductor OX16PCI954 Parallel port", 820 { 0x1415, 0x9513, 0, 0 }, 821 { 0xffff, 0xffff, 0, 0 }, 822 { 823 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 }, 824 }, 825 }, 826 827 /* NetMos 1P PCI : 1P */ 828 { "NetMos NM9805 1284 Printer port", 829 { 0x9710, 0x9805, 0, 0 }, 830 { 0xffff, 0xffff, 0, 0 }, 831 { 832 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 }, 833 }, 834 }, 835 836 /* NetMos 2S1P PCI 16C650 : 2S, 1P */ 837 { "NetMos NM9835 Dual UART and 1284 Printer port", 838 { 0x9710, 0x9835, 0, 0 }, 839 { 0xffff, 0xffff, 0, 0 }, 840 { 841 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 842 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ }, 843 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 }, 844 }, 845 }, 846 847 /* NetMos 4S1P PCI NM9845 : 4S, 1P */ 848 { "NetMos NM9845 Quad UART and 1284 Printer port", 849 { 0x9710, 0x9845, 0, 0 }, 850 { 0xffff, 0xffff, 0, 0 }, 851 { 852 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 853 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ }, 854 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 4 }, 855 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ * 4 }, 856 { PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 }, 857 }, 858 }, 859 860 /* 861 * This is the Middle Digital, Inc. PCI-Weasel, which 862 * uses a PCI interface implemented in FPGA. 863 */ 864 { "Middle Digital, Inc. Weasel serial port", 865 { 0xdeaf, 0x9051, 0, 0 }, 866 { 0xffff, 0xffff, 0, 0 }, 867 { 868 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 869 }, 870 }, 871 872 /* Avlab Technology, Inc. Low Profile PCI 4 Serial: 4S */ 873 { "Avlab Low Profile PCI 4 Serial", 874 { 0x14db, 0x2150, 0, 0 }, 875 { 0xffff, 0xffff, 0, 0 }, 876 { 877 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 878 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ }, 879 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, 880 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ }, 881 }, 882 }, 883 884 /* 885 * Boca Research Turbo Serial 654 (4 serial port) card. 886 * Appears to be the same as Chase Research PLC PCI-FAST4 887 * and Perle PCI-FAST4 Multi-Port serial cards. 888 */ 889 { "Boca Research Turbo Serial 654", 890 { 0x10b5, 0x9050, 0x12e0, 0x0031 }, 891 { 0xffff, 0xffff, 0xffff, 0xffff }, 892 { 893 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 4 }, 894 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 4 }, 895 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 4 }, 896 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 4 }, 897 }, 898 }, 899 900 /* 901 * Boca Research Turbo Serial 658 (8 serial port) card. 902 * Appears to be the same as Chase Research PLC PCI-FAST8 903 * and Perle PCI-FAST8 Multi-Port serial cards. 904 */ 905 { "Boca Research Turbo Serial 658", 906 { 0x10b5, 0x9050, 0x12e0, 0x0021 }, 907 { 0xffff, 0xffff, 0xffff, 0xffff }, 908 { 909 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 4 }, 910 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 4 }, 911 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 4 }, 912 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 4 }, 913 { PUC_PORT_TYPE_COM, 0x18, 0x20, COM_FREQ * 4 }, 914 { PUC_PORT_TYPE_COM, 0x18, 0x28, COM_FREQ * 4 }, 915 { PUC_PORT_TYPE_COM, 0x18, 0x30, COM_FREQ * 4 }, 916 { PUC_PORT_TYPE_COM, 0x18, 0x38, COM_FREQ * 4 }, 917 }, 918 }, 919 920 { 0 } 921 }; 922