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