1 /* $OpenBSD: pucdata.c,v 1.115 2021/10/30 03:27:35 jsg Exp $ */ 2 /* $NetBSD: pucdata.c,v 1.6 1999/07/03 05:55:23 cgd Exp $ */ 3 4 /* 5 * Copyright (c) 1998, 1999 Christopher G. Demetriou. All rights reserved. 6 * 7 * Redistribution and use in source and binary forms, with or without 8 * modification, are permitted provided that the following conditions 9 * are met: 10 * 1. Redistributions of source code must retain the above copyright 11 * notice, this list of conditions and the following disclaimer. 12 * 2. Redistributions in binary form must reproduce the above copyright 13 * notice, this list of conditions and the following disclaimer in the 14 * documentation and/or other materials provided with the distribution. 15 * 3. All advertising materials mentioning features or use of this software 16 * must display the following acknowledgement: 17 * This product includes software developed by Christopher G. Demetriou 18 * for the NetBSD Project. 19 * 4. The name of the author may not be used to endorse or promote products 20 * derived from this software without specific prior written permission 21 * 22 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 23 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 24 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 25 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 26 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 27 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 28 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 29 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 30 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 31 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 32 */ 33 34 /* 35 * PCI "universal" communications card driver configuration data (used to 36 * match/attach the cards). 37 */ 38 39 #include <sys/param.h> 40 #include <sys/systm.h> 41 #include <sys/device.h> 42 43 #include <dev/pci/pcireg.h> 44 #include <dev/pci/pcivar.h> 45 #include <dev/pci/pucvar.h> 46 #include <dev/pci/pcidevs.h> 47 48 const struct puc_device_description puc_devs[] = { 49 50 { /* 6 Series KT */ 51 { PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_6SERIES_KT, 0x0000, 0x0000 }, 52 { 0xffff, 0xffff, 0x0000, 0x0000 }, 53 { 54 { PUC_PORT_COM, 0x10, 0x0000 }, 55 }, 56 }, 57 { /* 7 Series KT */ 58 { PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_7SERIES_KT, 0x0000, 0x0000 }, 59 { 0xffff, 0xffff, 0x0000, 0x0000 }, 60 { 61 { PUC_PORT_COM, 0x10, 0x0000 }, 62 }, 63 }, 64 { /* 8 Series KT */ 65 { PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_8SERIES_KT, 0x0000, 0x0000 }, 66 { 0xffff, 0xffff, 0x0000, 0x0000 }, 67 { 68 { PUC_PORT_COM, 0x10, 0x0000 }, 69 }, 70 }, 71 { /* 8 Series LP KT */ 72 { PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_8SERIES_LP_KT, 0x0000, 0x0000 }, 73 { 0xffff, 0xffff, 0x0000, 0x0000 }, 74 { 75 { PUC_PORT_COM, 0x10, 0x0000 }, 76 }, 77 }, 78 { /* 9 Series KT */ 79 { PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_9SERIES_KT, 0x0000, 0x0000 }, 80 { 0xffff, 0xffff, 0x0000, 0x0000 }, 81 { 82 { PUC_PORT_COM, 0x10, 0x0000 }, 83 }, 84 }, 85 { /* 9 Series LP KT */ 86 { PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_9SERIES_LP_KT, 0x0000, 0x0000 }, 87 { 0xffff, 0xffff, 0x0000, 0x0000 }, 88 { 89 { PUC_PORT_COM, 0x10, 0x0000 }, 90 }, 91 }, 92 { /* 100 Series KT */ 93 { PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_100SERIES_KT, 0x0000, 0x0000 }, 94 { 0xffff, 0xffff, 0x0000, 0x0000 }, 95 { 96 { PUC_PORT_COM, 0x10, 0x0000 }, 97 }, 98 }, 99 { /* 100 Series LP KT */ 100 { PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_100SERIES_LP_KT, 0x0000, 0x0000 }, 101 { 0xffff, 0xffff, 0x0000, 0x0000 }, 102 { 103 { PUC_PORT_COM, 0x10, 0x0000 }, 104 }, 105 }, 106 { /* 200 Series KT */ 107 { PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_200SERIES_KT, 0x0000, 0x0000 }, 108 { 0xffff, 0xffff, 0x0000, 0x0000 }, 109 { 110 { PUC_PORT_COM, 0x10, 0x0000 }, 111 }, 112 }, 113 { /* 300 Series KT */ 114 { PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_300SERIES_KT, 0x0000, 0x0000 }, 115 { 0xffff, 0xffff, 0x0000, 0x0000 }, 116 { 117 { PUC_PORT_COM, 0x10, 0x0000 }, 118 }, 119 }, 120 { /* 300 Series U KT */ 121 { PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_300SERIES_U_KT, 0x0000, 0x0000 }, 122 { 0xffff, 0xffff, 0x0000, 0x0000 }, 123 { 124 { PUC_PORT_COM, 0x10, 0x0000 }, 125 }, 126 }, 127 { /* 400 Series KT */ 128 { PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_400SERIES_KT, 0x0000, 0x0000 }, 129 { 0xffff, 0xffff, 0x0000, 0x0000 }, 130 { 131 { PUC_PORT_COM, 0x10, 0x0000 }, 132 }, 133 }, 134 { /* 400 Series LP KT */ 135 { PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_400SERIES_LP_KT, 0x0000, 0x0000 }, 136 { 0xffff, 0xffff, 0x0000, 0x0000 }, 137 { 138 { PUC_PORT_COM, 0x10, 0x0000 }, 139 }, 140 }, 141 { /* 400 Series V KT */ 142 { PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_400SERIES_V_KT, 0x0000, 0x0000 }, 143 { 0xffff, 0xffff, 0x0000, 0x0000 }, 144 { 145 { PUC_PORT_COM, 0x10, 0x0000 }, 146 }, 147 }, 148 { /* 495 Series LP KT */ 149 { PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_495SERIES_LP_KT, 0x0000, 0x0000 }, 150 { 0xffff, 0xffff, 0x0000, 0x0000 }, 151 { 152 { PUC_PORT_COM, 0x10, 0x0000 }, 153 }, 154 }, 155 { /* 500 Series KT */ 156 { PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_500SERIES_KT, 0x0000, 0x0000 }, 157 { 0xffff, 0xffff, 0x0000, 0x0000 }, 158 { 159 { PUC_PORT_COM, 0x10, 0x0000 }, 160 }, 161 }, 162 { /* 500 Series LP KT */ 163 { PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_500SERIES_LP_KT, 0x0000, 0x0000 }, 164 { 0xffff, 0xffff, 0x0000, 0x0000 }, 165 { 166 { PUC_PORT_COM, 0x10, 0x0000 }, 167 }, 168 }, 169 { /* 600 Series KT */ 170 { PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_600SERIES_KT, 0x0000, 0x0000 }, 171 { 0xffff, 0xffff, 0x0000, 0x0000 }, 172 { 173 { PUC_PORT_COM, 0x10, 0x0000 }, 174 }, 175 }, 176 { /* 82946GZ KT */ 177 { PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_82946GZ_KT, 0x0000, 0x0000 }, 178 { 0xffff, 0xffff, 0x0000, 0x0000 }, 179 { 180 { PUC_PORT_COM, 0x10, 0x0000 }, 181 }, 182 }, 183 { /* 82Q965 KT */ 184 { PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_82Q965_KT, 0x0000, 0x0000 }, 185 { 0xffff, 0xffff, 0x0000, 0x0000 }, 186 { 187 { PUC_PORT_COM, 0x10, 0x0000 }, 188 }, 189 }, 190 { /* 82G965 KT */ 191 { PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_82G965_KT, 0x0000, 0x0000 }, 192 { 0xffff, 0xffff, 0x0000, 0x0000 }, 193 { 194 { PUC_PORT_COM, 0x10, 0x0000 }, 195 }, 196 }, 197 { /* 82Q35 KT */ 198 { PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_82Q35_KT, 0x0000, 0x0000 }, 199 { 0xffff, 0xffff, 0x0000, 0x0000 }, 200 { 201 { PUC_PORT_COM, 0x10, 0x0000 }, 202 }, 203 }, 204 { /* 82G33 KT */ 205 { PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_82G33_KT, 0x0000, 0x0000 }, 206 { 0xffff, 0xffff, 0x0000, 0x0000 }, 207 { 208 { PUC_PORT_COM, 0x10, 0x0000 }, 209 }, 210 }, 211 { /* 82Q33 KT */ 212 { PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_82Q33_KT, 0x0000, 0x0000 }, 213 { 0xffff, 0xffff, 0x0000, 0x0000 }, 214 { 215 { PUC_PORT_COM, 0x10, 0x0000 }, 216 }, 217 }, 218 { /* 82X38 KT */ 219 { PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_82X38_KT, 0x0000, 0x0000 }, 220 { 0xffff, 0xffff, 0x0000, 0x0000 }, 221 { 222 { PUC_PORT_COM, 0x10, 0x0000 }, 223 }, 224 }, 225 { /* GM965 KT */ 226 { PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_82GM965_KT, 0x0000, 0x0000 }, 227 { 0xffff, 0xffff, 0x0000, 0x0000 }, 228 { 229 { PUC_PORT_COM, 0x10, 0x0000 }, 230 }, 231 }, 232 { /* GME965 KT */ 233 { PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_82GME965_KT, 0x0000, 0x0000 }, 234 { 0xffff, 0xffff, 0x0000, 0x0000 }, 235 { 236 { PUC_PORT_COM, 0x10, 0x0000 }, 237 }, 238 }, 239 { /* GM45 KT */ 240 { PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_82GM45_KT, 0x0000, 0x0000 }, 241 { 0xffff, 0xffff, 0x0000, 0x0000 }, 242 { 243 { PUC_PORT_COM, 0x10, 0x0000 }, 244 }, 245 }, 246 { /* Q45 KT */ 247 { PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_82Q45_KT, 0x0000, 0x0000 }, 248 { 0xffff, 0xffff, 0x0000, 0x0000 }, 249 { 250 { PUC_PORT_COM, 0x10, 0x0000 }, 251 }, 252 }, 253 { /* 3400 KT */ 254 { PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_3400_KT, 0x0000, 0x0000 }, 255 { 0xffff, 0xffff, 0x0000, 0x0000 }, 256 { 257 { PUC_PORT_COM, 0x10, 0x0000 }, 258 }, 259 }, 260 { /* Intel EG20T */ 261 { PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_EG20T_SERIAL_1, 0x0000, 0x0000 }, 262 { 0xffff, 0xffff, 0x0000, 0x0000 }, 263 { 264 { PUC_PORT_COM, 0x10, 0x0000 }, 265 }, 266 }, 267 { /* Intel EG20T */ 268 { PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_EG20T_SERIAL_2, 0x0000, 0x0000 }, 269 { 0xffff, 0xffff, 0x0000, 0x0000 }, 270 { 271 { PUC_PORT_COM, 0x10, 0x0000 }, 272 }, 273 }, 274 { /* Intel EG20T */ 275 { PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_EG20T_SERIAL_3, 0x0000, 0x0000 }, 276 { 0xffff, 0xffff, 0x0000, 0x0000 }, 277 { 278 { PUC_PORT_COM, 0x10, 0x0000 }, 279 }, 280 }, 281 { /* Intel EG20T */ 282 { PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_EG20T_SERIAL_4, 0x0000, 0x0000 }, 283 { 0xffff, 0xffff, 0x0000, 0x0000 }, 284 { 285 { PUC_PORT_COM, 0x10, 0x0000 }, 286 }, 287 }, 288 { /* Atom S1200 UART */ 289 { PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_ATOM_S1200_UART, 0x0000, 0x0000 }, 290 { 0xffff, 0xffff, 0x0000, 0x0000 }, 291 { 292 { PUC_PORT_COM, 0x10, 0x0000 }, 293 }, 294 }, 295 /* 296 * XXX no entry because I have no data: 297 * XXX Dolphin Peripherals 4006 (single parallel) 298 */ 299 300 /* 301 * Dolphin Peripherals 4014 (dual parallel port) card. PLX 9050, with 302 * a seemingly-lame EEPROM setup that puts the Dolphin IDs 303 * into the subsystem fields, and claims that it's a 304 * network/misc (0x02/0x80) device. 305 */ 306 { /* "Dolphin Peripherals 4014" */ 307 { PCI_VENDOR_PLX, PCI_PRODUCT_PLX_9050, 0xd84d, 0x6810 }, 308 { 0xffff, 0xffff, 0xffff, 0xffff }, 309 { 310 { PUC_PORT_LPT, 0x20, 0x0000 }, 311 { PUC_PORT_LPT, 0x24, 0x0000 }, 312 }, 313 }, 314 315 /* 316 * XXX no entry because I have no data: 317 * XXX Dolphin Peripherals 4025 (single serial) 318 */ 319 320 /* 321 * Dolphin Peripherals 4035 (dual serial port) card. PLX 9050, with 322 * a seemingly-lame EEPROM setup that puts the Dolphin IDs 323 * into the subsystem fields, and claims that it's a 324 * network/misc (0x02/0x80) device. 325 */ 326 { /* "Dolphin Peripherals 4035" */ 327 { PCI_VENDOR_PLX, PCI_PRODUCT_PLX_9050, 0xd84d, 0x6808 }, 328 { 0xffff, 0xffff, 0xffff, 0xffff }, 329 { 330 { PUC_PORT_COM, 0x18, 0x0000 }, 331 { PUC_PORT_COM, 0x1c, 0x0000 }, 332 }, 333 }, 334 335 /* 336 * XXX no entry because I have no data: 337 * XXX Dolphin Peripherals 4078 (dual serial and single parallel) 338 */ 339 340 /* 341 * Decision PCCOM PCI series. PLX 9052 with 1 or 2 16554 UARTS 342 */ 343 344 /* Decision Computer Inc PCCOM 2 Port RS232/422/485: 2S */ 345 { /* "Decision Computer Inc PCCOM 2 Port RS232/422/485", */ 346 { PCI_VENDOR_DCI, PCI_PRODUCT_DCI_APCI2, 0, 0 }, 347 { 0xffff, 0xffff, 0, 0 }, 348 { 349 { PUC_PORT_COM, 0x1c, 0x0000 }, 350 { PUC_PORT_COM, 0x1c, 0x0008 }, 351 }, 352 }, 353 354 /* Decision Computer Inc PCCOM 4 Port RS232/422/485: 4S */ 355 { /* "Decision Computer Inc PCCOM 4 Port RS232/422/485", */ 356 { PCI_VENDOR_DCI, PCI_PRODUCT_DCI_APCI4, 0, 0 }, 357 { 0xffff, 0xffff, 0, 0 }, 358 { 359 { PUC_PORT_COM, 0x1c, 0x0000 }, 360 { PUC_PORT_COM, 0x1c, 0x0008 }, 361 { PUC_PORT_COM, 0x1c, 0x0010 }, 362 { PUC_PORT_COM, 0x1c, 0x0018 }, 363 }, 364 }, 365 366 /* Decision Computer Inc PCCOM 8 Port RS232/422/485: 8S */ 367 { /* "Decision Computer Inc PCCOM 8 Port RS232/422/485", */ 368 { PCI_VENDOR_DCI, PCI_PRODUCT_DCI_APCI8, 0, 0 }, 369 { 0xffff, 0xffff, 0, 0 }, 370 { 371 { PUC_PORT_COM, 0x1c, 0x0000 }, 372 { PUC_PORT_COM, 0x1c, 0x0008 }, 373 { PUC_PORT_COM, 0x1c, 0x0010 }, 374 { PUC_PORT_COM, 0x1c, 0x0018 }, 375 { PUC_PORT_COM, 0x1c, 0x0020 }, 376 { PUC_PORT_COM, 0x1c, 0x0028 }, 377 { PUC_PORT_COM, 0x1c, 0x0030 }, 378 { PUC_PORT_COM, 0x1c, 0x0038 }, 379 }, 380 }, 381 /* IBM SurePOS 300 Series (481033H) serial ports */ 382 { /* "IBM SurePOS 300 Series (481033H) serial ports", */ 383 { PCI_VENDOR_IBM, PCI_PRODUCT_IBM_4810_SCC, 0, 0 }, 384 { 0xffff, 0xffff, 0, 0 }, 385 { 386 { PUC_PORT_COM, 0x10, 0x0000 }, /* Port C */ 387 { PUC_PORT_COM, 0x18, 0x0000 }, /* Port D */ 388 { PUC_PORT_COM, 0x14, 0x0000 }, /* Port E */ 389 { PUC_PORT_COM, 0x1c, 0x0000 }, /* Port F */ 390 }, 391 }, 392 393 /* 394 * SIIG Boards. 395 * 396 * SIIG provides documentation for their boards at: 397 * <URL:http://www.siig.com/driver.htm> 398 * 399 * Please excuse the weird ordering, it's the order they 400 * use in their documentation. 401 */ 402 403 /* 404 * SIIG "10x" family boards. 405 */ 406 407 /* SIIG Cyber Serial PCI 16C550 (10x family): 1S */ 408 { /* "SIIG Cyber Serial PCI 16C550 (10x family)", */ 409 { PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_1000, 0, 0 }, 410 { 0xffff, 0xffff, 0, 0 }, 411 { 412 { PUC_PORT_COM, 0x18, 0x0000 }, 413 }, 414 }, 415 416 /* SIIG Cyber Serial PCI 16C650 (10x family): 1S */ 417 { /* "SIIG Cyber Serial PCI 16C650 (10x family)", */ 418 { PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_1001, 0, 0 }, 419 { 0xffff, 0xffff, 0, 0 }, 420 { 421 { PUC_PORT_COM, 0x18, 0x0000 }, 422 }, 423 }, 424 425 /* SIIG Cyber Serial PCI 16C850 (10x family): 1S */ 426 { /* "SIIG Cyber Serial PCI 16C850 (10x family)", */ 427 { PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_1002, 0, 0 }, 428 { 0xffff, 0xffff, 0, 0 }, 429 { 430 { PUC_PORT_COM, 0x18, 0x0000 }, 431 }, 432 }, 433 434 /* SIIG Cyber I/O PCI 16C550 (10x family): 1S, 1P */ 435 { /* "SIIG Cyber I/O PCI 16C550 (10x family)", */ 436 { PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_1010, 0, 0 }, 437 { 0xffff, 0xffff, 0, 0 }, 438 { 439 { PUC_PORT_COM, 0x18, 0x0000 }, 440 { PUC_PORT_LPT, 0x1c, 0x0000 }, 441 }, 442 }, 443 444 /* SIIG Cyber I/O PCI 16C650 (10x family): 1S, 1P */ 445 { /* "SIIG Cyber I/O PCI 16C650 (10x family)", */ 446 { PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_1011, 0, 0 }, 447 { 0xffff, 0xffff, 0, 0 }, 448 { 449 { PUC_PORT_COM, 0x18, 0x0000 }, 450 { PUC_PORT_LPT, 0x1c, 0x0000 }, 451 }, 452 }, 453 454 /* SIIG Cyber I/O PCI 16C850 (10x family): 1S, 1P */ 455 { /* "SIIG Cyber I/O PCI 16C850 (10x family)", */ 456 { PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_1012, 0, 0 }, 457 { 0xffff, 0xffff, 0, 0 }, 458 { 459 { PUC_PORT_COM, 0x18, 0x0000 }, 460 { PUC_PORT_LPT, 0x1c, 0x0000 }, 461 }, 462 }, 463 464 /* SIIG Cyber Parallel PCI (10x family): 1P */ 465 { /* "SIIG Cyber Parallel PCI (10x family)", */ 466 { PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_1020, 0, 0 }, 467 { 0xffff, 0xffff, 0, 0 }, 468 { 469 { PUC_PORT_LPT, 0x18, 0x0000 }, 470 }, 471 }, 472 473 /* SIIG Cyber Parallel Dual PCI (10x family): 2P */ 474 { /* "SIIG Cyber Parallel Dual PCI (10x family)", */ 475 { PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_1021, 0, 0 }, 476 { 0xffff, 0xffff, 0, 0 }, 477 { 478 { PUC_PORT_LPT, 0x18, 0x0000 }, 479 { PUC_PORT_LPT, 0x20, 0x0000 }, 480 }, 481 }, 482 483 /* SIIG Cyber Serial Dual PCI 16C550 (10x family): 2S */ 484 { /* "SIIG Cyber Serial Dual PCI 16C550 (10x family)", */ 485 { PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_1030, 0, 0 }, 486 { 0xffff, 0xffff, 0, 0 }, 487 { 488 { PUC_PORT_COM, 0x18, 0x0000 }, 489 { PUC_PORT_COM, 0x1c, 0x0000 }, 490 }, 491 }, 492 493 /* SIIG Cyber Serial Dual PCI 16C650 (10x family): 2S */ 494 { /* "SIIG Cyber Serial Dual PCI 16C650 (10x family)", */ 495 { PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_1031, 0, 0 }, 496 { 0xffff, 0xffff, 0, 0 }, 497 { 498 { PUC_PORT_COM, 0x18, 0x0000 }, 499 { PUC_PORT_COM, 0x1c, 0x0000 }, 500 }, 501 }, 502 503 /* SIIG Cyber Serial Dual PCI 16C850 (10x family): 2S */ 504 { /* "SIIG Cyber Serial Dual PCI 16C850 (10x family)", */ 505 { PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_1032, 0, 0 }, 506 { 0xffff, 0xffff, 0, 0 }, 507 { 508 { PUC_PORT_COM, 0x18, 0x0000 }, 509 { PUC_PORT_COM, 0x1c, 0x0000 }, 510 }, 511 }, 512 513 /* SIIG Cyber 2S1P PCI 16C550 (10x family): 2S, 1P */ 514 { /* "SIIG Cyber 2S1P PCI 16C550 (10x family)", */ 515 { PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_1034, 0, 0 }, 516 { 0xffff, 0xffff, 0, 0 }, 517 { 518 { PUC_PORT_COM, 0x18, 0x0000 }, 519 { PUC_PORT_COM, 0x1c, 0x0000 }, 520 { PUC_PORT_LPT, 0x20, 0x0000 }, 521 }, 522 }, 523 524 /* SIIG Cyber 2S1P PCI 16C650 (10x family): 2S, 1P */ 525 { /* "SIIG Cyber 2S1P PCI 16C650 (10x family)", */ 526 { PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_1035, 0, 0 }, 527 { 0xffff, 0xffff, 0, 0 }, 528 { 529 { PUC_PORT_COM, 0x18, 0x0000 }, 530 { PUC_PORT_COM, 0x1c, 0x0000 }, 531 { PUC_PORT_LPT, 0x20, 0x0000 }, 532 }, 533 }, 534 535 /* SIIG Cyber 2S1P PCI 16C850 (10x family): 2S, 1P */ 536 { /* "SIIG Cyber 2S1P PCI 16C850 (10x family)", */ 537 { PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_1036, 0, 0 }, 538 { 0xffff, 0xffff, 0, 0 }, 539 { 540 { PUC_PORT_COM, 0x18, 0x0000 }, 541 { PUC_PORT_COM, 0x1c, 0x0000 }, 542 { PUC_PORT_LPT, 0x20, 0x0000 }, 543 }, 544 }, 545 546 /* SIIG Cyber 4S PCI 16C550 (10x family): 4S */ 547 { /* "SIIG Cyber 4S PCI 16C550 (10x family)", */ 548 { PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_1050, 0, 0 }, 549 { 0xffff, 0xffff, 0, 0 }, 550 { 551 { PUC_PORT_COM, 0x18, 0x0000 }, 552 { PUC_PORT_COM, 0x1c, 0x0000 }, 553 { PUC_PORT_COM, 0x20, 0x0000 }, 554 { PUC_PORT_COM, 0x24, 0x0000 }, 555 }, 556 }, 557 558 /* SIIG Cyber 4S PCI 16C650 (10x family): 4S */ 559 { /* "SIIG Cyber 4S PCI 16C650 (10x family)", */ 560 { PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_1051, 0, 0 }, 561 { 0xffff, 0xffff, 0, 0 }, 562 { 563 { PUC_PORT_COM, 0x18, 0x0000 }, 564 { PUC_PORT_COM, 0x1c, 0x0000 }, 565 { PUC_PORT_COM, 0x20, 0x0000 }, 566 { PUC_PORT_COM, 0x24, 0x0000 }, 567 }, 568 }, 569 570 /* SIIG Cyber 4S PCI 16C850 (10x family): 4S */ 571 { /* "SIIG Cyber 4S PCI 16C850 (10x family)", */ 572 { PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_1052, 0, 0 }, 573 { 0xffff, 0xffff, 0, 0 }, 574 { 575 { PUC_PORT_COM, 0x18, 0x0000 }, 576 { PUC_PORT_COM, 0x1c, 0x0000 }, 577 { PUC_PORT_COM, 0x20, 0x0000 }, 578 { PUC_PORT_COM, 0x24, 0x0000 }, 579 }, 580 }, 581 582 /* 583 * SIIG "20x" family boards. 584 */ 585 586 /* SIIG Cyber Parallel PCI (20x family): 1P */ 587 { /* "SIIG Cyber Parallel PCI (20x family)", */ 588 { PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_2020, 0, 0 }, 589 { 0xffff, 0xffff, 0, 0 }, 590 { 591 { PUC_PORT_LPT, 0x10, 0x0000 }, 592 }, 593 }, 594 595 /* SIIG Cyber Parallel Dual PCI (20x family): 2P */ 596 { /* "SIIG Cyber Parallel Dual PCI (20x family)", */ 597 { PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_2021, 0, 0 }, 598 { 0xffff, 0xffff, 0, 0 }, 599 { 600 { PUC_PORT_LPT, 0x10, 0x0000 }, 601 { PUC_PORT_LPT, 0x18, 0x0000 }, 602 }, 603 }, 604 605 /* SIIG Cyber 2P1S PCI 16C550 (20x family): 1S, 2P */ 606 { /* "SIIG Cyber 2P1S PCI 16C550 (20x family)", */ 607 { PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_2040, 0, 0 }, 608 { 0xffff, 0xffff, 0, 0 }, 609 { 610 { PUC_PORT_COM, 0x10, 0x0000 }, 611 { PUC_PORT_LPT, 0x14, 0x0000 }, 612 { PUC_PORT_LPT, 0x1c, 0x0000 }, 613 }, 614 }, 615 616 /* SIIG Cyber 2P1S PCI 16C650 (20x family): 1S, 2P */ 617 { /* "SIIG Cyber 2P1S PCI 16C650 (20x family)", */ 618 { PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_2041, 0, 0 }, 619 { 0xffff, 0xffff, 0, 0 }, 620 { 621 { PUC_PORT_COM, 0x10, 0x0000 }, 622 { PUC_PORT_LPT, 0x14, 0x0000 }, 623 { PUC_PORT_LPT, 0x1c, 0x0000 }, 624 }, 625 }, 626 627 /* SIIG Cyber 2P1S PCI 16C850 (20x family): 1S, 2P */ 628 { /* "SIIG Cyber 2P1S PCI 16C850 (20x family)", */ 629 { PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_2042, 0, 0 }, 630 { 0xffff, 0xffff, 0, 0 }, 631 { 632 { PUC_PORT_COM, 0x10, 0x0000 }, 633 { PUC_PORT_LPT, 0x14, 0x0000 }, 634 { PUC_PORT_LPT, 0x1c, 0x0000 }, 635 }, 636 }, 637 638 /* SIIG Cyber Serial PCI 16C550 (20x family): 1S */ 639 { /* "SIIG Cyber Serial PCI 16C550 (20x family)", */ 640 { PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_2000, 0, 0 }, 641 { 0xffff, 0xffff, 0, 0 }, 642 { 643 { PUC_PORT_COM, 0x10, 0x0000 }, 644 }, 645 }, 646 647 /* SIIG Cyber Serial PCI 16C650 (20x family): 1S */ 648 { /* "SIIG Cyber Serial PCI 16C650 (20x family)", */ 649 { PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_2001, 0, 0 }, 650 { 0xffff, 0xffff, 0, 0 }, 651 { 652 { PUC_PORT_COM, 0x10, 0x0000 }, 653 }, 654 }, 655 656 /* SIIG Cyber Serial PCI 16C850 (20x family): 1S */ 657 { /* "SIIG Cyber Serial PCI 16C850 (20x family)", */ 658 { PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_2002, 0, 0 }, 659 { 0xffff, 0xffff, 0, 0 }, 660 { 661 { PUC_PORT_COM, 0x10, 0x0000 }, 662 }, 663 }, 664 665 /* SIIG Cyber I/O PCI 16C550 (20x family): 1S, 1P */ 666 { /* "SIIG Cyber I/O PCI 16C550 (20x family)", */ 667 { PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_2010, 0, 0 }, 668 { 0xffff, 0xffff, 0, 0 }, 669 { 670 { PUC_PORT_COM, 0x10, 0x0000 }, 671 { PUC_PORT_LPT, 0x14, 0x0000 }, 672 }, 673 }, 674 675 /* SIIG Cyber I/O PCI 16C650 (20x family): 1S, 1P */ 676 { /* "SIIG Cyber I/O PCI 16C650 (20x family)", */ 677 { PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_2011, 0, 0 }, 678 { 0xffff, 0xffff, 0, 0 }, 679 { 680 { PUC_PORT_COM, 0x10, 0x0000 }, 681 { PUC_PORT_LPT, 0x14, 0x0000 }, 682 }, 683 }, 684 685 /* SIIG Cyber I/O PCI 16C850 (20x family): 1S, 1P */ 686 { /* "SIIG Cyber I/O PCI 16C850 (20x family)", */ 687 { PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_2012, 0, 0 }, 688 { 0xffff, 0xffff, 0, 0 }, 689 { 690 { PUC_PORT_COM, 0x10, 0x0000 }, 691 { PUC_PORT_LPT, 0x14, 0x0000 }, 692 }, 693 }, 694 695 /* SIIG Cyber Serial Dual PCI 16C550 (20x family): 2S */ 696 { /* "SIIG Cyber Serial Dual PCI 16C550 (20x family)", */ 697 { PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_2030, 0, 0 }, 698 { 0xffff, 0xffff, 0, 0 }, 699 { 700 { PUC_PORT_COM, 0x10, 0x0000 }, 701 { PUC_PORT_COM, 0x14, 0x0000 }, 702 }, 703 }, 704 705 /* SIIG Cyber Serial Dual PCI 16C650 (20x family): 2S */ 706 { /* "SIIG Cyber Serial Dual PCI 16C650 (20x family)", */ 707 { PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_2031, 0, 0 }, 708 { 0xffff, 0xffff, 0, 0 }, 709 { 710 { PUC_PORT_COM, 0x10, 0x0000 }, 711 { PUC_PORT_COM, 0x14, 0x0000 }, 712 }, 713 }, 714 715 /* SIIG Cyber Serial Dual PCI 16C850 (20x family): 2S */ 716 { /* "SIIG Cyber Serial Dual PCI 16C850 (20x family)", */ 717 { PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_2032, 0, 0 }, 718 { 0xffff, 0xffff, 0, 0 }, 719 { 720 { PUC_PORT_COM, 0x10, 0x0000 }, 721 { PUC_PORT_COM, 0x14, 0x0000 }, 722 }, 723 }, 724 725 /* SIIG Cyber 2S1P PCI 16C550 (20x family): 2S, 1P */ 726 { /* "SIIG Cyber 2S1P PCI 16C550 (20x family)", */ 727 { PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_2060, 0, 0 }, 728 { 0xffff, 0xffff, 0, 0 }, 729 { 730 { PUC_PORT_COM, 0x10, 0x0000 }, 731 { PUC_PORT_COM, 0x14, 0x0000 }, 732 { PUC_PORT_LPT, 0x18, 0x0000 }, 733 }, 734 }, 735 736 /* SIIG Cyber 2S1P PCI 16C650 (20x family): 2S, 1P */ 737 { /* "SIIG Cyber 2S1P PCI 16C650 (20x family)", */ 738 { PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_2061, 0, 0 }, 739 { 0xffff, 0xffff, 0, 0 }, 740 { 741 { PUC_PORT_COM, 0x10, 0x0000 }, 742 { PUC_PORT_COM, 0x14, 0x0000 }, 743 { PUC_PORT_LPT, 0x18, 0x0000 }, 744 }, 745 }, 746 747 /* SIIG Cyber 2S1P PCI 16C850 (20x family): 2S, 1P */ 748 { /* "SIIG Cyber 2S1P PCI 16C850 (20x family)", */ 749 { PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_2062, 0, 0 }, 750 { 0xffff, 0xffff, 0, 0 }, 751 { 752 { PUC_PORT_COM, 0x10, 0x0000 }, 753 { PUC_PORT_COM, 0x14, 0x0000 }, 754 { PUC_PORT_LPT, 0x18, 0x0000 }, 755 }, 756 }, 757 758 /* SIIG Cyber 4S PCI 16C550 (20x family): 4S */ 759 { /* "SIIG Cyber 4S PCI 16C550 (20x family)", */ 760 { PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_2050, 0, 0 }, 761 { 0xffff, 0xffff, 0, 0 }, 762 { 763 { PUC_PORT_COM, 0x10, 0x0000 }, 764 { PUC_PORT_COM, 0x14, 0x0000 }, 765 { PUC_PORT_COM, 0x18, 0x0000 }, 766 { PUC_PORT_COM, 0x1c, 0x0000 }, 767 }, 768 }, 769 770 /* SIIG Cyber 4S PCI 16C650 (20x family): 4S */ 771 { /* "SIIG Cyber 4S PCI 16C650 (20x family)", */ 772 { PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_2051, 0, 0 }, 773 { 0xffff, 0xffff, 0, 0 }, 774 { 775 { PUC_PORT_COM, 0x10, 0x0000 }, 776 { PUC_PORT_COM, 0x14, 0x0000 }, 777 { PUC_PORT_COM, 0x18, 0x0000 }, 778 { PUC_PORT_COM, 0x1c, 0x0000 }, 779 }, 780 }, 781 782 /* SIIG Cyber 4S PCI 16C850 (20x family): 4S */ 783 { /* "SIIG Cyber 4S PCI 16C850 (20x family)", */ 784 { PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_2052, 0, 0 }, 785 { 0xffff, 0xffff, 0, 0 }, 786 { 787 { PUC_PORT_COM, 0x10, 0x0000 }, 788 { PUC_PORT_COM, 0x14, 0x0000 }, 789 { PUC_PORT_COM, 0x18, 0x0000 }, 790 { PUC_PORT_COM, 0x1c, 0x0000 }, 791 }, 792 }, 793 794 /* SIIG Cyber 8S PCI 16C850 (20x family): 8S */ 795 { /* "SIIG Cyber 8S PCI 16C850 (20x family)", */ 796 { PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_2081, 0, 0 }, 797 { 0xffff, 0xffff, 0, 0 }, 798 { 799 { PUC_PORT_COM, 0x10, 0x0000 }, 800 { PUC_PORT_COM, 0x14, 0x0000 }, 801 { PUC_PORT_COM, 0x18, 0x0000 }, 802 { PUC_PORT_COM, 0x1c, 0x0000 }, 803 { PUC_PORT_COM, 0x20, 0x0000 }, 804 { PUC_PORT_COM, 0x20, 0x0008 }, 805 { PUC_PORT_COM, 0x20, 0x0010 }, 806 { PUC_PORT_COM, 0x20, 0x0018 }, 807 }, 808 }, 809 810 /* SIIG Cyber 8S PCI 16C850 (20x family): 8S */ 811 { /* "SIIG Cyber 8S PCI 16C850 (20x family)", */ 812 { PCI_VENDOR_OXFORD2, PCI_PRODUCT_OXFORD2_OX16PCI954, 813 PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_2082 }, 814 { 0xffff, 0xffff, 0xffff, 0xffff }, 815 { 816 { PUC_PORT_COM_MUL10, 0x10, 0x0000 }, 817 { PUC_PORT_COM_MUL10, 0x10, 0x0008 }, 818 { PUC_PORT_COM_MUL10, 0x10, 0x0010 }, 819 { PUC_PORT_COM_MUL10, 0x10, 0x0018 }, 820 }, 821 }, 822 823 /* OX16PCI954, first part of Serial Technologies Expander PCI-232-108 */ 824 { /* "OX16PCI954" */ 825 { PCI_VENDOR_OXFORD2, PCI_PRODUCT_OXFORD2_OX16PCI954, 826 PCI_VENDOR_OXFORD2, 0 }, 827 { 0xffff, 0xffff, 0xffff, 0xffff }, 828 { 829 { PUC_PORT_COM_MUL8, 0x10, 0x0000 }, 830 { PUC_PORT_COM_MUL8, 0x10, 0x0008 }, 831 { PUC_PORT_COM_MUL8, 0x10, 0x0010 }, 832 { PUC_PORT_COM_MUL8, 0x10, 0x0018 }, 833 }, 834 }, 835 836 /* Exsys EX-41092 (sold as SIIG JJ-E10011-S3) */ 837 { /* "Exsys EX-41092", */ 838 { PCI_VENDOR_OXFORD2, PCI_PRODUCT_OXFORD2_EXSYS_EX41092,0x0000,0x0000}, 839 { 0xffff, 0xffff, 0x0000,0x0000}, 840 { 841 { PUC_PORT_COM_MUL10, 0x10, 0x0000 }, 842 }, 843 }, 844 845 /* Exsys EX-41098, second part of Serial Technologies Expander PCI-232-108 */ 846 { /* "Exsys EX-41098", */ 847 { PCI_VENDOR_OXFORD2, PCI_PRODUCT_OXFORD2_EXSYS_EX41098, 848 PCI_VENDOR_OXFORD2, 0 }, 849 { 0xffff, 0xffff, 0xffff, 0xffff }, 850 { 851 { PUC_PORT_COM_MUL8, 0x10, 0x0000 }, 852 { PUC_PORT_COM_MUL8, 0x10, 0x0008 }, 853 { PUC_PORT_COM_MUL8, 0x10, 0x0010 }, 854 { PUC_PORT_COM_MUL8, 0x10, 0x0018 }, 855 }, 856 }, 857 858 /* Exsys EX-41098, second part of SIIG Cyber 8S PCI Card */ 859 { /* "Exsys EX-41098", */ 860 { PCI_VENDOR_OXFORD2, PCI_PRODUCT_OXFORD2_EXSYS_EX41098, 861 PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_2082 }, 862 { 0xffff, 0xffff, 0xffff, 0xffff }, 863 { 864 { PUC_PORT_COM_MUL10, 0x10, 0x0000 }, 865 { PUC_PORT_COM_MUL10, 0x10, 0x0008 }, 866 { PUC_PORT_COM_MUL10, 0x10, 0x0010 }, 867 { PUC_PORT_COM_MUL10, 0x10, 0x0018 }, 868 }, 869 }, 870 871 /* 872 * VScom PCI-400S, based on PLX 9050 Chip, 16k buffer 873 */ 874 { /* "VScom PCI-400S", */ 875 { PCI_VENDOR_PLX, PCI_PRODUCT_PLX_1077, 0x10b5, 0x1077 }, 876 { 0xffff, 0xffff, 0xffff, 0xffff }, 877 { 878 { PUC_PORT_COM_MUL8, 0x18, 0x0000 }, 879 { PUC_PORT_COM_MUL8, 0x18, 0x0008 }, 880 { PUC_PORT_COM_MUL8, 0x18, 0x0010 }, 881 { PUC_PORT_COM_MUL8, 0x18, 0x0018 }, 882 }, 883 }, 884 885 /* 886 * VScom PCI-800, as sold on http://www.swann.com.au/isp/titan.html. 887 * Some PLX chip. Note: This board has a software selectable(?) 888 * clock multiplier which this driver doesn't support, so you'll 889 * have to use an appropriately scaled baud rate when talking to 890 * the card. 891 */ 892 { /* "VScom PCI-800", */ 893 { PCI_VENDOR_PLX, PCI_PRODUCT_PLX_1076, 0x10b5, 0x1076 }, 894 { 0xffff, 0xffff, 0xffff, 0xffff }, 895 { 896 { PUC_PORT_COM, 0x18, 0x0000 }, 897 { PUC_PORT_COM, 0x18, 0x0008 }, 898 { PUC_PORT_COM, 0x18, 0x0010 }, 899 { PUC_PORT_COM, 0x18, 0x0018 }, 900 { PUC_PORT_COM, 0x18, 0x0020 }, 901 { PUC_PORT_COM, 0x18, 0x0028 }, 902 { PUC_PORT_COM, 0x18, 0x0030 }, 903 { PUC_PORT_COM, 0x18, 0x0038 }, 904 }, 905 }, 906 907 /* 908 * VScom PCI 011H, 1 lpt. 909 */ 910 { /* "VScom PCI-011H", */ 911 { PCI_VENDOR_OXFORD2, PCI_PRODUCT_OXFORD2_VSCOM_PCI011H, 0, 0 }, 912 { 0xffff, 0xffff, 0, 0 }, 913 { 914 { PUC_PORT_LPT, 0x10, 0x0000 }, 915 }, 916 }, 917 918 /* 919 * VScom PCI x10H, 1 lpt. 920 * is the lpt part of VScom 110H, 210H, 410H 921 */ 922 { /* "VScom PCI-x10H", */ 923 { PCI_VENDOR_OXFORD, PCI_PRODUCT_OXFORD_VSCOM_PCIX10H, 0, 0 }, 924 { 0xffff, 0xffff, 0, 0 }, 925 { 926 { PUC_PORT_LPT, 0x10, 0x0000 }, 927 }, 928 }, 929 930 /* 931 * VScom PCI 100H, little sister of 800H, 1 com. 932 * also com part of VScom 110H 933 * The one I have defaults to a fequency of 14.7456 MHz which is 934 * jumper J1 set to 2-3. 935 */ 936 { /* "VScom PCI-100H", */ 937 { PCI_VENDOR_OXFORD, PCI_PRODUCT_OXFORD_VSCOM_PCI100H, 0, 0 }, 938 { 0xffff, 0xffff, 0, 0 }, 939 { 940 { PUC_PORT_COM_MUL8, 0x10, 0x0000 }, 941 }, 942 }, 943 944 /* 945 * VScom PCI 200H, little sister of 800H, 2 com. 946 * also com part of VScom 210H 947 * The one I have defaults to a fequency of 14.7456 MHz which is 948 * jumper J1 set to 2-3. 949 */ 950 951 { /* "VScom PCI-200H", */ 952 { PCI_VENDOR_OXFORD, PCI_PRODUCT_OXFORD_VSCOM_PCI200H, 0, 0 }, 953 { 0xffff, 0xffff, 0, 0 }, 954 { 955 { PUC_PORT_COM_MUL8, 0x10, 0x0000 }, 956 { PUC_PORT_COM_MUL8, 0x10, 0x0008 }, 957 }, 958 }, 959 960 /* 961 * VScom PCI 400H and 800H. Uses 4/8 16950 UART, behind a PCI chips 962 * that offers 4 com port on PCI device 0 (both 400H and 800H) 963 * and 4 on PCI device 1 (800H only). PCI device 0 has 964 * device ID 3 and PCI device 1 device ID 4. Uses a 14.7456 MHz crystal 965 * instead of the standart 1.8432MHz. 966 * There's a version with a jumper for selecting the crystal frequency, 967 * defaults to 8x as used here. The jumperless version uses 8x, too. 968 */ 969 { /* "VScom PCI-400H/800H", */ 970 { PCI_VENDOR_OXFORD, PCI_PRODUCT_OXFORD_VSCOM_PCI800H_0, 0, 0 }, 971 { 0xffff, 0xffff, 0, 0 }, 972 { 973 { PUC_PORT_COM_MUL8, 0x10, 0x0000 }, 974 { PUC_PORT_COM_MUL8, 0x10, 0x0008 }, 975 { PUC_PORT_COM_MUL8, 0x10, 0x0010 }, 976 { PUC_PORT_COM_MUL8, 0x10, 0x0018 }, 977 }, 978 }, 979 { /* "VScom PCI-400H/800H", */ 980 { PCI_VENDOR_OXFORD, PCI_PRODUCT_OXFORD_VSCOM_PCI800H_1, 0, 0 }, 981 { 0xffff, 0xffff, 0, 0 }, 982 { 983 { PUC_PORT_COM_MUL8, 0x10, 0x0000 }, 984 { PUC_PORT_COM_MUL8, 0x10, 0x0008 }, 985 { PUC_PORT_COM_MUL8, 0x10, 0x0010 }, 986 { PUC_PORT_COM_MUL8, 0x10, 0x0018 }, 987 }, 988 }, 989 990 /* 991 * VScom PCI 200HV2, is 200H Version 2. 992 * Sells as 200H 993 */ 994 { /* "VScom PCI-200HV2", */ 995 { PCI_VENDOR_OXFORD, PCI_PRODUCT_OXFORD_VSCOM_PCI200HV2, 0, 0 }, 996 { 0xffff, 0xffff, 0, 0 }, 997 { 998 { PUC_PORT_COM_MUL8, 0x10, 0x0000 }, 999 { PUC_PORT_COM_MUL8, 0x14, 0x0000 }, 1000 }, 1001 }, 1002 1003 /* 1004 * VScom PCI 010L 1005 * one lpt 1006 * untested 1007 */ 1008 { /* "VScom PCI-010L", */ 1009 { PCI_VENDOR_OXFORD, PCI_PRODUCT_OXFORD_VSCOM_PCI010L, 0, 0 }, 1010 { 0xffff, 0xffff, 0, 0 }, 1011 { 1012 { PUC_PORT_LPT, 0x1c, 0x0000 }, 1013 }, 1014 }, 1015 1016 /* 1017 * VScom PCI 100L 1018 * one com 1019 * The one I have defaults to a fequency of 14.7456 MHz which is 1020 * jumper J1 set to 2-3. 1021 */ 1022 { /* "VScom PCI-100L", */ 1023 { PCI_VENDOR_OXFORD, PCI_PRODUCT_OXFORD_VSCOM_PCI100L, 0, 0 }, 1024 { 0xffff, 0xffff, 0, 0 }, 1025 { 1026 { PUC_PORT_COM_MUL8, 0x14, 0x0000 }, 1027 }, 1028 }, 1029 1030 /* 1031 * VScom PCI 110L 1032 * one com, one lpt 1033 * untested 1034 */ 1035 { /* "VScom PCI-110L", */ 1036 { PCI_VENDOR_OXFORD, PCI_PRODUCT_OXFORD_VSCOM_PCI110L, 0, 0 }, 1037 { 0xffff, 0xffff, 0, 0 }, 1038 { 1039 { PUC_PORT_COM_MUL8, 0x14, 0x0000 }, 1040 { PUC_PORT_LPT, 0x1c, 0x0000 }, 1041 }, 1042 }, 1043 1044 /* 1045 * VScom PCI-200L has 2 x 16550 UARTS. 1046 * The board has a jumper which allows you to select a clock speed 1047 * of either 14.7456MHz or 1.8432MHz. By default it runs at 1048 * the fast speed. 1049 */ 1050 { /* "VScom PCI-200L with 2 x 16550 UARTS" */ 1051 { PCI_VENDOR_OXFORD, PCI_PRODUCT_OXFORD_VSCOM_PCI200L, 0, 0 }, 1052 { 0xffff, 0xffff, 0, 0 }, 1053 { 1054 { PUC_PORT_COM_MUL8, 0x14, 0x0000 }, 1055 { PUC_PORT_COM_MUL8, 0x18, 0x0000 }, 1056 }, 1057 }, 1058 1059 /* 1060 * VScom PCI-210L 1061 * Has a jumper for frequency selection, defaults to 8x as used here 1062 * two com, one lpt 1063 */ 1064 { /* "VScom PCI-210L" */ 1065 { PCI_VENDOR_OXFORD, PCI_PRODUCT_OXFORD_VSCOM_PCI210L, 0, 0 }, 1066 { 0xffff, 0xffff, 0, 0 }, 1067 { 1068 { PUC_PORT_COM_MUL8, 0x14, 0x0000 }, 1069 { PUC_PORT_COM_MUL8, 0x18, 0x0000 }, 1070 { PUC_PORT_LPT, 0x1c, 0x0000 }, 1071 }, 1072 }, 1073 1074 /* 1075 * VScom PCI 400L 1076 * Has a jumper for frequency selection, defaults to 8x as used here 1077 * This is equal to J1 in pos 2-3 1078 * VendorID mismatch with docs, should be 14d2 (oxford), is 10d2 (molex) 1079 */ 1080 { /* "VScom PCI-400L", */ 1081 { PCI_VENDOR_MOLEX, PCI_PRODUCT_MOLEX_VSCOM_PCI400L, 0, 0 }, 1082 { 0xffff, 0xffff, 0, 0 }, 1083 { 1084 { PUC_PORT_COM_MUL8, 0x14, 0x0000 }, 1085 { PUC_PORT_COM_MUL8, 0x18, 0x0000 }, 1086 { PUC_PORT_COM_MUL8, 0x20, 0x0000 }, 1087 { PUC_PORT_COM_MUL8, 0x20, 0x0008 }, 1088 }, 1089 }, 1090 1091 /* 1092 * VScom PCI 800L 1093 * Has a jumper for frequency selection, defaults to 8x as used here 1094 */ 1095 { /* "VScom PCI-800L", */ 1096 { PCI_VENDOR_OXFORD, PCI_PRODUCT_OXFORD_VSCOM_PCI800L, 0, 0 }, 1097 { 0xffff, 0xffff, 0, 0 }, 1098 { 1099 { PUC_PORT_COM_MUL8, 0x14, 0x0000 }, 1100 { PUC_PORT_COM_MUL8, 0x18, 0x0000 }, 1101 { PUC_PORT_COM_MUL8, 0x20, 0x0000 }, 1102 { PUC_PORT_COM_MUL8, 0x20, 0x0008 }, 1103 { PUC_PORT_COM_MUL8, 0x20, 0x0010 }, 1104 { PUC_PORT_COM_MUL8, 0x20, 0x0018 }, 1105 { PUC_PORT_COM_MUL8, 0x20, 0x0020 }, 1106 { PUC_PORT_COM_MUL8, 0x20, 0x0028 }, 1107 }, 1108 }, 1109 1110 /* 1111 * Exsys EX-41098 1112 */ 1113 { /* "Exsys EX-41098", */ 1114 { PCI_VENDOR_OXFORD2, PCI_PRODUCT_OXFORD2_EXSYS_EX41098, 0, 0 }, 1115 { 0xffff, 0xffff, 0, 0 }, 1116 { 1117 { PUC_PORT_COM, 0x10, 0x0000 }, 1118 { PUC_PORT_COM, 0x10, 0x0008 }, 1119 { PUC_PORT_COM, 0x10, 0x0010 }, 1120 { PUC_PORT_COM, 0x10, 0x0018 }, 1121 }, 1122 }, 1123 1124 /* 1125 * Boards with an Oxford Semiconductor chip. 1126 * 1127 * Oxford Semiconductor provides documentation for their chip at: 1128 * <URL:http://www.plxtech.com/products/uart/> 1129 * 1130 * As sold by Kouwell <URL:http://www.kouwell.com/>. 1131 * I/O Flex PCI I/O Card Model-223 with 4 serial and 1 parallel ports. 1132 */ 1133 1134 /* Exsys EX-1372 (uses Oxford OX16PCI952 and a 8x clock) */ 1135 { /* "Oxford Semiconductor OX16PCI952 UARTs", */ 1136 { PCI_VENDOR_OXFORD2, PCI_PRODUCT_OXFORD2_OX16PCI952, 1137 PCI_VENDOR_OXFORD2, 0x0001 }, 1138 { 0xffff, 0xffff, 0xffff, 0xffff }, 1139 { 1140 { PUC_PORT_COM_MUL8, 0x10, 0x0000 }, 1141 { PUC_PORT_COM_MUL8, 0x14, 0x0000 }, 1142 }, 1143 }, 1144 1145 /* Oxford Semiconductor OX16PCI952 PCI `950 UARTs - 128 byte FIFOs */ 1146 { /* "Oxford Semiconductor OX16PCI952 UARTs", */ 1147 { PCI_VENDOR_OXFORD2, PCI_PRODUCT_OXFORD2_OX16PCI952, 0, 0 }, 1148 { 0xffff, 0xffff, 0, 0 }, 1149 { 1150 { PUC_PORT_COM, 0x10, 0x0000 }, 1151 { PUC_PORT_COM, 0x14, 0x0000 }, 1152 }, 1153 }, 1154 1155 /* Oxford Semiconductor OX16PCI952 PCI Parallel port */ 1156 { /* "Oxford Semiconductor OX16PCI952 Parallel port", */ 1157 { PCI_VENDOR_OXFORD2, PCI_PRODUCT_OXFORD2_OX16PCI952P, 0, 0 }, 1158 { 0xffff, 0xffff, 0, 0 }, 1159 { 1160 { PUC_PORT_LPT, 0x10, 0x0000 }, 1161 }, 1162 }, 1163 1164 /* Oxford Semiconductor OXPCIE952 PCIE Parallel port */ 1165 { /* "Oxford Semiconductor OXPCIE952 PCIE Parallel port", */ 1166 { PCI_VENDOR_OXFORD2, PCI_PRODUCT_OXFORD2_OXPCIE952, 0, 0 }, 1167 { 0xffff, 0xffff, 0, 0 }, 1168 { 1169 { PUC_PORT_LPT, 0x10, 0x0000 }, 1170 }, 1171 }, 1172 1173 /* SIIG 2050 (uses Oxford 16PCI954 and a 10x clock) */ 1174 { /* "Oxford Semiconductor OX16PCI954 UARTs", */ 1175 { PCI_VENDOR_OXFORD2, PCI_PRODUCT_OXFORD2_OX16PCI954, 1176 PCI_VENDOR_SIIG, PCI_PRODUCT_SIIG_2050 }, 1177 { 0xffff, 0xffff, 0xffff, 0xffff }, 1178 { 1179 { PUC_PORT_COM_MUL10, 0x10, 0x0000 }, 1180 { PUC_PORT_COM_MUL10, 0x10, 0x0008 }, 1181 { PUC_PORT_COM_MUL10, 0x10, 0x0010 }, 1182 { PUC_PORT_COM_MUL10, 0x10, 0x0018 }, 1183 }, 1184 }, 1185 1186 /* I-O DATA RSA-PCI2 (uses Oxford 16PCI954 and a 8x clock) */ 1187 { /* "Oxford Semiconductor OX16PCI954 UARTs", */ 1188 { PCI_VENDOR_OXFORD2, PCI_PRODUCT_OXFORD2_OX16PCI954, 1189 PCI_VENDOR_IODATA, 0xc070 }, 1190 { 0xffff, 0xffff, 0xffff, 0xffff }, 1191 { 1192 { PUC_PORT_COM_MUL8, 0x10, 0x0000 }, 1193 { PUC_PORT_COM_MUL8, 0x10, 0x0008 }, 1194 }, 1195 }, 1196 1197 /* Oxford Semiconductor OX16PCI954 PCI UARTs */ 1198 { /* "Oxford Semiconductor OX16PCI954 UARTs", */ 1199 { PCI_VENDOR_OXFORD2, PCI_PRODUCT_OXFORD2_OX16PCI954, 0, 0 }, 1200 { 0xffff, 0xffff, 0, 0 }, 1201 { 1202 { PUC_PORT_COM, 0x10, 0x0000 }, 1203 { PUC_PORT_COM, 0x10, 0x0008 }, 1204 { PUC_PORT_COM, 0x10, 0x0010 }, 1205 { PUC_PORT_COM, 0x10, 0x0018 }, 1206 }, 1207 }, 1208 1209 /* Commell MP-954GPS, GPS and 2 COM */ 1210 { /* "Oxford Semiconductor OX16mPCI954 UARTs", */ 1211 { PCI_VENDOR_OXFORD2, PCI_PRODUCT_OXFORD2_OXMPCI954, 0, 0 }, 1212 { 0xffff, 0xffff, 0, 0 }, 1213 { 1214 { PUC_PORT_COM_MUL4, 0x10, 0x0000 }, 1215 { PUC_PORT_COM_MUL4, 0x10, 0x0008 }, 1216 { PUC_PORT_COM_MUL4, 0x10, 0x0010 }, 1217 }, 1218 }, 1219 1220 /* Oxford Semiconductor OX16PCI954K PCI UARTs */ 1221 { /* "Oxford Semiconductor OX16PCI954K UARTs", */ 1222 { PCI_VENDOR_OXFORD2, PCI_PRODUCT_OXFORD2_OX16PCI954K, 0, 0 }, 1223 { 0xffff, 0xffff, 0, 0 }, 1224 { 1225 { PUC_PORT_COM, 0x10, 0x0000 }, 1226 { PUC_PORT_COM, 0x14, 0x0000 }, 1227 { PUC_PORT_COM, 0x18, 0x0000 }, 1228 { PUC_PORT_COM, 0x1c, 0x0000 }, 1229 }, 1230 }, 1231 1232 /* Oxford Semiconductor OX16PCI954 PCI Parallel port */ 1233 { /* "Oxford Semiconductor OX16PCI954 Parallel port", */ 1234 { PCI_VENDOR_OXFORD2, PCI_PRODUCT_OXFORD2_OX16PCI954P, 0, 0 }, 1235 { 0xffff, 0xffff, 0, 0 }, 1236 { 1237 { PUC_PORT_LPT, 0x10, 0x0000 }, 1238 }, 1239 }, 1240 1241 /* Oxford Semiconductor PCIE `950 UARTs - 128 byte FIFOs */ 1242 { /* "Oxford Semiconductor PCIE UARTs", */ 1243 { PCI_VENDOR_OXFORD2, PCI_PRODUCT_OXFORD2_OXPCIE952S, 0, 0 }, 1244 { 0xffff, 0xffff, 0, 0 }, 1245 { 1246 { PUC_PORT_COM, 0x10, 0x0000 }, 1247 }, 1248 }, 1249 1250 /* 1251 * Brainboxes BB16PCI958. 1252 * Apparently based on an Oxford Semiconductor OX16PCI958 chip. 1253 */ 1254 { /* "Brainboxes BB16PCI958 UARTs", */ 1255 { PCI_VENDOR_BRAINBOXES, PCI_PRODUCT_BRAINBOXES_IS200_BB16PCI958, 1256 0, 0 }, 1257 { 0xffff, 0xffff, 0, 0 }, 1258 { 1259 { PUC_PORT_COM, 0x18, 0x0000 }, 1260 { PUC_PORT_COM, 0x18, 0x0008 }, 1261 }, 1262 }, 1263 1264 /* 1265 * NEC PK-UG-X001 K56flex PCI Modem card. 1266 * NEC MARTH bridge chip and Rockwell RCVDL56ACF/SP using. 1267 */ 1268 { /* "NEC PK-UG-X001 K56flex PCI Modem", */ 1269 { PCI_VENDOR_NEC, PCI_PRODUCT_NEC_MARTH, 0x1033, 0x8014 }, 1270 { 0xffff, 0xffff, 0xffff, 0xffff }, 1271 { 1272 { PUC_PORT_COM, 0x10, 0x0000 }, 1273 }, 1274 }, 1275 1276 /* NEC PK-UG-X008 */ 1277 { /* "NEC PK-UG-X008", */ 1278 { PCI_VENDOR_NEC, PCI_PRODUCT_NEC_PKUG, 0x1033, 0x8012 }, 1279 { 0xffff, 0xffff, 0xffff, 0xffff }, 1280 { 1281 { PUC_PORT_COM, 0x10, 0x0000 }, 1282 }, 1283 }, 1284 1285 /* Lava Computers 2SP-PCI (0x8000-0x8003) */ 1286 { /* "Lava Computers 2SP-PCI parallel port", */ 1287 { PCI_VENDOR_LAVA, PCI_PRODUCT_LAVA_TWOSP_1P, 0, 0 }, 1288 { 0xffff, 0xfffc, 0, 0 }, 1289 { 1290 { PUC_PORT_LPT, 0x10, 0x0000 }, 1291 }, 1292 }, 1293 1294 /* Lava Computers 2SP-PCI and Quattro-PCI serial ports */ 1295 { /* "Lava Computers dual serial port", */ 1296 { PCI_VENDOR_LAVA, PCI_PRODUCT_LAVA_TWOSP_2S, 0, 0 }, 1297 { 0xffff, 0xfffc, 0, 0 }, 1298 { 1299 { PUC_PORT_COM, 0x10, 0x0000 }, 1300 { PUC_PORT_COM, 0x14, 0x0000 }, 1301 }, 1302 }, 1303 1304 /* 1305 * Lava Computers Quattro-PCI serial ports. 1306 * A second version of the Quattro-PCI with different PCI ids. 1307 */ 1308 { /* "Lava Computers Quattro-PCI 4-port serial", */ 1309 { PCI_VENDOR_LAVA, PCI_PRODUCT_LAVA_QUATTRO_AB2, 0, 0 }, 1310 { 0xffff, 0xfffe, 0, 0 }, 1311 { 1312 { PUC_PORT_COM, 0x10, 0x0000 }, 1313 { PUC_PORT_COM, 0x14, 0x0000 }, 1314 }, 1315 }, 1316 1317 /* 1318 * Lava Computers LavaPort-Dual and LavaPort-Quad 4*clock PCI 1319 * serial ports. 1320 */ 1321 { /* "Lava Computers high-speed port", */ 1322 { PCI_VENDOR_LAVA, PCI_PRODUCT_LAVA_LAVAPORT_0, 0, 0 }, 1323 { 0xffff, 0xfffc, 0, 0 }, 1324 { 1325 { PUC_PORT_COM_MUL4, 0x10, 0x0000 }, 1326 { PUC_PORT_COM_MUL4, 0x14, 0x0000 }, 1327 }, 1328 }, 1329 1330 /* 1331 * Lava Computers LavaPort-single serial port. 1332 */ 1333 { /* "Lava Computers high-speed port", */ 1334 { PCI_VENDOR_LAVA, PCI_PRODUCT_LAVA_LAVAPORT_2, 0, 0 }, 1335 { 0xffff, 0xfffc, 0, 0 }, 1336 { 1337 { PUC_PORT_COM_MUL4, 0x10, 0x0000 }, 1338 }, 1339 }, 1340 1341 /* Lava Computers LavaPort-650 */ 1342 { /* "Lava Computers high-speed port", */ 1343 { PCI_VENDOR_LAVA, PCI_PRODUCT_LAVA_650, 0, 0 }, 1344 { 0xffff, 0xfffc, 0, 0 }, 1345 { 1346 { PUC_PORT_COM_MUL4, 0x10, 0x0000 }, 1347 }, 1348 }, 1349 1350 /* Koutech IOFLEX-2S PCI Dual Port Serial, port 1 */ 1351 { /* "Koutech IOFLEX-2S PCI Dual Port Serial, port 1", */ 1352 { PCI_VENDOR_LAVA, PCI_PRODUCT_LAVA_IOFLEX_2S_0, 0, 0 }, 1353 { 0xffff, 0xfffc, 0, 0 }, 1354 { 1355 { PUC_PORT_COM, 0x10, 0x0000 }, 1356 }, 1357 }, 1358 1359 /* Koutech IOFLEX-2S PCI Dual Port Serial, port 2 */ 1360 { /* "Koutech IOFLEX-2S PCI Dual Port Serial, port 2", */ 1361 { PCI_VENDOR_LAVA, PCI_PRODUCT_LAVA_IOFLEX_2S_1, 0, 0 }, 1362 { 0xffff, 0xfffc, 0, 0 }, 1363 { 1364 { PUC_PORT_COM, 0x10, 0x0000 }, 1365 }, 1366 }, 1367 1368 /* Lava Computers Octopus-550 serial ports */ 1369 { /* "Lava Computers Octopus-550 8-port serial", */ 1370 { PCI_VENDOR_LAVA, PCI_PRODUCT_LAVA_OCTOPUS550_0, 0, 0 }, 1371 { 0xffff, 0xfffc, 0, 0 }, 1372 { 1373 { PUC_PORT_COM, 0x10, 0x0000 }, 1374 { PUC_PORT_COM, 0x14, 0x0000 }, 1375 { PUC_PORT_COM, 0x18, 0x0000 }, 1376 { PUC_PORT_COM, 0x1c, 0x0000 }, 1377 }, 1378 }, 1379 1380 /* Lava Computers Octopus-550 serial ports */ 1381 { /* "Lava Computers Octopus-550 8-port serial", */ 1382 { PCI_VENDOR_LAVA, PCI_PRODUCT_LAVA_OCTOPUS550_1, 0, 0 }, 1383 { 0xffff, 0xfffc, 0, 0 }, 1384 { 1385 { PUC_PORT_COM, 0x10, 0x0000 }, 1386 { PUC_PORT_COM, 0x14, 0x0000 }, 1387 { PUC_PORT_COM, 0x18, 0x0000 }, 1388 { PUC_PORT_COM, 0x1c, 0x0000 }, 1389 }, 1390 }, 1391 1392 /* US Robotics (3Com) PCI Modems */ 1393 { /* "US Robotics (3Com) 3CP5610 PCI 16550 Modem", */ 1394 { PCI_VENDOR_USR, PCI_PRODUCT_USR_3CP5610, 0, 0 }, 1395 { 0xffff, 0xffff, 0, 0 }, 1396 { 1397 { PUC_PORT_COM, 0x10, 0x0000 }, 1398 }, 1399 }, 1400 1401 /* IBM 33L4618: AT&T/Lucent Venus Modem */ 1402 { /* "IBM 33L4618: AT&T/Lucent Venus Modem", */ 1403 /* "Actiontec 56K PCI Master" */ 1404 { PCI_VENDOR_LUCENT, PCI_PRODUCT_LUCENT_VENUSMODEM, 0, 0 }, 1405 { 0xffff, 0xffff, 0, 0 }, 1406 { 1407 { PUC_PORT_COM, 0x18, 0x0008 }, 1408 }, 1409 }, 1410 1411 /* Topic/SmartLink 5634PCV SurfRider */ 1412 { /* "Topic/SmartLink 5634PCV SurfRider" */ 1413 { PCI_VENDOR_TOPIC, PCI_PRODUCT_TOPIC_5634PCV, 0, 0 }, 1414 { 0xffff, 0xffff, 0, 0 }, 1415 { 1416 { PUC_PORT_COM, 0x10, 0x0000 }, 1417 }, 1418 }, 1419 1420 /* SD-LAB PCI I/O Card 4S */ 1421 { /* "Syba Tech Ltd. PCI-4S" */ 1422 { PCI_VENDOR_SYBA, PCI_PRODUCT_SYBA_4S, 0, 0 }, 1423 { 0xffff, 0xffff, 0, 0 }, 1424 { 1425 { PUC_PORT_COM, 0x10, 0x03e8 }, 1426 { PUC_PORT_COM, 0x10, 0x02e8 }, 1427 { PUC_PORT_COM, 0x10, 0x03f8 }, 1428 { PUC_PORT_COM, 0x10, 0x02f8 }, 1429 }, 1430 }, 1431 1432 /* SD-LAB PCI I/O Card 4S2P */ 1433 { /* "Syba Tech Ltd. PCI-4S2P-550-ECP" */ 1434 { PCI_VENDOR_SYBA, PCI_PRODUCT_SYBA_4S2P, 0, 0 }, 1435 { 0xffff, 0xffff, 0, 0 }, 1436 { 1437 { PUC_PORT_COM, 0x10, 0x02e8 }, 1438 { PUC_PORT_COM, 0x10, 0x02f8 }, 1439 { PUC_PORT_LPT, 0x10, 0x0000 }, 1440 { PUC_PORT_COM, 0x10, 0x03e8 }, 1441 { PUC_PORT_COM, 0x10, 0x03f8 }, 1442 { PUC_PORT_LPT, 0x10, 0x0000 }, 1443 }, 1444 }, 1445 1446 /* Moxa Technologies Co., Ltd. PCI I/O Card 4S RS232/422/485 */ 1447 { /* "Moxa Technologies, Industio CP-114" */ 1448 { PCI_VENDOR_MOXA, PCI_PRODUCT_MOXA_CP114, 0, 0 }, 1449 { 0xffff, 0xffff, 0, 0 }, 1450 { 1451 { PUC_PORT_COM_MUL8, 0x18, 0x0000 }, 1452 { PUC_PORT_COM_MUL8, 0x18, 0x0008 }, 1453 { PUC_PORT_COM_MUL8, 0x18, 0x0010 }, 1454 { PUC_PORT_COM_MUL8, 0x18, 0x0018 }, 1455 }, 1456 }, 1457 1458 /* Moxa Technologies Co., Ltd. PCI I/O Card 4S RS232/422/485 */ 1459 { /* "Moxa Technologies, SmartIO C104H/PCI" */ 1460 { PCI_VENDOR_MOXA, PCI_PRODUCT_MOXA_C104H, 0, 0 }, 1461 { 0xffff, 0xffff, 0, 0 }, 1462 { 1463 { PUC_PORT_COM_MUL8, 0x18, 0x0000 }, 1464 { PUC_PORT_COM_MUL8, 0x18, 0x0008 }, 1465 { PUC_PORT_COM_MUL8, 0x18, 0x0010 }, 1466 { PUC_PORT_COM_MUL8, 0x18, 0x0018 }, 1467 }, 1468 }, 1469 1470 /* Moxa Technologies Co., Ltd. PCI I/O Card 4S RS232 */ 1471 { /* "Moxa Technologies, SmartIO CP104UL/PCI" */ 1472 { PCI_VENDOR_MOXA, PCI_PRODUCT_MOXA_CP104UL, 0, 0 }, 1473 { 0xffff, 0xffff, 0, 0 }, 1474 { 1475 { PUC_PORT_COM_MUL8, 0x18, 0x0000 }, 1476 { PUC_PORT_COM_MUL8, 0x18, 0x0008 }, 1477 { PUC_PORT_COM_MUL8, 0x18, 0x0010 }, 1478 { PUC_PORT_COM_MUL8, 0x18, 0x0018 }, 1479 }, 1480 }, 1481 1482 /* Moxa Technologies Co., Ltd. PCI I/O Card 4S RS232 */ 1483 { /* "Moxa Technologies, SmartIO CP104JU/PCI" */ 1484 { PCI_VENDOR_MOXA, PCI_PRODUCT_MOXA_CP104JU, 0, 0 }, 1485 { 0xffff, 0xffff, 0, 0 }, 1486 { 1487 { PUC_PORT_COM_MUL8, 0x18, 0x0000 }, 1488 { PUC_PORT_COM_MUL8, 0x18, 0x0008 }, 1489 { PUC_PORT_COM_MUL8, 0x18, 0x0010 }, 1490 { PUC_PORT_COM_MUL8, 0x18, 0x0018 }, 1491 }, 1492 }, 1493 1494 /* Moxa Technologies Co., Ltd. PCI I/O Card 4S RS232 */ 1495 { /* "Moxa Technologies, SmartIO CP104EL/PCI" */ 1496 { PCI_VENDOR_MOXA, PCI_PRODUCT_MOXA_CP104EL, 0, 0 }, 1497 { 0xffff, 0xffff, 0, 0 }, 1498 { 1499 { PUC_PORT_COM_MUL8, 0x18, 0x0000 }, 1500 { PUC_PORT_COM_MUL8, 0x18, 0x0008 }, 1501 { PUC_PORT_COM_MUL8, 0x18, 0x0010 }, 1502 { PUC_PORT_COM_MUL8, 0x18, 0x0018 }, 1503 }, 1504 }, 1505 1506 /* Moxa Technologies Co., Ltd. PCI I/O Card 8S RS232 */ 1507 { /* "Moxa Technologies, Industio C168H" */ 1508 { PCI_VENDOR_MOXA, PCI_PRODUCT_MOXA_C168H, 0, 0 }, 1509 { 0xffff, 0xffff, 0, 0 }, 1510 { 1511 { PUC_PORT_COM_MUL8, 0x18, 0x0000 }, 1512 { PUC_PORT_COM_MUL8, 0x18, 0x0008 }, 1513 { PUC_PORT_COM_MUL8, 0x18, 0x0010 }, 1514 { PUC_PORT_COM_MUL8, 0x18, 0x0018 }, 1515 { PUC_PORT_COM_MUL8, 0x18, 0x0020 }, 1516 { PUC_PORT_COM_MUL8, 0x18, 0x0028 }, 1517 { PUC_PORT_COM_MUL8, 0x18, 0x0030 }, 1518 { PUC_PORT_COM_MUL8, 0x18, 0x0038 }, 1519 }, 1520 }, 1521 1522 /* Moxa Technologies Co., Ltd. PCI I/O Card 8S RS232 */ 1523 { /* "Moxa Technologies, CP-168U" */ 1524 { PCI_VENDOR_MOXA, PCI_PRODUCT_MOXA_CP168U, 0, 0 }, 1525 { 0xffff, 0xffff, 0, 0 }, 1526 { 1527 { PUC_PORT_COM_MUL8, 0x18, 0x0000 }, 1528 { PUC_PORT_COM_MUL8, 0x18, 0x0008 }, 1529 { PUC_PORT_COM_MUL8, 0x18, 0x0010 }, 1530 { PUC_PORT_COM_MUL8, 0x18, 0x0018 }, 1531 { PUC_PORT_COM_MUL8, 0x18, 0x0020 }, 1532 { PUC_PORT_COM_MUL8, 0x18, 0x0028 }, 1533 { PUC_PORT_COM_MUL8, 0x18, 0x0030 }, 1534 { PUC_PORT_COM_MUL8, 0x18, 0x0038 }, 1535 }, 1536 }, 1537 1538 /* NetMos 1P PCI: 1P */ 1539 { /* "NetMos NM9805 1284 Printer Port" */ 1540 { PCI_VENDOR_NETMOS, PCI_PRODUCT_NETMOS_NM9805, 0, 0 }, 1541 { 0xffff, 0xffff, 0, 0 }, 1542 { 1543 { PUC_PORT_LPT, 0x10, 0x0000 }, 1544 }, 1545 }, 1546 1547 /* NetMos 1S PCI 16C650 : 1S */ 1548 { /* "NetMos NM9835 UART" */ 1549 { PCI_VENDOR_NETMOS, PCI_PRODUCT_NETMOS_NM9835, 0x1000, 0x0001 }, 1550 { 0xffff, 0xffff, 0xffff, 0xffff }, 1551 { 1552 { PUC_PORT_COM, 0x10, 0x0000 }, 1553 }, 1554 }, 1555 1556 /* NetMos 2S1P PCI 16C650 : 2S, 1P */ 1557 { /* "NetMos NM9835 Dual UART and 1284 Printer port" */ 1558 { PCI_VENDOR_NETMOS, PCI_PRODUCT_NETMOS_NM9835, 0, 0 }, 1559 { 0xffff, 0xffff, 0, 0 }, 1560 { 1561 { PUC_PORT_COM, 0x10, 0x0000 }, 1562 { PUC_PORT_COM, 0x14, 0x0000 }, 1563 { PUC_PORT_LPT, 0x18, 0x0000 }, 1564 }, 1565 }, 1566 1567 /* NetMos 4S PCI 16C650 : 4S, 0P */ 1568 { /* "NetMos NM9845 Quad UART" */ 1569 { PCI_VENDOR_NETMOS, PCI_PRODUCT_NETMOS_NM9845, 0x1000, 0x0004 }, 1570 { 0xffff, 0xffff, 0xffff, 0xffff }, 1571 { 1572 { PUC_PORT_COM, 0x10, 0x0000 }, 1573 { PUC_PORT_COM, 0x14, 0x0000 }, 1574 { PUC_PORT_COM, 0x18, 0x0000 }, 1575 { PUC_PORT_COM, 0x1c, 0x0000 }, 1576 }, 1577 }, 1578 1579 /* NetMos 4S1P PCI 16C650 : 4S, 1P */ 1580 { /* "NetMos NM9845 Quad UART and 1284 Printer port" */ 1581 { PCI_VENDOR_NETMOS, PCI_PRODUCT_NETMOS_NM9845, 0x1000, 0x0014 }, 1582 { 0xffff, 0xffff, 0xffff, 0xffff }, 1583 { 1584 { PUC_PORT_COM, 0x10, 0x0000 }, 1585 { PUC_PORT_COM, 0x14, 0x0000 }, 1586 { PUC_PORT_COM, 0x18, 0x0000 }, 1587 { PUC_PORT_COM, 0x1c, 0x0000 }, 1588 { PUC_PORT_LPT, 0x20, 0x0000 }, 1589 }, 1590 }, 1591 1592 /* NetMos 6S PCI 16C650 : 6S, 0P */ 1593 { /* "NetMos NM9845 6 UART" */ 1594 { PCI_VENDOR_NETMOS, PCI_PRODUCT_NETMOS_NM9845, 0x1000, 0x0006 }, 1595 { 0xffff, 0xffff, 0xffff, 0xffff }, 1596 { 1597 { PUC_PORT_COM, 0x10, 0x0000 }, 1598 { PUC_PORT_COM, 0x14, 0x0000 }, 1599 { PUC_PORT_COM, 0x18, 0x0000 }, 1600 { PUC_PORT_COM, 0x1c, 0x0000 }, 1601 { PUC_PORT_COM, 0x20, 0x0000 }, 1602 { PUC_PORT_COM, 0x24, 0x0000 }, 1603 }, 1604 }, 1605 1606 /* NetMos 2S PCI 16C650 : 2S */ 1607 { /* "NetMos NM9845 Dual UART" */ 1608 { PCI_VENDOR_NETMOS, PCI_PRODUCT_NETMOS_NM9845, 0, 0 }, 1609 { 0xffff, 0xffff, 0, 0 }, 1610 { 1611 { PUC_PORT_COM, 0x10, 0x0000 }, 1612 { PUC_PORT_COM, 0x14, 0x0000 }, 1613 }, 1614 }, 1615 1616 /* NetMos 6S PCI 16C650 : 6S 1617 * Shows up as three PCI devices, two with a single serial 1618 * port and one with four serial ports (on a special ISA 1619 * extender chip). 1620 */ 1621 { /* "NetMos NM9865 6 UART: 1 UART" */ 1622 { PCI_VENDOR_NETMOS, PCI_PRODUCT_NETMOS_NM9865, 0xa000, 0x1000 }, 1623 { 0xffff, 0xffff, 0xffff, 0xffff }, 1624 { 1625 { PUC_PORT_COM, 0x10, 0x0000 }, 1626 }, 1627 }, 1628 { /* "NetMos NM9865 6 UART: 4 UART ISA" */ 1629 { PCI_VENDOR_NETMOS, PCI_PRODUCT_NETMOS_NM9865, 0xa000, 0x3004 }, 1630 { 0xffff, 0xffff, 0xffff, 0xffff }, 1631 { 1632 { PUC_PORT_COM, 0x10, 0x0000 }, 1633 { PUC_PORT_COM, 0x14, 0x0000 }, 1634 { PUC_PORT_COM, 0x18, 0x0000 }, 1635 { PUC_PORT_COM, 0x1c, 0x0000 }, 1636 }, 1637 }, 1638 1639 /* NetMos PCIe Peripheral Controller :UART part */ 1640 { /* "NetMos NM9901 UART" */ 1641 { PCI_VENDOR_NETMOS, PCI_PRODUCT_NETMOS_NM9901, 0xa000, 0x1000 }, 1642 { 0xffff, 0xffff, 0xffff, 0xffff }, 1643 { 1644 { PUC_PORT_COM, 0x10, 0x0000 }, 1645 }, 1646 }, 1647 1648 /* NetMos PCIe Peripheral Controller :parallel part */ 1649 { /* "NetMos NM9901 UART" */ 1650 { PCI_VENDOR_NETMOS, PCI_PRODUCT_NETMOS_NM9901, 0xa000, 0x2000 }, 1651 { 0xffff, 0xffff, 0xffff, 0xffff }, 1652 { 1653 { PUC_PORT_LPT, 0x10, 0x0000 }, 1654 }, 1655 }, 1656 1657 { /* NetMos NM9922: 2S */ 1658 { PCI_VENDOR_NETMOS, PCI_PRODUCT_NETMOS_NM9922, 0xa000, 0x1000 }, 1659 { 0xffff, 0xffff, 0xffff, 0xffff }, 1660 { 1661 { PUC_PORT_COM, 0x10, 0x0000 }, 1662 }, 1663 }, 1664 1665 /* 1666 * Perle Speed8 LE. 1667 * Based on an Oxford Semiconductor OX16PCI954 chip, using the 1668 * 8-bit pass-through Local Bus function to hook up 4 1669 * additional UARTs. 1670 */ 1671 { /* OX16PCI954 internal UARTs */ 1672 { PCI_VENDOR_PERLE, PCI_PRODUCT_PERLE_SPEED8_LE, 1673 PCI_VENDOR_OXFORD2, PCI_PRODUCT_OXFORD2_OX16PCI954 }, 1674 { 0xffff, 0xffff, 0xffff, 0xffff }, 1675 { 1676 { PUC_PORT_COM_MUL8, 0x10, 0x0000 }, 1677 { PUC_PORT_COM_MUL8, 0x10, 0x0008 }, 1678 { PUC_PORT_COM_MUL8, 0x10, 0x0010 }, 1679 { PUC_PORT_COM_MUL8, 0x10, 0x0018 }, 1680 }, 1681 }, 1682 { /* OX16PCI954 8-bit pass-through Local Bus */ 1683 { PCI_VENDOR_PERLE, PCI_PRODUCT_PERLE_SPEED8_LE, 1684 PCI_VENDOR_OXFORD2, 0x9511 }, 1685 { 0xffff, 0xffff, 0xffff, 0xffff }, 1686 { 1687 { PUC_PORT_COM_MUL8, 0x10, 0x0000 }, 1688 { PUC_PORT_COM_MUL8, 0x10, 0x0008 }, 1689 { PUC_PORT_COM_MUL8, 0x10, 0x0010 }, 1690 { PUC_PORT_COM_MUL8, 0x10, 0x0018 }, 1691 }, 1692 }, 1693 1694 { /* Sunix 4018A : 2-port parallel */ 1695 { PCI_VENDOR_SUNIX, PCI_PRODUCT_SUNIX_4018A, 0, 0 }, 1696 { 0xffff, 0xffff, 0, 0 }, 1697 { 1698 { PUC_PORT_LPT, 0x10, 0x0000 }, 1699 { PUC_PORT_LPT, 0x18, 0x0000 }, 1700 }, 1701 }, 1702 1703 /* 1704 * SUNIX 40XX series of serial/parallel combo cards. 1705 * Tested with 4055A and 4065A. 1706 */ 1707 { /* SUNIX 400X 1P */ 1708 { PCI_VENDOR_SUNIX, PCI_PRODUCT_SUNIX_40XX, 0x1409, 0x4000 }, 1709 { 0xffff, 0xffff, 0xffff, 0xeff0 }, 1710 { 1711 { PUC_PORT_LPT, 0x10, 0x0000 }, 1712 }, 1713 }, 1714 1715 { /* SUNIX 401X 2P */ 1716 { PCI_VENDOR_SUNIX, PCI_PRODUCT_SUNIX_40XX, 0x1409, 0x4010 }, 1717 { 0xffff, 0xffff, 0xffff, 0xeff0 }, 1718 { 1719 { PUC_PORT_LPT, 0x10, 0x0000 }, 1720 { PUC_PORT_LPT, 0x18, 0x0000 }, 1721 }, 1722 }, 1723 1724 { /* SUNIX 402X 1S */ 1725 { PCI_VENDOR_SUNIX, PCI_PRODUCT_SUNIX_40XX, 0x1409, 0x4020 }, 1726 { 0xffff, 0xffff, 0xffff, 0xeff0 }, 1727 { 1728 { PUC_PORT_COM_MUL8, 0x10, 0x0000 }, 1729 }, 1730 }, 1731 1732 { /* SUNIX 403X 2S */ 1733 { PCI_VENDOR_SUNIX, PCI_PRODUCT_SUNIX_40XX, 0x1409, 0x4030 }, 1734 { 0xffff, 0xffff, 0xffff, 0xeff0 }, 1735 { 1736 { PUC_PORT_COM_MUL8, 0x10, 0x0000 }, 1737 { PUC_PORT_COM_MUL8, 0x10, 0x0008 }, 1738 }, 1739 }, 1740 1741 { /* SUNIX 4036 2S */ 1742 { PCI_VENDOR_SUNIX, PCI_PRODUCT_SUNIX_40XX, 0x1409, 0x0002 }, 1743 { 0xffff, 0xffff, 0xffff, 0xffff }, 1744 { 1745 { PUC_PORT_COM_MUL8, 0x10, 0x0000 }, 1746 { PUC_PORT_COM_MUL8, 0x10, 0x0008 }, 1747 }, 1748 }, 1749 1750 { /* SUNIX 405X 4S */ 1751 { PCI_VENDOR_SUNIX, PCI_PRODUCT_SUNIX_40XX, 0x1409, 0x4050 }, 1752 { 0xffff, 0xffff, 0xffff, 0xe0f0 }, 1753 { 1754 { PUC_PORT_COM_MUL8, 0x10, 0x0000 }, 1755 { PUC_PORT_COM_MUL8, 0x10, 0x0008 }, 1756 { PUC_PORT_COM, 0x14, 0x0000 }, 1757 { PUC_PORT_COM, 0x14, 0x0008 }, 1758 }, 1759 }, 1760 1761 { /* SUNIX 406X 8S */ 1762 { PCI_VENDOR_SUNIX, PCI_PRODUCT_SUNIX_40XX, 0x1409, 0x5066 }, 1763 { 0xffff, 0xffff, 0xffff, 0xffff }, 1764 { 1765 { PUC_PORT_COM_MUL8, 0x10, 0x0000 }, 1766 { PUC_PORT_COM_MUL8, 0x10, 0x0008 }, 1767 { PUC_PORT_COM, 0x14, 0x0000 }, 1768 { PUC_PORT_COM, 0x14, 0x0008 }, 1769 { PUC_PORT_COM, 0x18, 0x0000 }, 1770 { PUC_PORT_COM, 0x1c, 0x0000 }, 1771 { PUC_PORT_COM, 0x20, 0x0000 }, 1772 { PUC_PORT_COM, 0x24, 0x0000 }, 1773 }, 1774 }, 1775 1776 { /* SUNIX 406X 8S */ 1777 { PCI_VENDOR_SUNIX, PCI_PRODUCT_SUNIX_40XX, 0x1409, 0x4060 }, 1778 { 0xffff, 0xffff, 0xffff, 0xe0f0 }, 1779 { 1780 { PUC_PORT_COM_MUL8, 0x10, 0x0000 }, 1781 { PUC_PORT_COM_MUL8, 0x10, 0x0008 }, 1782 { PUC_PORT_COM_MUL8, 0x14, 0x0000 }, 1783 { PUC_PORT_COM_MUL8, 0x14, 0x0008 }, 1784 { PUC_PORT_COM_MUL8, 0x18, 0x0000 }, 1785 { PUC_PORT_COM_MUL8, 0x1c, 0x0000 }, 1786 { PUC_PORT_COM_MUL8, 0x20, 0x0000 }, 1787 { PUC_PORT_COM_MUL8, 0x24, 0x0000 }, 1788 }, 1789 }, 1790 1791 { /* SUNIX 407X 2S/1P */ 1792 { PCI_VENDOR_SUNIX, PCI_PRODUCT_SUNIX_40XX, 0x1409, 0x4070 }, 1793 { 0xffff, 0xffff, 0xffff, 0xeff0 }, 1794 { 1795 { PUC_PORT_COM_MUL8, 0x10, 0x0000 }, 1796 { PUC_PORT_COM_MUL8, 0x10, 0x0008 }, 1797 { PUC_PORT_LPT, 0x18, 0x0000 }, 1798 }, 1799 }, 1800 1801 { /* SUNIX 408X 2S/2P */ 1802 { PCI_VENDOR_SUNIX, PCI_PRODUCT_SUNIX_40XX, 0x1409, 0x4080 }, 1803 { 0xffff, 0xffff, 0xffff, 0xeff0 }, 1804 { 1805 { PUC_PORT_COM_MUL8, 0x10, 0x0000 }, 1806 { PUC_PORT_COM_MUL8, 0x10, 0x0008 }, 1807 { PUC_PORT_LPT, 0x18, 0x0000 }, 1808 { PUC_PORT_LPT, 0x20, 0x0000 }, 1809 }, 1810 }, 1811 1812 { /* SUNIX 409X 4S/2P */ 1813 { PCI_VENDOR_SUNIX, PCI_PRODUCT_SUNIX_40XX, 0x1409, 0x4090 }, 1814 { 0xffff, 0xffff, 0xffff, 0xeff0 }, 1815 { 1816 { PUC_PORT_COM_MUL8, 0x10, 0x0000 }, 1817 { PUC_PORT_COM_MUL8, 0x10, 0x0008 }, 1818 { PUC_PORT_COM, 0x14, 0x0000 }, 1819 { PUC_PORT_COM, 0x14, 0x0008 }, 1820 { PUC_PORT_LPT, 0x18, 0x0000 }, 1821 { PUC_PORT_LPT, 0x20, 0x0000 }, 1822 }, 1823 }, 1824 1825 /* 1826 * SUNIX 50XX series of serial/parallel combo cards. 1827 * Tested with 5066A. 1828 */ 1829 { /* SUNIX 5008 1P */ 1830 { PCI_VENDOR_SUNIX2, PCI_PRODUCT_SUNIX2_50XX, 0x1fd4, 0x0100 }, 1831 { 0xffff, 0xffff, 0xffff, 0xeff0 }, 1832 { 1833 { PUC_PORT_LPT, 0x14, 0x0000 }, 1834 }, 1835 }, 1836 1837 { /* SUNIX 5016 16S */ 1838 { PCI_VENDOR_SUNIX2, PCI_PRODUCT_SUNIX2_50XX, 0x1fd4, 0x0010 }, 1839 { 0xffff, 0xffff, 0xffff, 0xffff }, 1840 { 1841 { PUC_PORT_COM_MUL8, 0x10, 0x0000 }, 1842 { PUC_PORT_COM_MUL8, 0x10, 0x0008 }, 1843 { PUC_PORT_COM_MUL8, 0x10, 0x0010 }, 1844 { PUC_PORT_COM_MUL8, 0x10, 0x0018 }, 1845 { PUC_PORT_COM_MUL8, 0x14, 0x0000 }, 1846 { PUC_PORT_COM_MUL8, 0x14, 0x0008 }, 1847 { PUC_PORT_COM_MUL8, 0x14, 0x0010 }, 1848 { PUC_PORT_COM_MUL8, 0x14, 0x0018 }, 1849 { PUC_PORT_COM_MUL8, 0x14, 0x0020 }, 1850 { PUC_PORT_COM_MUL8, 0x14, 0x0028 }, 1851 { PUC_PORT_COM_MUL8, 0x14, 0x0030 }, 1852 { PUC_PORT_COM_MUL8, 0x14, 0x0038 }, 1853 { PUC_PORT_COM_MUL8, 0x14, 0x0040 }, 1854 { PUC_PORT_COM_MUL8, 0x14, 0x0048 }, 1855 { PUC_PORT_COM_MUL8, 0x14, 0x0050 }, 1856 { PUC_PORT_COM_MUL8, 0x14, 0x0058 }, 1857 }, 1858 }, 1859 1860 { /* SUNIX 5027 1S */ 1861 { PCI_VENDOR_SUNIX2, PCI_PRODUCT_SUNIX2_50XX, 0x1fd4, 0x0001 }, 1862 { 0xffff, 0xffff, 0xffff, 0xffff }, 1863 { 1864 { PUC_PORT_COM_MUL8, 0x10, 0x0000 }, 1865 }, 1866 }, 1867 1868 { /* SUNIX 5037 2S */ 1869 { PCI_VENDOR_SUNIX2, PCI_PRODUCT_SUNIX2_50XX, 0x1fd4, 0x0002 }, 1870 { 0xffff, 0xffff, 0xffff, 0xffff }, 1871 { 1872 { PUC_PORT_COM_MUL8, 0x10, 0x0000 }, 1873 { PUC_PORT_COM_MUL8, 0x10, 0x0008 }, 1874 }, 1875 }, 1876 1877 { /* SUNIX 5056 4S */ 1878 { PCI_VENDOR_SUNIX2, PCI_PRODUCT_SUNIX2_50XX, 0x1fd4, 0x0004 }, 1879 { 0xffff, 0xffff, 0xffff, 0xffff }, 1880 { 1881 { PUC_PORT_COM_MUL8, 0x10, 0x0000 }, 1882 { PUC_PORT_COM_MUL8, 0x10, 0x0008 }, 1883 { PUC_PORT_COM_MUL8, 0x10, 0x0010 }, 1884 { PUC_PORT_COM_MUL8, 0x10, 0x0018 }, 1885 }, 1886 }, 1887 1888 { /* SUNIX 5066 8S */ 1889 { PCI_VENDOR_SUNIX2, PCI_PRODUCT_SUNIX2_50XX, 0x1fd4, 0x0008 }, 1890 { 0xffff, 0xffff, 0xffff, 0xffff }, 1891 { 1892 { PUC_PORT_COM_MUL8, 0x10, 0x0000 }, 1893 { PUC_PORT_COM_MUL8, 0x10, 0x0008 }, 1894 { PUC_PORT_COM_MUL8, 0x10, 0x0010 }, 1895 { PUC_PORT_COM_MUL8, 0x10, 0x0018 }, 1896 { PUC_PORT_COM_MUL8, 0x14, 0x0000 }, 1897 { PUC_PORT_COM_MUL8, 0x14, 0x0008 }, 1898 { PUC_PORT_COM_MUL8, 0x14, 0x0010 }, 1899 { PUC_PORT_COM_MUL8, 0x14, 0x0018 }, 1900 }, 1901 }, 1902 1903 { /* SUNIX 5069 1S / 1P */ 1904 { PCI_VENDOR_SUNIX2, PCI_PRODUCT_SUNIX2_50XX, 0x1fd4, 0x0101 }, 1905 { 0xffff, 0xffff, 0xffff, 0xeff0 }, 1906 { 1907 { PUC_PORT_COM_MUL8, 0x10, 0x0000 }, 1908 { PUC_PORT_LPT, 0x14, 0x0000 }, 1909 }, 1910 }, 1911 1912 { /* SUNIX 5079 2S / 1P */ 1913 { PCI_VENDOR_SUNIX2, PCI_PRODUCT_SUNIX2_50XX, 0x1fd4, 0x0102 }, 1914 { 0xffff, 0xffff, 0xffff, 0xffff }, 1915 { 1916 { PUC_PORT_COM_MUL8, 0x10, 0x0000 }, 1917 { PUC_PORT_COM_MUL8, 0x10, 0x0008 }, 1918 { PUC_PORT_LPT, 0x14, 0x0000 }, 1919 }, 1920 }, 1921 1922 { /* SUNIX 5099 4S / 1P */ 1923 { PCI_VENDOR_SUNIX2, PCI_PRODUCT_SUNIX2_50XX, 0x1fd4, 0x0104 }, 1924 { 0xffff, 0xffff, 0xffff, 0xffff }, 1925 { 1926 { PUC_PORT_COM_MUL8, 0x10, 0x0000 }, 1927 { PUC_PORT_COM_MUL8, 0x10, 0x0008 }, 1928 { PUC_PORT_COM_MUL8, 0x10, 0x0010 }, 1929 { PUC_PORT_COM_MUL8, 0x10, 0x0018 }, 1930 { PUC_PORT_LPT, 0x14, 0x0000 }, 1931 }, 1932 }, 1933 1934 /* 1935 * Boca Research Turbo Serial 654 (4 serial port) card. 1936 * Appears to be the same as Chase Research PLC PCI-FAST4 card, 1937 * same as Perle PCI-FAST4 Multi-Port serial card 1938 */ 1939 { /* "Boca Turbo Serial 654 - IOP654" */ 1940 { PCI_VENDOR_PLX, PCI_PRODUCT_PLX_9050, 0x12e0, 0x0031 }, 1941 { 0xffff, 0xffff, 0xffff, 0xffff }, 1942 { 1943 { PUC_PORT_COM_MUL4, 0x18, 0x0000 }, 1944 { PUC_PORT_COM_MUL4, 0x18, 0x0008 }, 1945 { PUC_PORT_COM_MUL4, 0x18, 0x0010 }, 1946 { PUC_PORT_COM_MUL4, 0x18, 0x0018 }, 1947 }, 1948 }, 1949 1950 /* 1951 * Boca Research Turbo Serial 658 (8 serial port) card. 1952 * Appears to be the same as Chase Research PLC PCI-FAST8 card 1953 * same as Perle PCI-FAST8 Multi-Port serial card 1954 */ 1955 { /* "Boca Turbo Serial 658 - IOP658" */ 1956 { PCI_VENDOR_PLX, PCI_PRODUCT_PLX_9050, 0x12e0, 0x0021 }, 1957 { 0xffff, 0xffff, 0xffff, 0xffff }, 1958 { 1959 { PUC_PORT_COM_MUL4, 0x18, 0x0000 }, 1960 { PUC_PORT_COM_MUL4, 0x18, 0x0008 }, 1961 { PUC_PORT_COM_MUL4, 0x18, 0x0010 }, 1962 { PUC_PORT_COM_MUL4, 0x18, 0x0018 }, 1963 { PUC_PORT_COM_MUL4, 0x18, 0x0020 }, 1964 { PUC_PORT_COM_MUL4, 0x18, 0x0028 }, 1965 { PUC_PORT_COM_MUL4, 0x18, 0x0030 }, 1966 { PUC_PORT_COM_MUL4, 0x18, 0x0038 }, 1967 }, 1968 }, 1969 1970 /* Cronyx Engineering Ltd. Omega-PCI (8 serial port) card. */ 1971 { /* "Cronyx Omega-PCI" */ 1972 { PCI_VENDOR_PLX, PCI_PRODUCT_PLX_CRONYX_OMEGA, 0, 0 }, 1973 { 0xffff, 0xffff, 0, 0 }, 1974 { 1975 { PUC_PORT_COM, 0x18, 0x0000 }, 1976 { PUC_PORT_COM, 0x18, 0x0008 }, 1977 { PUC_PORT_COM, 0x18, 0x0010 }, 1978 { PUC_PORT_COM, 0x18, 0x0018 }, 1979 { PUC_PORT_COM, 0x18, 0x0020 }, 1980 { PUC_PORT_COM, 0x18, 0x0028 }, 1981 { PUC_PORT_COM, 0x18, 0x0030 }, 1982 { PUC_PORT_COM, 0x18, 0x0038 }, 1983 }, 1984 }, 1985 1986 /* PLX 9016 8 port serial card. (i.e. Syba) */ 1987 { /* "PLX 9016 - Syba" */ 1988 { PCI_VENDOR_PLX, PCI_PRODUCT_PLX_9016, 0, 0 }, 1989 { 0xffff, 0xffff, 0, 0 }, 1990 { 1991 { PUC_PORT_COM_MUL4, 0x10, 0x0000 }, 1992 { PUC_PORT_COM_MUL4, 0x10, 0x0008 }, 1993 { PUC_PORT_COM_MUL4, 0x10, 0x0010 }, 1994 { PUC_PORT_COM_MUL4, 0x10, 0x0018 }, 1995 { PUC_PORT_COM_MUL4, 0x10, 0x0020 }, 1996 { PUC_PORT_COM_MUL4, 0x10, 0x0028 }, 1997 { PUC_PORT_COM_MUL4, 0x10, 0x0030 }, 1998 { PUC_PORT_COM_MUL4, 0x10, 0x0038 }, 1999 }, 2000 }, 2001 2002 /* Avlab Technology, Inc. Low Profile PCI 4 Serial: 4S */ 2003 { /* "Avlab Low Profile PCI 4 Serial" */ 2004 { PCI_VENDOR_AVLAB, PCI_PRODUCT_AVLAB_LPPCI4S_2, 0, 0 }, 2005 { 0xffff, 0xffff, 0, 0 }, 2006 { 2007 { PUC_PORT_COM, 0x10, 0x0000 }, 2008 { PUC_PORT_COM, 0x14, 0x0000 }, 2009 { PUC_PORT_COM, 0x18, 0x0000 }, 2010 { PUC_PORT_COM, 0x1c, 0x0000 }, 2011 }, 2012 }, 2013 2014 /* Avlab Technology, Inc. Low Profile PCI 4 Serial: 4S */ 2015 { /* "Avlab Low Profile PCI 4 Serial" */ 2016 { PCI_VENDOR_AVLAB, PCI_PRODUCT_AVLAB_LPPCI4S, 0, 0 }, 2017 { 0xffff, 0xffff, 0, 0 }, 2018 { 2019 { PUC_PORT_COM, 0x10, 0x0000 }, 2020 { PUC_PORT_COM, 0x14, 0x0000 }, 2021 { PUC_PORT_COM, 0x18, 0x0000 }, 2022 { PUC_PORT_COM, 0x1c, 0x0000 }, 2023 }, 2024 }, 2025 2026 /* Avlab Technology, Inc. PCI 2 Serial: 2S */ 2027 { /* "Avlab PCI 2 Serial" */ 2028 { PCI_VENDOR_AVLAB, PCI_PRODUCT_AVLAB_PCI2S, 0, 0 }, 2029 { 0xffff, 0xffff, 0, 0 }, 2030 { 2031 { PUC_PORT_COM, 0x10, 0x0000 }, 2032 { PUC_PORT_COM, 0x14, 0x0000 }, 2033 }, 2034 }, 2035 2036 /* Digi International Digi Neo 4 Serial */ 2037 { 2038 { PCI_VENDOR_DIGI, PCI_PRODUCT_DIGI_NEO4, 0, 0 }, 2039 { 0xffff, 0xffff, 0, 0 }, 2040 { 2041 { PUC_PORT_COM_MUL8, 0x10, 0x0000 }, 2042 { PUC_PORT_COM_MUL8, 0x10, 0x0200 }, 2043 { PUC_PORT_COM_MUL8, 0x10, 0x0400 }, 2044 { PUC_PORT_COM_MUL8, 0x10, 0x0600 }, 2045 }, 2046 }, 2047 2048 /* Digi International Digi Neo 8 Serial */ 2049 { 2050 { PCI_VENDOR_DIGI, PCI_PRODUCT_DIGI_NEO8, 0, 0 }, 2051 { 0xffff, 0xffff, 0, 0 }, 2052 { 2053 { PUC_PORT_COM_MUL8, 0x10, 0x0000 }, 2054 { PUC_PORT_COM_MUL8, 0x10, 0x0200 }, 2055 { PUC_PORT_COM_MUL8, 0x10, 0x0400 }, 2056 { PUC_PORT_COM_MUL8, 0x10, 0x0600 }, 2057 { PUC_PORT_COM_MUL8, 0x10, 0x0800 }, 2058 { PUC_PORT_COM_MUL8, 0x10, 0x0a00 }, 2059 { PUC_PORT_COM_MUL8, 0x10, 0x0c00 }, 2060 { PUC_PORT_COM_MUL8, 0x10, 0x0e00 }, 2061 }, 2062 }, 2063 2064 /* Digi International Digi Neo 8 PCIe Serial */ 2065 { 2066 { PCI_VENDOR_DIGI, PCI_PRODUCT_DIGI_NEO8_PCIE, 0, 0 }, 2067 { 0xffff, 0xffff, 0, 0 }, 2068 { 2069 { PUC_PORT_COM_MUL8, 0x10, 0x0000 }, 2070 { PUC_PORT_COM_MUL8, 0x10, 0x0200 }, 2071 { PUC_PORT_COM_MUL8, 0x10, 0x0400 }, 2072 { PUC_PORT_COM_MUL8, 0x10, 0x0600 }, 2073 { PUC_PORT_COM_MUL8, 0x10, 0x0800 }, 2074 { PUC_PORT_COM_MUL8, 0x10, 0x0a00 }, 2075 { PUC_PORT_COM_MUL8, 0x10, 0x0c00 }, 2076 { PUC_PORT_COM_MUL8, 0x10, 0x0e00 }, 2077 }, 2078 }, 2079 2080 /* 2081 * Multi-Tech ISI5634PCI/4 4-port modem board. 2082 * Has a 4-channel Exar XR17C154 UART, but with bogus product ID in its 2083 * config EEPROM. 2084 */ 2085 { 2086 { PCI_VENDOR_EXAR, PCI_PRODUCT_EXAR_XR17C158, 0x2205, 0x2003 }, 2087 { 0xffff, 0xffff, 0xffff, 0xffff }, 2088 { 2089 { PUC_PORT_COM_MUL8, 0x10, 0x0000 }, 2090 { PUC_PORT_COM_MUL8, 0x10, 0x0200 }, 2091 { PUC_PORT_COM_MUL8, 0x10, 0x0400 }, 2092 { PUC_PORT_COM_MUL8, 0x10, 0x0600 }, 2093 }, 2094 }, 2095 2096 { /* EXAR XR17C152 Dual UART */ 2097 { PCI_VENDOR_EXAR, PCI_PRODUCT_EXAR_XR17C152, 0, 0 }, 2098 { 0xffff, 0xffff, 0, 0 }, 2099 { 2100 { PUC_PORT_COM_MUL8, 0x10, 0x0000 }, 2101 { PUC_PORT_COM_MUL8, 0x10, 0x0200 }, 2102 }, 2103 }, 2104 2105 { /* Exar XR17C154 Quad UART */ 2106 { PCI_VENDOR_EXAR, PCI_PRODUCT_EXAR_XR17C154, 0, 0 }, 2107 { 0xffff, 0xffff, 0, 0 }, 2108 { 2109 { PUC_PORT_COM_MUL8, 0x10, 0x0000 }, 2110 { PUC_PORT_COM_MUL8, 0x10, 0x0200 }, 2111 { PUC_PORT_COM_MUL8, 0x10, 0x0400 }, 2112 { PUC_PORT_COM_MUL8, 0x10, 0x0600 }, 2113 }, 2114 }, 2115 2116 { /* Exar XR17C158 Eight Channel UART */ 2117 { PCI_VENDOR_EXAR, PCI_PRODUCT_EXAR_XR17C158, 0, 0 }, 2118 { 0xffff, 0xffff, 0, 0 }, 2119 { 2120 { PUC_PORT_COM_MUL8, 0x10, 0x0000 }, 2121 { PUC_PORT_COM_MUL8, 0x10, 0x0200 }, 2122 { PUC_PORT_COM_MUL8, 0x10, 0x0400 }, 2123 { PUC_PORT_COM_MUL8, 0x10, 0x0600 }, 2124 { PUC_PORT_COM_MUL8, 0x10, 0x0800 }, 2125 { PUC_PORT_COM_MUL8, 0x10, 0x0a00 }, 2126 { PUC_PORT_COM_MUL8, 0x10, 0x0c00 }, 2127 { PUC_PORT_COM_MUL8, 0x10, 0x0e00 }, 2128 }, 2129 }, 2130 2131 { /* Exar XR17V354 Quad UART */ 2132 { PCI_VENDOR_EXAR, PCI_PRODUCT_EXAR_XR17V354, 0, 0 }, 2133 { 0xffff, 0xffff, 0, 0 }, 2134 { 2135 { PUC_PORT_COM_XR17V35X, 0x10, 0x0000 }, 2136 { PUC_PORT_COM_XR17V35X, 0x10, 0x0400 }, 2137 { PUC_PORT_COM_XR17V35X, 0x10, 0x0800 }, 2138 { PUC_PORT_COM_XR17V35X, 0x10, 0x0C00 }, 2139 }, 2140 }, 2141 2142 { /* Dell DRAC 3 Virtual UART */ 2143 { PCI_VENDOR_DELL, PCI_PRODUCT_DELL_DRAC_3_VUART, 0, 0 }, 2144 { 0xffff, 0xffff, 0, 0 }, 2145 { 2146 { PUC_PORT_COM_MUL128, 0x14, 0x0000 }, 2147 }, 2148 }, 2149 { /* Dell DRAC 4 Virtual UART */ 2150 { PCI_VENDOR_DELL, PCI_PRODUCT_DELL_DRAC_4_VUART, 0, 0 }, 2151 { 0xffff, 0xffff, 0, 0 }, 2152 { 2153 { PUC_PORT_COM_MUL128, 0x14, 0x0000 }, 2154 }, 2155 }, 2156 2157 /* 2158 * Cardbus devices which can potentially show up because of 2159 * Expresscard adapters 2160 * XXX Keep this list synchronized with cardbus/com_cardbus.c 2161 */ 2162 2163 { /* "", */ 2164 { PCI_VENDOR_3COM, PCI_PRODUCT_3COM_GLOBALMODEM56,0, 0 }, 2165 { 0xffff, 0xffff, 0, 0 }, 2166 { 2167 { PUC_PORT_COM, 0x10, 0x0000 }, 2168 }, 2169 }, 2170 { /* "", */ 2171 { PCI_VENDOR_3COM, PCI_PRODUCT_3COM_MODEM56, 0, 0 }, 2172 { 0xffff, 0xffff, 0, 0 }, 2173 { 2174 { PUC_PORT_COM, 0x10, 0x0000 }, 2175 }, 2176 }, 2177 { /* "", */ 2178 { PCI_VENDOR_BROADCOM, PCI_PRODUCT_BROADCOM_SERIAL,0, 0 }, 2179 { 0xffff, 0xffff, 0, 0 }, 2180 { 2181 { PUC_PORT_COM, 0x10, 0x0000 }, 2182 }, 2183 }, 2184 { /* "", */ 2185 { PCI_VENDOR_BROADCOM, PCI_PRODUCT_BROADCOM_SERIAL_2,0, 0 }, 2186 { 0xffff, 0xffff, 0, 0 }, 2187 { 2188 { PUC_PORT_COM, 0x10, 0x0000 }, 2189 }, 2190 }, 2191 { /* "", */ 2192 { PCI_VENDOR_BROADCOM, PCI_PRODUCT_BROADCOM_SERIAL_GC,0, 0 }, 2193 { 0xffff, 0xffff, 0, 0 }, 2194 { 2195 { PUC_PORT_COM, 0x10, 0x0000 }, 2196 }, 2197 }, 2198 { /* "", */ 2199 { PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_MODEM56, 0, 0 }, 2200 { 0xffff, 0xffff, 0, 0 }, 2201 { 2202 { PUC_PORT_COM, 0x10, 0x0000 }, 2203 }, 2204 }, 2205 { /* "", */ 2206 { PCI_VENDOR_OXFORD2, PCI_PRODUCT_OXFORD2_OXCB950,0, 0 }, 2207 { 0xffff, 0xffff, 0, 0 }, 2208 { 2209 { PUC_PORT_COM, 0x10, 0x0000 }, 2210 }, 2211 }, 2212 { /* "Xircom Cardbus 56K Modem", */ 2213 { PCI_VENDOR_XIRCOM, PCI_PRODUCT_XIRCOM_MODEM_56K,0, 0 }, 2214 { 0xffff, 0xffff, 0, 0 }, 2215 { 2216 { PUC_PORT_COM, 0x10, 0x0000 }, 2217 }, 2218 }, 2219 { /* "Xircom CBEM56G Modem", */ 2220 { PCI_VENDOR_XIRCOM, PCI_PRODUCT_XIRCOM_CBEM56G, 0, 0 }, 2221 { 0xffff, 0xffff, 0, 0 }, 2222 { 2223 { PUC_PORT_COM, 0x10, 0x0000 }, 2224 }, 2225 }, 2226 { /* "Xircom 56k Modem", */ 2227 { PCI_VENDOR_XIRCOM, PCI_PRODUCT_XIRCOM_MODEM56, 0, 0 }, 2228 { 0xffff, 0xffff, 0, 0 }, 2229 { 2230 { PUC_PORT_COM, 0x10, 0x0000 }, 2231 }, 2232 }, 2233 { /* "WinChipHead CH351 (2S)", */ 2234 { PCI_VENDOR_WCH2, PCI_PRODUCT_WCH2_CH351, 0, 0 }, 2235 { 0xffff, 0xffff, 0, 0 }, 2236 { 2237 { PUC_PORT_COM, 0x10, 0x0000 }, 2238 { PUC_PORT_COM, 0x14, 0x0000 }, 2239 }, 2240 }, 2241 { /* "WinChipHead CH352", */ 2242 { PCI_VENDOR_WCH, PCI_PRODUCT_WCH_CH352, 0, 0 }, 2243 { 0xffff, 0xffff, 0, 0 }, 2244 { 2245 { PUC_PORT_COM, 0x10, 0x0000 }, 2246 { PUC_PORT_COM, 0x14, 0x0000 }, 2247 }, 2248 }, 2249 { /* "WinChipHead CH382 (2S)", */ 2250 { PCI_VENDOR_WCH2, PCI_PRODUCT_WCH2_CH382_1, 0, 0 }, 2251 { 0xffff, 0xffff, 0, 0 }, 2252 { 2253 { PUC_PORT_COM, 0x10, 0x00c0 }, 2254 { PUC_PORT_COM, 0x10, 0x00c8 }, 2255 }, 2256 }, 2257 { /* "WinChipHead CH382 (2S1P)", */ 2258 { PCI_VENDOR_WCH2, PCI_PRODUCT_WCH2_CH382_2, 0, 0 }, 2259 { 0xffff, 0xffff, 0, 0 }, 2260 { 2261 { PUC_PORT_COM, 0x10, 0x00c0 }, 2262 { PUC_PORT_COM, 0x10, 0x00c8 }, 2263 }, 2264 }, 2265 { /* "TXIC TX382B (2S)", */ 2266 { PCI_VENDOR_TXIC, PCI_PRODUCT_TXIC_TX382B, 0, 0 }, 2267 { 0xffff, 0xffff, 0, 0 }, 2268 { 2269 { PUC_PORT_COM, 0x10, 0x0000 }, 2270 { PUC_PORT_COM, 0x14, 0x0000 }, 2271 } 2272 }, 2273 { /* "ASIX AX99100", */ 2274 { PCI_VENDOR_ASIX, PCI_PRODUCT_ASIX_AX99100, 0, 0 }, 2275 { 0xffff, 0xffff, 0, 0 }, 2276 { 2277 { PUC_PORT_COM, 0x10, 0x0000 }, 2278 } 2279 }, 2280 { /* "NetMos NM9820 UART" */ 2281 { PCI_VENDOR_NETMOS, PCI_PRODUCT_NETMOS_NM9820, 0, 0 }, 2282 { 0xffff, 0xffff, 0, 0 }, 2283 { 2284 { PUC_PORT_COM, 0x10, 0x0000 }, 2285 }, 2286 }, 2287 { /* "MosChip MCS9865 Quad Serial Port" */ 2288 { PCI_VENDOR_MOSCHIP, PCI_PRODUCT_MOSCHIP_MCS9865, 0x1000, 0x4 }, 2289 { 0xffff, 0xffff, 0xffff, 0xffff }, 2290 { 2291 { PUC_PORT_COM, 0x10, 0x0000 }, 2292 { PUC_PORT_COM, 0x14, 0x0000 }, 2293 { PUC_PORT_COM, 0x18, 0x0000 }, 2294 { PUC_PORT_COM, 0x1c, 0x0000 }, 2295 }, 2296 }, 2297 { /* "MosChip MCS9865 Dual Serial Port" */ 2298 { PCI_VENDOR_MOSCHIP, PCI_PRODUCT_MOSCHIP_MCS9865, 0x1000, 0x2 }, 2299 { 0xffff, 0xffff, 0xffff, 0xffff }, 2300 { 2301 { PUC_PORT_COM, 0x10, 0x0000 }, 2302 { PUC_PORT_COM, 0x14, 0x0000 }, 2303 }, 2304 }, 2305 { /* "MosChip MCS9865 Single Serial Port" */ 2306 { PCI_VENDOR_MOSCHIP, PCI_PRODUCT_MOSCHIP_MCS9865, 0x1000, 0x1 }, 2307 { 0xffff, 0xffff, 0xffff, 0xffff }, 2308 { 2309 { PUC_PORT_COM, 0x10, 0x0000 }, 2310 }, 2311 }, 2312 { /* "Redhat QEMU PCI Serial" */ 2313 { PCI_VENDOR_REDHAT, PCI_PRODUCT_REDHAT_SERIAL, 0x0000, 0x0000 }, 2314 { 0xffff, 0xffff, 0x0000, 0x0000 }, 2315 { 2316 { PUC_PORT_COM, 0x10, 0x0000 }, 2317 }, 2318 }, 2319 { /* "Redhat QEMU PCI Serial 2x" */ 2320 { PCI_VENDOR_REDHAT, PCI_PRODUCT_REDHAT_SERIAL2, 0x0000, 0x0000 }, 2321 { 0xffff, 0xffff, 0x0000, 0x0000 }, 2322 { 2323 { PUC_PORT_COM, 0x10, 0x0000 }, 2324 { PUC_PORT_COM, 0x10, 0x0008 }, 2325 }, 2326 }, 2327 { /* "Redhat QEMU PCI Serial 4x" */ 2328 { PCI_VENDOR_REDHAT, PCI_PRODUCT_REDHAT_SERIAL4, 0x0000, 0x0000 }, 2329 { 0xffff, 0xffff, 0x0000, 0x0000 }, 2330 { 2331 { PUC_PORT_COM, 0x10, 0x0000 }, 2332 { PUC_PORT_COM, 0x10, 0x0008 }, 2333 { PUC_PORT_COM, 0x10, 0x0010 }, 2334 { PUC_PORT_COM, 0x10, 0x0018 }, 2335 }, 2336 }, 2337 }; 2338 int puc_ndevs = nitems(puc_devs); 2339