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