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