1 /* $NetBSD: pucdata.c,v 1.25 2001/12/16 22:23:01 thorpej Exp $ */ 2 3 /* 4 * Copyright (c) 1998, 1999 Christopher G. Demetriou. All rights reserved. 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions 8 * are met: 9 * 1. Redistributions of source code must retain the above copyright 10 * notice, this list of conditions and the following disclaimer. 11 * 2. Redistributions in binary form must reproduce the above copyright 12 * notice, this list of conditions and the following disclaimer in the 13 * documentation and/or other materials provided with the distribution. 14 * 3. All advertising materials mentioning features or use of this software 15 * must display the following acknowledgement: 16 * This product includes software developed by Christopher G. Demetriou 17 * for the NetBSD Project. 18 * 4. The name of the author may not be used to endorse or promote products 19 * derived from this software without specific prior written permission 20 * 21 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 22 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 23 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 24 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 25 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 26 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 27 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 28 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 29 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 30 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 */ 32 33 #include <sys/cdefs.h> 34 __FBSDID("$FreeBSD$"); 35 36 /* 37 * PCI "universal" communications card driver configuration data (used to 38 * match/attach the cards). 39 */ 40 41 #include <sys/param.h> 42 43 #include <dev/pci/pcireg.h> 44 #include <dev/pci/pcivar.h> 45 #include <dev/sio/sioreg.h> 46 #include <dev/puc/pucvar.h> 47 48 #define COM_FREQ DEFAULT_RCLK 49 50 const struct puc_device_description puc_devices[] = { 51 52 { "Comtrol RocketPort 550/4 RJ45", 53 { 0x11fe, 0x8014, 0, 0 }, 54 { 0xffff, 0xffff, 0, 0 }, 55 { 56 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 4 }, 57 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 4 }, 58 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 4 }, 59 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 4 }, 60 }, 61 }, 62 63 { "Comtrol RocketPort 550/Quad", 64 { 0x11fe, 0x8015, 0, 0 }, 65 { 0xffff, 0xffff, 0, 0 }, 66 { 67 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 4 }, 68 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 4 }, 69 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 4 }, 70 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 4 }, 71 }, 72 }, 73 74 { "Comtrol RocketPort 550/8 RJ11 part A", 75 { 0x11fe, 0x8010, 0, 0 }, 76 { 0xffff, 0xffff, 0, 0 }, 77 { 78 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 4 }, 79 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 4 }, 80 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 4 }, 81 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 4 }, 82 }, 83 }, 84 { "Comtrol RocketPort 550/8 RJ11 part B", 85 { 0x11fe, 0x8011, 0, 0 }, 86 { 0xffff, 0xffff, 0, 0 }, 87 { 88 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 4 }, 89 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 4 }, 90 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 4 }, 91 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 4 }, 92 }, 93 }, 94 95 { "Comtrol RocketPort 550/8 Octa part A", 96 { 0x11fe, 0x8012, 0, 0 }, 97 { 0xffff, 0xffff, 0, 0 }, 98 { 99 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 4 }, 100 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 4 }, 101 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 4 }, 102 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 4 }, 103 }, 104 }, 105 { "Comtrol RocketPort 550/8 Octa part B", 106 { 0x11fe, 0x8013, 0, 0 }, 107 { 0xffff, 0xffff, 0, 0 }, 108 { 109 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 4 }, 110 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 4 }, 111 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 4 }, 112 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 4 }, 113 }, 114 }, 115 116 { "Comtrol RocketPort 550/8 part A", 117 { 0x11fe, 0x8018, 0, 0 }, 118 { 0xffff, 0xffff, 0, 0 }, 119 { 120 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 4 }, 121 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 4 }, 122 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 4 }, 123 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 4 }, 124 }, 125 }, 126 { "Comtrol RocketPort 550/8 part B", 127 { 0x11fe, 0x8019, 0, 0 }, 128 { 0xffff, 0xffff, 0, 0 }, 129 { 130 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 4 }, 131 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 4 }, 132 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 4 }, 133 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 4 }, 134 }, 135 }, 136 137 { "Comtrol RocketPort 550/16 part A", 138 { 0x11fe, 0x8016, 0, 0 }, 139 { 0xffff, 0xffff, 0, 0 }, 140 { 141 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 4 }, 142 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 4 }, 143 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 4 }, 144 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 4 }, 145 }, 146 }, 147 { "Comtrol RocketPort 550/16 part B", 148 { 0x11fe, 0x8017, 0, 0 }, 149 { 0xffff, 0xffff, 0, 0 }, 150 { 151 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 4 }, 152 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 4 }, 153 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 4 }, 154 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 4 }, 155 { PUC_PORT_TYPE_COM, 0x10, 0x20, COM_FREQ * 4 }, 156 { PUC_PORT_TYPE_COM, 0x10, 0x28, COM_FREQ * 4 }, 157 { PUC_PORT_TYPE_COM, 0x10, 0x30, COM_FREQ * 4 }, 158 { PUC_PORT_TYPE_COM, 0x10, 0x38, COM_FREQ * 4 }, 159 { PUC_PORT_TYPE_COM, 0x10, 0x40, COM_FREQ * 4 }, 160 { PUC_PORT_TYPE_COM, 0x10, 0x48, COM_FREQ * 4 }, 161 { PUC_PORT_TYPE_COM, 0x10, 0x50, COM_FREQ * 4 }, 162 { PUC_PORT_TYPE_COM, 0x10, 0x58, COM_FREQ * 4 }, 163 }, 164 }, 165 166 /* 167 * XXX no entry because I have no data: 168 * XXX Dolphin Peripherals 4006 (single parallel) 169 */ 170 171 /* 172 * Dolphin Peripherals 4014 (dual parallel port) card. PLX 9050, with 173 * a seemingly-lame EEPROM setup that puts the Dolphin IDs 174 * into the subsystem fields, and claims that it's a 175 * network/misc (0x02/0x80) device. 176 */ 177 { "Dolphin Peripherals 4014", 178 { 0x10b5, 0x9050, 0xd84d, 0x6810 }, 179 { 0xffff, 0xffff, 0xffff, 0xffff }, 180 { 181 { PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 }, 182 { PUC_PORT_TYPE_LPT, 0x24, 0x00, 0x00 }, 183 }, 184 }, 185 186 /* 187 * XXX Dolphin Peripherals 4025 (single serial) 188 * (clashes with Dolphin Peripherals 4036 (2s variant) 189 */ 190 191 /* 192 * Dolphin Peripherals 4035 (dual serial port) card. PLX 9050, with 193 * a seemingly-lame EEPROM setup that puts the Dolphin IDs 194 * into the subsystem fields, and claims that it's a 195 * network/misc (0x02/0x80) device. 196 */ 197 { "Dolphin Peripherals 4035", 198 { 0x10b5, 0x9050, 0xd84d, 0x6808 }, 199 { 0xffff, 0xffff, 0xffff, 0xffff }, 200 { 201 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, 202 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ }, 203 }, 204 }, 205 206 /* 207 * Dolphin Peripherals 4036 (dual serial port) card. 208 * (Dolpin 4025 has the same ID but only one port) 209 */ 210 { "Dolphin Peripherals 4036", 211 { 0x1409, 0x7168, 0x0, 0x0 }, 212 { 0xffff, 0xffff, 0x0, 0x0 }, 213 { 214 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8}, 215 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8}, 216 }, 217 }, 218 219 /* 220 * XXX no entry because I have no data: 221 * XXX Dolphin Peripherals 4078 (dual serial and single parallel) 222 */ 223 224 225 /* 226 * SIIG Boards. 227 * 228 * SIIG provides documentation for their boards at: 229 * <URL:http://www.siig.com/driver.htm> 230 * 231 * Please excuse the weird ordering, it's the order they 232 * use in their documentation. 233 */ 234 235 /* 236 * SIIG "10x" family boards. 237 */ 238 239 /* SIIG Cyber Serial PCI 16C550 (10x family): 1S */ 240 { "SIIG Cyber Serial PCI 16C550 (10x family)", 241 { 0x131f, 0x1000, 0, 0 }, 242 { 0xffff, 0xffff, 0, 0 }, 243 { 244 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, 245 }, 246 }, 247 248 /* SIIG Cyber Serial PCI 16C650 (10x family): 1S */ 249 { "SIIG Cyber Serial PCI 16C650 (10x family)", 250 { 0x131f, 0x1001, 0, 0 }, 251 { 0xffff, 0xffff, 0, 0 }, 252 { 253 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, 254 }, 255 }, 256 257 /* SIIG Cyber Serial PCI 16C850 (10x family): 1S */ 258 { "SIIG Cyber Serial PCI 16C850 (10x family)", 259 { 0x131f, 0x1002, 0, 0 }, 260 { 0xffff, 0xffff, 0, 0 }, 261 { 262 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, 263 }, 264 }, 265 266 /* SIIG Cyber I/O PCI 16C550 (10x family): 1S, 1P */ 267 { "SIIG Cyber I/O PCI 16C550 (10x family)", 268 { 0x131f, 0x1010, 0, 0 }, 269 { 0xffff, 0xffff, 0, 0 }, 270 { 271 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, 272 { PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 }, 273 }, 274 }, 275 276 /* SIIG Cyber I/O PCI 16C650 (10x family): 1S, 1P */ 277 { "SIIG Cyber I/O PCI 16C650 (10x family)", 278 { 0x131f, 0x1011, 0, 0 }, 279 { 0xffff, 0xffff, 0, 0 }, 280 { 281 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, 282 { PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 }, 283 }, 284 }, 285 286 /* SIIG Cyber I/O PCI 16C850 (10x family): 1S, 1P */ 287 { "SIIG Cyber I/O PCI 16C850 (10x family)", 288 { 0x131f, 0x1012, 0, 0 }, 289 { 0xffff, 0xffff, 0, 0 }, 290 { 291 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, 292 { PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 }, 293 }, 294 }, 295 296 /* SIIG Cyber Parallel PCI (10x family): 1P */ 297 { "SIIG Cyber Parallel PCI (10x family)", 298 { 0x131f, 0x1020, 0, 0 }, 299 { 0xffff, 0xffff, 0, 0 }, 300 { 301 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 }, 302 }, 303 }, 304 305 /* SIIG Cyber Parallel Dual PCI (10x family): 2P */ 306 { "SIIG Cyber Parallel Dual PCI (10x family)", 307 { 0x131f, 0x1021, 0, 0 }, 308 { 0xffff, 0xffff, 0, 0 }, 309 { 310 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 }, 311 { PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 }, 312 }, 313 }, 314 315 /* SIIG Cyber Serial Dual PCI 16C550 (10x family): 2S */ 316 { "SIIG Cyber Serial Dual PCI 16C550 (10x family)", 317 { 0x131f, 0x1030, 0, 0 }, 318 { 0xffff, 0xffff, 0, 0 }, 319 { 320 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, 321 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ }, 322 }, 323 }, 324 325 /* SIIG Cyber Serial Dual PCI 16C650 (10x family): 2S */ 326 { "SIIG Cyber Serial Dual PCI 16C650 (10x family)", 327 { 0x131f, 0x1031, 0, 0 }, 328 { 0xffff, 0xffff, 0, 0 }, 329 { 330 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, 331 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ }, 332 }, 333 }, 334 335 /* SIIG Cyber Serial Dual PCI 16C850 (10x family): 2S */ 336 { "SIIG Cyber Serial Dual PCI 16C850 (10x family)", 337 { 0x131f, 0x1032, 0, 0 }, 338 { 0xffff, 0xffff, 0, 0 }, 339 { 340 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, 341 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ }, 342 }, 343 }, 344 345 /* SIIG Cyber 2S1P PCI 16C550 (10x family): 2S, 1P */ 346 { "SIIG Cyber 2S1P PCI 16C550 (10x family)", 347 { 0x131f, 0x1034, 0, 0 }, /* XXX really? */ 348 { 0xffff, 0xffff, 0, 0 }, 349 { 350 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, 351 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ }, 352 { PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 }, 353 }, 354 }, 355 356 /* SIIG Cyber 2S1P PCI 16C650 (10x family): 2S, 1P */ 357 { "SIIG Cyber 2S1P PCI 16C650 (10x family)", 358 { 0x131f, 0x1035, 0, 0 }, /* XXX really? */ 359 { 0xffff, 0xffff, 0, 0 }, 360 { 361 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, 362 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ }, 363 { PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 }, 364 }, 365 }, 366 367 /* SIIG Cyber 2S1P PCI 16C850 (10x family): 2S, 1P */ 368 { "SIIG Cyber 2S1P PCI 16C850 (10x family)", 369 { 0x131f, 0x1036, 0, 0 }, /* XXX really? */ 370 { 0xffff, 0xffff, 0, 0 }, 371 { 372 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, 373 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ }, 374 { PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 }, 375 }, 376 }, 377 378 /* SIIG Cyber 4S PCI 16C550 (10x family): 4S */ 379 { "SIIG Cyber 4S PCI 16C550 (10x family)", 380 { 0x131f, 0x1050, 0, 0 }, 381 { 0xffff, 0xffff, 0, 0 }, 382 { 383 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, 384 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ }, 385 { PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ }, 386 { PUC_PORT_TYPE_COM, 0x24, 0x00, COM_FREQ }, 387 }, 388 }, 389 390 /* SIIG Cyber 4S PCI 16C650 (10x family): 4S */ 391 { "SIIG Cyber 4S PCI 16C650 (10x family)", 392 { 0x131f, 0x1051, 0, 0 }, 393 { 0xffff, 0xffff, 0, 0 }, 394 { 395 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, 396 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ }, 397 { PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ }, 398 { PUC_PORT_TYPE_COM, 0x24, 0x00, COM_FREQ }, 399 }, 400 }, 401 402 /* SIIG Cyber 4S PCI 16C850 (10x family): 4S */ 403 { "SIIG Cyber 4S PCI 16C850 (10x family)", 404 { 0x131f, 0x1052, 0, 0 }, 405 { 0xffff, 0xffff, 0, 0 }, 406 { 407 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, 408 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ }, 409 { PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ }, 410 { PUC_PORT_TYPE_COM, 0x24, 0x00, COM_FREQ }, 411 }, 412 }, 413 414 /* 415 * SIIG "20x" family boards. 416 */ 417 418 /* SIIG Cyber Parallel PCI (20x family): 1P */ 419 { "SIIG Cyber Parallel PCI (20x family)", 420 { 0x131f, 0x2020, 0, 0 }, 421 { 0xffff, 0xffff, 0, 0 }, 422 { 423 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 }, 424 }, 425 }, 426 427 /* SIIG Cyber Parallel Dual PCI (20x family): 2P */ 428 { "SIIG Cyber Parallel Dual PCI (20x family)", 429 { 0x131f, 0x2021, 0, 0 }, 430 { 0xffff, 0xffff, 0, 0 }, 431 { 432 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 }, 433 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 }, 434 }, 435 }, 436 437 /* SIIG Cyber 2P1S PCI 16C550 (20x family): 1S, 2P */ 438 { "SIIG Cyber 2P1S PCI 16C550 (20x family)", 439 { 0x131f, 0x2040, 0, 0 }, 440 { 0xffff, 0xffff, 0, 0 }, 441 { 442 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 443 { PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 }, 444 { PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 }, 445 }, 446 }, 447 448 /* SIIG Cyber 2P1S PCI 16C650 (20x family): 1S, 2P */ 449 { "SIIG Cyber 2P1S PCI 16C650 (20x family)", 450 { 0x131f, 0x2041, 0, 0 }, 451 { 0xffff, 0xffff, 0, 0 }, 452 { 453 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 454 { PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 }, 455 { PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 }, 456 }, 457 }, 458 459 /* SIIG Cyber 2P1S PCI 16C850 (20x family): 1S, 2P */ 460 { "SIIG Cyber 2P1S PCI 16C850 (20x family)", 461 { 0x131f, 0x2042, 0, 0 }, 462 { 0xffff, 0xffff, 0, 0 }, 463 { 464 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 465 { PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 }, 466 { PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 }, 467 }, 468 }, 469 470 /* SIIG Cyber Serial PCI 16C550 (20x family): 1S */ 471 { "SIIG Cyber Serial PCI 16C550 (20x family)", 472 { 0x131f, 0x2000, 0, 0 }, 473 { 0xffff, 0xffff, 0, 0 }, 474 { 475 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 476 }, 477 }, 478 479 /* SIIG Cyber Serial PCI 16C650 (20x family): 1S */ 480 { "SIIG Cyber Serial PCI 16C650 (20x family)", 481 { 0x131f, 0x2001, 0, 0 }, 482 { 0xffff, 0xffff, 0, 0 }, 483 { 484 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 485 }, 486 }, 487 488 /* SIIG Cyber Serial PCI 16C850 (20x family): 1S */ 489 { "SIIG Cyber Serial PCI 16C850 (20x family)", 490 { 0x131f, 0x2002, 0, 0 }, 491 { 0xffff, 0xffff, 0, 0 }, 492 { 493 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 494 }, 495 }, 496 497 /* SIIG Cyber I/O PCI 16C550 (20x family): 1S, 1P */ 498 { "SIIG Cyber I/O PCI 16C550 (20x family)", 499 { 0x131f, 0x2010, 0, 0 }, 500 { 0xffff, 0xffff, 0, 0 }, 501 { 502 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 503 { PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 }, 504 }, 505 }, 506 507 /* SIIG Cyber I/O PCI 16C650 (20x family): 1S, 1P */ 508 { "SIIG Cyber I/O PCI 16C650 (20x family)", 509 { 0x131f, 0x2011, 0, 0 }, 510 { 0xffff, 0xffff, 0, 0 }, 511 { 512 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 513 { PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 }, 514 }, 515 }, 516 517 /* SIIG Cyber I/O PCI 16C850 (20x family): 1S, 1P */ 518 { "SIIG Cyber I/O PCI 16C850 (20x family)", 519 { 0x131f, 0x2012, 0, 0 }, 520 { 0xffff, 0xffff, 0, 0 }, 521 { 522 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 523 { PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 }, 524 }, 525 }, 526 527 /* SIIG Cyber Serial Dual PCI 16C550 (20x family): 2S */ 528 { "SIIG Cyber Serial Dual PCI 16C550 (20x family)", 529 { 0x131f, 0x2030, 0, 0 }, 530 { 0xffff, 0xffff, 0, 0 }, 531 { 532 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 533 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ }, 534 }, 535 }, 536 537 /* SIIG Cyber Serial Dual PCI 16C650 (20x family): 2S */ 538 { "SIIG Cyber Serial Dual PCI 16C650 (20x family)", 539 { 0x131f, 0x2031, 0, 0 }, 540 { 0xffff, 0xffff, 0, 0 }, 541 { 542 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 543 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ }, 544 }, 545 }, 546 547 /* SIIG Cyber Serial Dual PCI 16C850 (20x family): 2S */ 548 { "SIIG Cyber Serial Dual PCI 16C850 (20x family)", 549 { 0x131f, 0x2032, 0, 0 }, 550 { 0xffff, 0xffff, 0, 0 }, 551 { 552 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 553 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ }, 554 }, 555 }, 556 557 /* SIIG Cyber 2S1P PCI 16C550 (20x family): 2S, 1P */ 558 { "SIIG Cyber 2S1P PCI 16C550 (20x family)", 559 { 0x131f, 0x2060, 0, 0 }, 560 { 0xffff, 0xffff, 0, 0 }, 561 { 562 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 563 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ }, 564 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 }, 565 }, 566 }, 567 568 /* SIIG Cyber 2S1P PCI 16C650 (20x family): 2S, 1P */ 569 { "SIIG Cyber 2S1P PCI 16C650 (20x family)", 570 { 0x131f, 0x2061, 0, 0 }, 571 { 0xffff, 0xffff, 0, 0 }, 572 { 573 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 574 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ }, 575 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 }, 576 }, 577 }, 578 579 /* SIIG Cyber 2S1P PCI 16C850 (20x family): 2S, 1P */ 580 { "SIIG Cyber 2S1P PCI 16C850 (20x family)", 581 { 0x131f, 0x2062, 0, 0 }, 582 { 0xffff, 0xffff, 0, 0 }, 583 { 584 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 585 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ }, 586 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 }, 587 }, 588 }, 589 590 /* SIIG Cyber 4S PCI 16C550 (20x family): 4S */ 591 { "SIIG Cyber 4S PCI 16C550 (20x family)", 592 { 0x131f, 0x2050, 0, 0 }, 593 { 0xffff, 0xffff, 0, 0 }, 594 { 595 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 596 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ }, 597 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, 598 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ }, 599 }, 600 }, 601 602 /* SIIG Cyber 4S PCI 16C650 (20x family): 4S */ 603 { "SIIG Cyber 4S PCI 16C650 (20x family)", 604 { 0x131f, 0x2051, 0, 0 }, 605 { 0xffff, 0xffff, 0, 0 }, 606 { 607 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 608 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ }, 609 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, 610 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ }, 611 }, 612 }, 613 614 /* SIIG Cyber 4S PCI 16C850 (20x family): 4S */ 615 { "SIIG Cyber 4S PCI 16C850 (20x family)", 616 { 0x131f, 0x2052, 0, 0 }, 617 { 0xffff, 0xffff, 0, 0 }, 618 { 619 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 620 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ }, 621 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, 622 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ }, 623 }, 624 }, 625 626 /* VScom PCI-400: 4S */ 627 { "VScom PCI-400", 628 { 0x10b5, 0x1077, 0x10b5, 0x1077 }, 629 { 0xffff, 0xffff, 0xffff, 0xffff }, 630 { 631 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 }, 632 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 }, 633 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 }, 634 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 }, 635 }, 636 }, 637 638 /* VScom PCI-800: 8S */ 639 { "VScom PCI-800", 640 { 0x10b5, 0x1076, 0x10b5, 0x1076 }, 641 { 0xffff, 0xffff, 0xffff, 0xffff }, 642 { 643 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 }, 644 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 }, 645 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 }, 646 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 }, 647 { PUC_PORT_TYPE_COM, 0x18, 0x20, COM_FREQ * 8 }, 648 { PUC_PORT_TYPE_COM, 0x18, 0x28, COM_FREQ * 8 }, 649 { PUC_PORT_TYPE_COM, 0x18, 0x30, COM_FREQ * 8 }, 650 { PUC_PORT_TYPE_COM, 0x18, 0x38, COM_FREQ * 8 }, 651 }, 652 }, 653 /* 654 * VScom PCI-800H. Uses 8 16950 UART, behind a PCI chips that offers 655 * 4 com port on PCI device 0 and 4 on PCI device 1. PCI device 0 has 656 * device ID 3 and PCI device 1 device ID 4. 657 */ 658 { "Titan PCI-800H", 659 { 0x14d2, 0xa003, 0, 0 }, 660 { 0xffff, 0xffff, 0, 0 }, 661 { 662 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 }, 663 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8 }, 664 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 8 }, 665 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 8 }, 666 }, 667 }, 668 { "Titan PCI-800H", 669 { 0x14d2, 0xa004, 0, 0 }, 670 { 0xffff, 0xffff, 0, 0 }, 671 { 672 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 }, 673 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8 }, 674 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 8 }, 675 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 8 }, 676 }, 677 }, 678 { "Titan PCI-200H", 679 { 0x14d2, 0xa005, 0, 0 }, 680 { 0xffff, 0xffff, 0, 0 }, 681 { 682 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 }, 683 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8 }, 684 }, 685 }, 686 687 /* NEC PK-UG-X001 K56flex PCI Modem card. 688 NEC MARTH bridge chip and Rockwell RCVDL56ACF/SP using. */ 689 { "NEC PK-UG-X001 K56flex PCI Modem", 690 { 0x1033, 0x0074, 0x1033, 0x8014 }, 691 { 0xffff, 0xffff, 0xffff, 0xffff }, 692 { 693 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 694 }, 695 }, 696 697 /* NEC PK-UG-X008 */ 698 { "NEC PK-UG-X008", 699 { 0x1033, 0x007d, 0x1033, 0x8012 }, 700 { 0xffff, 0xffff, 0xffff, 0xffff }, 701 { 702 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ}, 703 }, 704 }, 705 706 /* Lava Computers 2SP-PCI */ 707 { "Lava Computers 2SP-PCI parallel port", 708 { 0x1407, 0x8000, 0, 0 }, 709 { 0xffff, 0xffff, 0, 0 }, 710 { 711 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 }, 712 }, 713 }, 714 715 /* Lava Computers 2SP-PCI and Quattro-PCI serial ports */ 716 { "Lava Computers dual serial port", 717 { 0x1407, 0x0100, 0, 0 }, 718 { 0xffff, 0xfffc, 0, 0 }, 719 { 720 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 721 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ }, 722 }, 723 }, 724 725 /* Lava Computers newer Quattro-PCI serial ports */ 726 { "Lava Computers Quattro-PCI serial port", 727 { 0x1407, 0x0120, 0, 0 }, 728 { 0xffff, 0xfffc, 0, 0 }, 729 { 730 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 731 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ }, 732 }, 733 }, 734 735 /* Lava Computers DSerial PCI serial ports */ 736 { "Lava Computers serial port", 737 { 0x1407, 0x0110, 0, 0 }, 738 { 0xffff, 0xfffc, 0, 0 }, 739 { 740 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 741 }, 742 }, 743 744 /* Lava Computers Octopus-550 serial ports */ 745 { "Lava Computers Octopus-550 8-port serial", 746 { 0x1407, 0x0180, 0, 0 }, 747 { 0xffff, 0xfffc, 0, 0 }, 748 { 749 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 750 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ }, 751 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, 752 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ }, 753 }, 754 }, 755 756 /* US Robotics (3Com) PCI Modems */ 757 { "US Robotics (3Com) 3CP5609 PCI 16550 Modem", 758 { 0x12b9, 0x1008, 0, 0 }, 759 { 0xffff, 0xffff, 0, 0 }, 760 { 761 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 762 }, 763 }, 764 765 /* Actiontec 56K PCI Master */ 766 { "Actiontec 56K PCI Master", 767 { 0x11c1, 0x0480, 0x0, 0x0 }, 768 { 0xffff, 0xffff, 0x0, 0x0 }, 769 { 770 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ }, 771 }, 772 }, 773 774 /* 775 * Boards with an Oxford Semiconductor chip. 776 * 777 * Oxford Semiconductor provides documentation for their chip at: 778 * <URL:http://www.oxsemi.com/products/uarts/index.html> 779 * 780 * As sold by Kouwell <URL:http://www.kouwell.com/>. 781 * I/O Flex PCI I/O Card Model-223 with 4 serial and 1 parallel ports. 782 */ 783 784 /* Oxford Semiconductor OX16PCI954 PCI UARTs */ 785 { "Qxford Semiconductor OX16PCI954 UARTs", 786 { 0x1415, 0x9501, 0, 0 }, 787 { 0xffff, 0xffff, 0, 0 }, 788 { 789 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 790 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ }, 791 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ }, 792 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ }, 793 }, 794 }, 795 796 /* Oxford Semiconductor OX16PCI954 PCI Parallel port */ 797 { "Qxford Semiconductor OX16PCI954 Parallel port", 798 { 0x1415, 0x9513, 0, 0 }, 799 { 0xffff, 0xffff, 0, 0 }, 800 { 801 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 }, 802 }, 803 }, 804 805 /* NetMos 2S1P PCI 16C650 : 2S, 1P */ 806 { "NetMos NM9835 Dual UART and 1284 Printer port", 807 { 0x9710, 0x9835, 0, 0 }, 808 { 0xffff, 0xffff, 0, 0 }, 809 { 810 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 811 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ }, 812 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 }, 813 }, 814 }, 815 816 /* 817 * This is the Middle Digital, Inc. PCI-Weasel, which 818 * uses a PCI interface implemented in FPGA. 819 */ 820 { "Middle Digital, Inc. Weasel serial port", 821 { 0xdeaf, 0x9051, 0, 0 }, 822 { 0xffff, 0xffff, 0, 0 }, 823 { 824 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 825 }, 826 }, 827 828 /* SD-LAB PCI I/O Card 4S2P */ 829 { "Syba Tech Ltd. PCI-4S2P-550-ECP", 830 { 0x1592, 0x0781, 0, 0 }, 831 { 0xffff, 0xffff, 0, 0 }, 832 { 833 { PUC_PORT_TYPE_COM, 0x10, 0x2e8, COM_FREQ }, 834 { PUC_PORT_TYPE_COM, 0x10, 0x2f8, COM_FREQ }, 835 { PUC_PORT_TYPE_LPT, 0x10, 0x000, 0x00 }, 836 { PUC_PORT_TYPE_COM, 0x10, 0x3e8, COM_FREQ }, 837 { PUC_PORT_TYPE_COM, 0x10, 0x3f8, COM_FREQ }, 838 { PUC_PORT_TYPE_LPT, 0x10, 0x000, 0x00 }, 839 }, 840 }, 841 842 /* Moxa Technologies Co., Ltd. PCI I/O Card 4S RS232/422/485 */ 843 { "Moxa Technologies, Industio CP-114", 844 { 0x1393, 0x1141, 0, 0 }, 845 { 0xffff, 0xffff, 0, 0, }, 846 { 847 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 }, 848 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 }, 849 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 }, 850 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 }, 851 }, 852 }, 853 854 /* Moxa Technologies Co., Ltd. PCI I/O Card 8S RS232 */ 855 { "Moxa Technologies, C168H/PCI", 856 { 0x1393, 0x1680, 0, 0 }, 857 { 0xffff, 0xffff, 0, 0, }, 858 { 859 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 }, 860 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 }, 861 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 }, 862 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 }, 863 { PUC_PORT_TYPE_COM, 0x18, 0x20, COM_FREQ * 8 }, 864 { PUC_PORT_TYPE_COM, 0x18, 0x28, COM_FREQ * 8 }, 865 { PUC_PORT_TYPE_COM, 0x18, 0x30, COM_FREQ * 8 }, 866 { PUC_PORT_TYPE_COM, 0x18, 0x38, COM_FREQ * 8 }, 867 }, 868 }, 869 870 { "Avlab Technology, PCI IO 2S", 871 { 0x14db, 0x2130, 0, 0 }, 872 { 0xffff, 0xffff, 0, 0 }, 873 { 874 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 875 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ }, 876 }, 877 }, 878 879 /* Decision Computer Inc, serial ports */ 880 { "Decision Computer Inc, PCCOM 4-port serial", 881 { 0x6666, 0x0001, 0, 0 }, 882 { 0xffff, 0xffff, 0, 0 }, 883 { 884 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ }, 885 { PUC_PORT_TYPE_COM, 0x1c, 0x08, COM_FREQ }, 886 { PUC_PORT_TYPE_COM, 0x1c, 0x10, COM_FREQ }, 887 { PUC_PORT_TYPE_COM, 0x1c, 0x18, COM_FREQ }, 888 }, 889 }, 890 891 { "PCCOM dual port RS232/422/485", 892 { 0x6666, 0x0004, 0, 0 }, 893 { 0xffff, 0xffff, 0, 0 }, 894 { 895 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ }, 896 { PUC_PORT_TYPE_COM, 0x1c, 0x08, COM_FREQ }, 897 }, 898 }, 899 900 { 0 } 901 }; 902