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 int puc_config_win877(struct puc_softc *); 51 52 const struct puc_device_description puc_devices[] = { 53 54 { "Sunix SUN1889", 55 { 0x0009, 0x7168, 0, 0 }, 56 { 0xffff, 0xffff, 0, 0 }, 57 { 58 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 }, 59 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8 }, 60 }, 61 }, 62 63 { "Diva Serial [GSP] Multiport UART", 64 { 0x103c, 0x1048, 0x103c, 0x1282 }, 65 { 0xffff, 0xffff, 0xffff, 0xffff }, 66 { 67 { PUC_PORT_TYPE_UART, 0x10, 0x00, 0, PUC_FLAGS_MEMORY }, 68 { PUC_PORT_TYPE_UART, 0x10, 0x10, 0, PUC_FLAGS_MEMORY }, 69 { PUC_PORT_TYPE_UART, 0x10, 0x38, 0, PUC_FLAGS_MEMORY }, 70 }, 71 }, 72 73 { "Comtrol RocketPort 550/4 RJ45", 74 { 0x11fe, 0x8014, 0, 0 }, 75 { 0xffff, 0xffff, 0, 0 }, 76 { 77 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 4 }, 78 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 4 }, 79 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 4 }, 80 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 4 }, 81 }, 82 }, 83 84 { "Comtrol RocketPort 550/Quad", 85 { 0x11fe, 0x8015, 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 RJ11 part A", 96 { 0x11fe, 0x8010, 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 RJ11 part B", 106 { 0x11fe, 0x8011, 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 Octa part A", 117 { 0x11fe, 0x8012, 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 Octa part B", 127 { 0x11fe, 0x8013, 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/8 part A", 138 { 0x11fe, 0x8018, 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/8 part B", 148 { 0x11fe, 0x8019, 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 }, 156 }, 157 158 { "Comtrol RocketPort 550/16 part A", 159 { 0x11fe, 0x8016, 0, 0 }, 160 { 0xffff, 0xffff, 0, 0 }, 161 { 162 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 4 }, 163 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 4 }, 164 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 4 }, 165 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 4 }, 166 }, 167 }, 168 { "Comtrol RocketPort 550/16 part B", 169 { 0x11fe, 0x8017, 0, 0 }, 170 { 0xffff, 0xffff, 0, 0 }, 171 { 172 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 4 }, 173 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 4 }, 174 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 4 }, 175 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 4 }, 176 { PUC_PORT_TYPE_COM, 0x10, 0x20, COM_FREQ * 4 }, 177 { PUC_PORT_TYPE_COM, 0x10, 0x28, COM_FREQ * 4 }, 178 { PUC_PORT_TYPE_COM, 0x10, 0x30, COM_FREQ * 4 }, 179 { PUC_PORT_TYPE_COM, 0x10, 0x38, COM_FREQ * 4 }, 180 { PUC_PORT_TYPE_COM, 0x10, 0x40, COM_FREQ * 4 }, 181 { PUC_PORT_TYPE_COM, 0x10, 0x48, COM_FREQ * 4 }, 182 { PUC_PORT_TYPE_COM, 0x10, 0x50, COM_FREQ * 4 }, 183 { PUC_PORT_TYPE_COM, 0x10, 0x58, COM_FREQ * 4 }, 184 }, 185 }, 186 187 /* 188 * XXX no entry because I have no data: 189 * XXX Dolphin Peripherals 4006 (single parallel) 190 */ 191 192 /* 193 * Dolphin Peripherals 4014 (dual parallel port) card. PLX 9050, with 194 * a seemingly-lame EEPROM setup that puts the Dolphin IDs 195 * into the subsystem fields, and claims that it's a 196 * network/misc (0x02/0x80) device. 197 */ 198 { "Dolphin Peripherals 4014", 199 { 0x10b5, 0x9050, 0xd84d, 0x6810 }, 200 { 0xffff, 0xffff, 0xffff, 0xffff }, 201 { 202 { PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 }, 203 { PUC_PORT_TYPE_LPT, 0x24, 0x00, 0x00 }, 204 }, 205 }, 206 207 /* 208 * XXX Dolphin Peripherals 4025 (single serial) 209 * (clashes with Dolphin Peripherals 4036 (2s variant) 210 */ 211 212 /* 213 * Dolphin Peripherals 4035 (dual serial port) card. PLX 9050, with 214 * a seemingly-lame EEPROM setup that puts the Dolphin IDs 215 * into the subsystem fields, and claims that it's a 216 * network/misc (0x02/0x80) device. 217 */ 218 { "Dolphin Peripherals 4035", 219 { 0x10b5, 0x9050, 0xd84d, 0x6808 }, 220 { 0xffff, 0xffff, 0xffff, 0xffff }, 221 { 222 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, 223 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ }, 224 }, 225 }, 226 227 /* 228 * Dolphin Peripherals 4036 (dual serial port) card. 229 * (Dolpin 4025 has the same ID but only one port) 230 */ 231 { "Dolphin Peripherals 4036", 232 { 0x1409, 0x7168, 0, 0 }, 233 { 0xffff, 0xffff, 0, 0 }, 234 { 235 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 }, 236 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8 }, 237 }, 238 }, 239 240 /* 241 * XXX no entry because I have no data: 242 * XXX Dolphin Peripherals 4078 (dual serial and single parallel) 243 */ 244 245 246 /* 247 * SIIG Boards. 248 * 249 * SIIG provides documentation for their boards at: 250 * <URL:http://www.siig.com/driver.htm> 251 * 252 * Please excuse the weird ordering, it's the order they 253 * use in their documentation. 254 */ 255 256 /* 257 * SIIG "10x" family boards. 258 */ 259 260 /* SIIG Cyber Serial PCI 16C550 (10x family): 1S */ 261 { "SIIG Cyber Serial PCI 16C550 (10x family)", 262 { 0x131f, 0x1000, 0, 0 }, 263 { 0xffff, 0xffff, 0, 0 }, 264 { 265 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, 266 }, 267 }, 268 269 /* SIIG Cyber Serial PCI 16C650 (10x family): 1S */ 270 { "SIIG Cyber Serial PCI 16C650 (10x family)", 271 { 0x131f, 0x1001, 0, 0 }, 272 { 0xffff, 0xffff, 0, 0 }, 273 { 274 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, 275 }, 276 }, 277 278 /* SIIG Cyber Serial PCI 16C850 (10x family): 1S */ 279 { "SIIG Cyber Serial PCI 16C850 (10x family)", 280 { 0x131f, 0x1002, 0, 0 }, 281 { 0xffff, 0xffff, 0, 0 }, 282 { 283 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, 284 }, 285 }, 286 287 /* SIIG Cyber I/O PCI 16C550 (10x family): 1S, 1P */ 288 { "SIIG Cyber I/O PCI 16C550 (10x family)", 289 { 0x131f, 0x1010, 0, 0 }, 290 { 0xffff, 0xffff, 0, 0 }, 291 { 292 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, 293 { PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 }, 294 }, 295 }, 296 297 /* SIIG Cyber I/O PCI 16C650 (10x family): 1S, 1P */ 298 { "SIIG Cyber I/O PCI 16C650 (10x family)", 299 { 0x131f, 0x1011, 0, 0 }, 300 { 0xffff, 0xffff, 0, 0 }, 301 { 302 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, 303 { PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 }, 304 }, 305 }, 306 307 /* SIIG Cyber I/O PCI 16C850 (10x family): 1S, 1P */ 308 { "SIIG Cyber I/O PCI 16C850 (10x family)", 309 { 0x131f, 0x1012, 0, 0 }, 310 { 0xffff, 0xffff, 0, 0 }, 311 { 312 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, 313 { PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 }, 314 }, 315 }, 316 317 /* SIIG Cyber Parallel PCI (10x family): 1P */ 318 { "SIIG Cyber Parallel PCI (10x family)", 319 { 0x131f, 0x1020, 0, 0 }, 320 { 0xffff, 0xffff, 0, 0 }, 321 { 322 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 }, 323 }, 324 }, 325 326 /* SIIG Cyber Parallel Dual PCI (10x family): 2P */ 327 { "SIIG Cyber Parallel Dual PCI (10x family)", 328 { 0x131f, 0x1021, 0, 0 }, 329 { 0xffff, 0xffff, 0, 0 }, 330 { 331 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 }, 332 { PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 }, 333 }, 334 }, 335 336 /* SIIG Cyber Serial Dual PCI 16C550 (10x family): 2S */ 337 { "SIIG Cyber Serial Dual PCI 16C550 (10x family)", 338 { 0x131f, 0x1030, 0, 0 }, 339 { 0xffff, 0xffff, 0, 0 }, 340 { 341 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, 342 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ }, 343 }, 344 }, 345 346 /* SIIG Cyber Serial Dual PCI 16C650 (10x family): 2S */ 347 { "SIIG Cyber Serial Dual PCI 16C650 (10x family)", 348 { 0x131f, 0x1031, 0, 0 }, 349 { 0xffff, 0xffff, 0, 0 }, 350 { 351 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, 352 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ }, 353 }, 354 }, 355 356 /* SIIG Cyber Serial Dual PCI 16C850 (10x family): 2S */ 357 { "SIIG Cyber Serial Dual PCI 16C850 (10x family)", 358 { 0x131f, 0x1032, 0, 0 }, 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 }, 364 }, 365 366 /* SIIG Cyber 2S1P PCI 16C550 (10x family): 2S, 1P */ 367 { "SIIG Cyber 2S1P PCI 16C550 (10x family)", 368 { 0x131f, 0x1034, 0, 0 }, /* XXX really? */ 369 { 0xffff, 0xffff, 0, 0 }, 370 { 371 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, 372 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ }, 373 { PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 }, 374 }, 375 }, 376 377 /* SIIG Cyber 2S1P PCI 16C650 (10x family): 2S, 1P */ 378 { "SIIG Cyber 2S1P PCI 16C650 (10x family)", 379 { 0x131f, 0x1035, 0, 0 }, /* XXX really? */ 380 { 0xffff, 0xffff, 0, 0 }, 381 { 382 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, 383 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ }, 384 { PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 }, 385 }, 386 }, 387 388 /* SIIG Cyber 2S1P PCI 16C850 (10x family): 2S, 1P */ 389 { "SIIG Cyber 2S1P PCI 16C850 (10x family)", 390 { 0x131f, 0x1036, 0, 0 }, /* XXX really? */ 391 { 0xffff, 0xffff, 0, 0 }, 392 { 393 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, 394 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ }, 395 { PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 }, 396 }, 397 }, 398 399 /* SIIG Cyber 4S PCI 16C550 (10x family): 4S */ 400 { "SIIG Cyber 4S PCI 16C550 (10x family)", 401 { 0x131f, 0x1050, 0, 0 }, 402 { 0xffff, 0xffff, 0, 0 }, 403 { 404 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, 405 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ }, 406 { PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ }, 407 { PUC_PORT_TYPE_COM, 0x24, 0x00, COM_FREQ }, 408 }, 409 }, 410 411 /* SIIG Cyber 4S PCI 16C650 (10x family): 4S */ 412 { "SIIG Cyber 4S PCI 16C650 (10x family)", 413 { 0x131f, 0x1051, 0, 0 }, 414 { 0xffff, 0xffff, 0, 0 }, 415 { 416 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, 417 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ }, 418 { PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ }, 419 { PUC_PORT_TYPE_COM, 0x24, 0x00, COM_FREQ }, 420 }, 421 }, 422 423 /* SIIG Cyber 4S PCI 16C850 (10x family): 4S */ 424 { "SIIG Cyber 4S PCI 16C850 (10x family)", 425 { 0x131f, 0x1052, 0, 0 }, 426 { 0xffff, 0xffff, 0, 0 }, 427 { 428 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, 429 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ }, 430 { PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ }, 431 { PUC_PORT_TYPE_COM, 0x24, 0x00, COM_FREQ }, 432 }, 433 }, 434 435 /* 436 * SIIG "20x" family boards. 437 */ 438 439 /* SIIG Cyber Parallel PCI (20x family): 1P */ 440 { "SIIG Cyber Parallel PCI (20x family)", 441 { 0x131f, 0x2020, 0, 0 }, 442 { 0xffff, 0xffff, 0, 0 }, 443 { 444 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 }, 445 }, 446 }, 447 448 /* SIIG Cyber Parallel Dual PCI (20x family): 2P */ 449 { "SIIG Cyber Parallel Dual PCI (20x family)", 450 { 0x131f, 0x2021, 0, 0 }, 451 { 0xffff, 0xffff, 0, 0 }, 452 { 453 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 }, 454 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 }, 455 }, 456 }, 457 458 /* SIIG Cyber 2P1S PCI 16C550 (20x family): 1S, 2P */ 459 { "SIIG Cyber 2P1S PCI 16C550 (20x family)", 460 { 0x131f, 0x2040, 0, 0 }, 461 { 0xffff, 0xffff, 0, 0 }, 462 { 463 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 464 { PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 }, 465 { PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 }, 466 }, 467 }, 468 469 /* SIIG Cyber 2P1S PCI 16C650 (20x family): 1S, 2P */ 470 { "SIIG Cyber 2P1S PCI 16C650 (20x family)", 471 { 0x131f, 0x2041, 0, 0 }, 472 { 0xffff, 0xffff, 0, 0 }, 473 { 474 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 475 { PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 }, 476 { PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 }, 477 }, 478 }, 479 480 /* SIIG Cyber 2P1S PCI 16C850 (20x family): 1S, 2P */ 481 { "SIIG Cyber 2P1S PCI 16C850 (20x family)", 482 { 0x131f, 0x2042, 0, 0 }, 483 { 0xffff, 0xffff, 0, 0 }, 484 { 485 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 486 { PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 }, 487 { PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 }, 488 }, 489 }, 490 491 /* SIIG Cyber Serial PCI 16C550 (20x family): 1S */ 492 { "SIIG Cyber Serial PCI 16C550 (20x family)", 493 { 0x131f, 0x2000, 0, 0 }, 494 { 0xffff, 0xffff, 0, 0 }, 495 { 496 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 497 }, 498 }, 499 500 /* SIIG Cyber Serial PCI 16C650 (20x family): 1S */ 501 { "SIIG Cyber Serial PCI 16C650 (20x family)", 502 { 0x131f, 0x2001, 0, 0 }, 503 { 0xffff, 0xffff, 0, 0 }, 504 { 505 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 506 }, 507 }, 508 509 /* SIIG Cyber Serial PCI 16C850 (20x family): 1S */ 510 { "SIIG Cyber Serial PCI 16C850 (20x family)", 511 { 0x131f, 0x2002, 0, 0 }, 512 { 0xffff, 0xffff, 0, 0 }, 513 { 514 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 515 }, 516 }, 517 518 /* SIIG Cyber I/O PCI 16C550 (20x family): 1S, 1P */ 519 { "SIIG Cyber I/O PCI 16C550 (20x family)", 520 { 0x131f, 0x2010, 0, 0 }, 521 { 0xffff, 0xffff, 0, 0 }, 522 { 523 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 524 { PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 }, 525 }, 526 }, 527 528 /* SIIG Cyber I/O PCI 16C650 (20x family): 1S, 1P */ 529 { "SIIG Cyber I/O PCI 16C650 (20x family)", 530 { 0x131f, 0x2011, 0, 0 }, 531 { 0xffff, 0xffff, 0, 0 }, 532 { 533 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 534 { PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 }, 535 }, 536 }, 537 538 /* SIIG Cyber I/O PCI 16C850 (20x family): 1S, 1P */ 539 { "SIIG Cyber I/O PCI 16C850 (20x family)", 540 { 0x131f, 0x2012, 0, 0 }, 541 { 0xffff, 0xffff, 0, 0 }, 542 { 543 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 544 { PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 }, 545 }, 546 }, 547 548 /* SIIG Cyber Serial Dual PCI 16C550 (20x family): 2S */ 549 { "SIIG Cyber Serial Dual PCI 16C550 (20x family)", 550 { 0x131f, 0x2030, 0, 0 }, 551 { 0xffff, 0xffff, 0, 0 }, 552 { 553 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 554 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ }, 555 }, 556 }, 557 558 /* SIIG Cyber Serial Dual PCI 16C650 (20x family): 2S */ 559 { "SIIG Cyber Serial Dual PCI 16C650 (20x family)", 560 { 0x131f, 0x2031, 0, 0 }, 561 { 0xffff, 0xffff, 0, 0 }, 562 { 563 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 564 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ }, 565 }, 566 }, 567 568 /* SIIG Cyber Serial Dual PCI 16C850 (20x family): 2S */ 569 { "SIIG Cyber Serial Dual PCI 16C850 (20x family)", 570 { 0x131f, 0x2032, 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 }, 576 }, 577 578 /* SIIG Cyber 2S1P PCI 16C550 (20x family): 2S, 1P */ 579 { "SIIG Cyber 2S1P PCI 16C550 (20x family)", 580 { 0x131f, 0x2060, 0, 0 }, 581 { 0xffff, 0xffff, 0, 0 }, 582 { 583 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 584 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ }, 585 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 }, 586 }, 587 }, 588 589 /* SIIG Cyber 2S1P PCI 16C650 (20x family): 2S, 1P */ 590 { "SIIG Cyber 2S1P PCI 16C650 (20x family)", 591 { 0x131f, 0x2061, 0, 0 }, 592 { 0xffff, 0xffff, 0, 0 }, 593 { 594 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 595 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ }, 596 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 }, 597 }, 598 }, 599 600 /* SIIG Cyber 2S1P PCI 16C850 (20x family): 2S, 1P */ 601 { "SIIG Cyber 2S1P PCI 16C850 (20x family)", 602 { 0x131f, 0x2062, 0, 0 }, 603 { 0xffff, 0xffff, 0, 0 }, 604 { 605 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 606 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ }, 607 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 }, 608 }, 609 }, 610 611 /* SIIG Cyber 4S PCI 16C550 (20x family): 4S */ 612 { "SIIG Cyber 4S PCI 16C550 (20x family)", 613 { 0x131f, 0x2050, 0, 0 }, 614 { 0xffff, 0xffff, 0, 0 }, 615 { 616 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 617 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ }, 618 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, 619 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ }, 620 }, 621 }, 622 623 /* SIIG Cyber 4S PCI 16C650 (20x family): 4S */ 624 { "SIIG Cyber 4S PCI 16C650 (20x family)", 625 { 0x131f, 0x2051, 0, 0 }, 626 { 0xffff, 0xffff, 0, 0 }, 627 { 628 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 629 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ }, 630 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, 631 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ }, 632 }, 633 }, 634 635 /* SIIG Cyber 4S PCI 16C850 (20x family): 4S */ 636 { "SIIG Cyber 4S PCI 16C850 (20x family)", 637 { 0x131f, 0x2052, 0, 0 }, 638 { 0xffff, 0xffff, 0, 0 }, 639 { 640 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 641 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ }, 642 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, 643 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ }, 644 }, 645 }, 646 647 /* VScom PCI-200L: 2S */ 648 { "VScom PCI-200L", 649 { 0x14d2, 0x8020, 0, 0 }, 650 { 0xffff, 0xffff, 0, 0 }, 651 { 652 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ * 8 }, 653 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 }, 654 }, 655 }, 656 657 /* VScom PCI-400: 4S */ 658 { "VScom PCI-400", 659 { 0x10b5, 0x1077, 0x10b5, 0x1077 }, 660 { 0xffff, 0xffff, 0xffff, 0xffff }, 661 { 662 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 }, 663 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 }, 664 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 }, 665 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 }, 666 }, 667 }, 668 669 /* VScom PCI-800: 8S */ 670 { "VScom PCI-800", 671 { 0x10b5, 0x1076, 0x10b5, 0x1076 }, 672 { 0xffff, 0xffff, 0xffff, 0xffff }, 673 { 674 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 }, 675 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 }, 676 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 }, 677 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 }, 678 { PUC_PORT_TYPE_COM, 0x18, 0x20, COM_FREQ * 8 }, 679 { PUC_PORT_TYPE_COM, 0x18, 0x28, COM_FREQ * 8 }, 680 { PUC_PORT_TYPE_COM, 0x18, 0x30, COM_FREQ * 8 }, 681 { PUC_PORT_TYPE_COM, 0x18, 0x38, COM_FREQ * 8 }, 682 }, 683 }, 684 /* 685 * VScom PCI-800H. Uses 8 16950 UART, behind a PCI chips that offers 686 * 4 com port on PCI device 0 and 4 on PCI device 1. PCI device 0 has 687 * device ID 3 and PCI device 1 device ID 4. 688 */ 689 { "Titan PCI-800H", 690 { 0x14d2, 0xa003, 0, 0 }, 691 { 0xffff, 0xffff, 0, 0 }, 692 { 693 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 }, 694 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8 }, 695 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 8 }, 696 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 8 }, 697 }, 698 }, 699 { "Titan PCI-800H", 700 { 0x14d2, 0xa004, 0, 0 }, 701 { 0xffff, 0xffff, 0, 0 }, 702 { 703 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 }, 704 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8 }, 705 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 8 }, 706 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 8 }, 707 }, 708 }, 709 { "Titan PCI-200H", 710 { 0x14d2, 0xa005, 0, 0 }, 711 { 0xffff, 0xffff, 0, 0 }, 712 { 713 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 }, 714 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8 }, 715 }, 716 }, 717 718 { "Titan VScom PCI-200HV2", /* 2S */ 719 { 0x14d2, 0xe020, 0, 0 }, 720 { 0xffff, 0xffff, 0, 0 }, 721 { 722 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 }, 723 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ * 8 }, 724 }, 725 }, 726 /* 727 * VScom (Titan?) PCI-800L. More modern variant of the 728 * PCI-800. Uses 6 discrete 16550 UARTs, plus another 729 * two of them obviously implemented as macro cells in 730 * the ASIC. This causes the weird port access pattern 731 * below, where two of the IO port ranges each access 732 * one of the ASIC UARTs, and a block of IO addresses 733 * access the external UARTs. 734 */ 735 { "Titan VScom PCI-800L", 736 { 0x14d2, 0x8080, 0, 0 }, 737 { 0xffff, 0xffff, 0, 0 }, 738 { 739 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ * 8 }, 740 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 }, 741 { PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ * 8 }, 742 { PUC_PORT_TYPE_COM, 0x20, 0x08, COM_FREQ * 8 }, 743 { PUC_PORT_TYPE_COM, 0x20, 0x10, COM_FREQ * 8 }, 744 { PUC_PORT_TYPE_COM, 0x20, 0x18, COM_FREQ * 8 }, 745 { PUC_PORT_TYPE_COM, 0x20, 0x20, COM_FREQ * 8 }, 746 { PUC_PORT_TYPE_COM, 0x20, 0x28, COM_FREQ * 8 }, 747 }, 748 }, 749 750 /* 751 * NEC PK-UG-X001 K56flex PCI Modem card. 752 * Uses NEC MARTH bridge chip and Rockwell RCVDL56ACF/SP. 753 */ 754 { "NEC PK-UG-X001 K56flex PCI Modem", 755 { 0x1033, 0x0074, 0x1033, 0x8014 }, 756 { 0xffff, 0xffff, 0xffff, 0xffff }, 757 { 758 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 759 }, 760 }, 761 762 /* NEC PK-UG-X008 */ 763 { "NEC PK-UG-X008", 764 { 0x1033, 0x007d, 0x1033, 0x8012 }, 765 { 0xffff, 0xffff, 0xffff, 0xffff }, 766 { 767 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 768 }, 769 }, 770 771 /* Lava Computers 2SP-PCI */ 772 { "Lava Computers 2SP-PCI parallel port", 773 { 0x1407, 0x8000, 0, 0 }, 774 { 0xffff, 0xffff, 0, 0 }, 775 { 776 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 }, 777 }, 778 }, 779 780 /* Lava Computers 2SP-PCI and Quattro-PCI serial ports */ 781 { "Lava Computers dual serial port", 782 { 0x1407, 0x0100, 0, 0 }, 783 { 0xffff, 0xfffc, 0, 0 }, 784 { 785 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 786 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ }, 787 }, 788 }, 789 790 /* Lava Computers newer Quattro-PCI serial ports */ 791 { "Lava Computers Quattro-PCI serial port", 792 { 0x1407, 0x0120, 0, 0 }, 793 { 0xffff, 0xfffc, 0, 0 }, 794 { 795 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 796 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ }, 797 }, 798 }, 799 800 /* Lava Computers DSerial PCI serial ports */ 801 { "Lava Computers serial port", 802 { 0x1407, 0x0110, 0, 0 }, 803 { 0xffff, 0xfffc, 0, 0 }, 804 { 805 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 806 }, 807 }, 808 809 /* Lava Computers Octopus-550 serial ports */ 810 { "Lava Computers Octopus-550 8-port serial", 811 { 0x1407, 0x0180, 0, 0 }, 812 { 0xffff, 0xfffc, 0, 0 }, 813 { 814 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 815 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ }, 816 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, 817 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ }, 818 }, 819 }, 820 821 /* US Robotics (3Com) PCI Modems */ 822 { "US Robotics (3Com) 3CP5609 PCI 16550 Modem", 823 { 0x12b9, 0x1008, 0, 0 }, 824 { 0xffff, 0xffff, 0, 0 }, 825 { 826 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 827 }, 828 }, 829 830 /* Actiontec 56K PCI Master */ 831 { "Actiontec 56K PCI Master", 832 { 0x11c1, 0x0480, 0, 0 }, 833 { 0xffff, 0xffff, 0, 0 }, 834 { 835 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ }, 836 }, 837 }, 838 839 /* 840 * Boards with an Oxford Semiconductor chip. 841 * 842 * Oxford Semiconductor provides documentation for their chip at: 843 * <URL:http://www.oxsemi.com/products/uarts/index.html> 844 * 845 * As sold by Kouwell <URL:http://www.kouwell.com/>. 846 * I/O Flex PCI I/O Card Model-223 with 4 serial and 1 parallel ports. 847 */ 848 849 /* Oxford Semiconductor OX16PCI954 PCI UARTs */ 850 { "Oxford Semiconductor OX16PCI954 UARTs", 851 { 0x1415, 0x9501, 0, 0 }, 852 { 0xffff, 0xffff, 0, 0 }, 853 { 854 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 855 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ }, 856 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ }, 857 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ }, 858 }, 859 }, 860 861 /* Oxford Semiconductor OX16PCI954 PCI UARTs */ 862 { "Oxford Semiconductor OX16PCI954 UARTs", 863 { 0x1415, 0x950a, 0, 0 }, 864 { 0xffff, 0xffff, 0, 0 }, 865 { 866 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 867 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ }, 868 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ }, 869 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ }, 870 }, 871 }, 872 873 /* Oxford Semiconductor OX16PCI954 PCI Parallel port */ 874 { "Oxford Semiconductor OX16PCI954 Parallel port", 875 { 0x1415, 0x9513, 0, 0 }, 876 { 0xffff, 0xffff, 0, 0 }, 877 { 878 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 }, 879 }, 880 }, 881 882 /* Oxford Semiconductor OX12PCI840 PCI Parallel port */ 883 { "Oxford Semiconductor OX12PCI840 Parallel port", 884 { 0x1415, 0x8403, 0, 0 }, 885 { 0xffff, 0xffff, 0, 0 }, 886 { 887 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 }, 888 }, 889 }, 890 891 /* 892 * Oxford Semiconductor OX9160/OX16PCI954 PCI UARTS 893 * Second chip on Exsys EX-41098 8x cards 894 */ 895 { "Oxford Semiconductor OX9160/OX16PCI954 UARTs (function 1)", 896 { 0x1415, 0x9511, 0, 0 }, 897 { 0xffff, 0xffff, 0, 0 }, 898 { 899 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 900 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ }, 901 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ }, 902 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ }, 903 }, 904 }, 905 906 /* NetMos 2S1P PCI 16C650 : 2S, 1P */ 907 { "NetMos NM9835 Dual UART and 1284 Printer port", 908 { 0x9710, 0x9835, 0, 0 }, 909 { 0xffff, 0xffff, 0, 0 }, 910 { 911 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 912 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ }, 913 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 }, 914 }, 915 }, 916 917 /* NetMos 4S0P PCI: 4S, 0P */ 918 { "NetMos NM9845 Quad UART", 919 { 0x9710, 0x9845, 0, 0 }, 920 { 0xffff, 0xffff, 0, 0 }, 921 { 922 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 923 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ }, 924 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, 925 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ }, 926 }, 927 }, 928 929 /* 930 * This is the Middle Digital, Inc. PCI-Weasel, which 931 * uses a PCI interface implemented in FPGA. 932 */ 933 { "Middle Digital, Inc. Weasel serial port", 934 { 0xdeaf, 0x9051, 0, 0 }, 935 { 0xffff, 0xffff, 0, 0 }, 936 { 937 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 938 }, 939 }, 940 941 /* SD-LAB PCI I/O Card 4S2P */ 942 { "Syba Tech Ltd. PCI-4S2P-550-ECP", 943 { 0x1592, 0x0781, 0, 0 }, 944 { 0xffff, 0xffff, 0, 0 }, 945 { 946 { PUC_PORT_TYPE_COM, 0x10, 0x2e8, COM_FREQ }, 947 { PUC_PORT_TYPE_COM, 0x10, 0x2f8, COM_FREQ }, 948 { PUC_PORT_TYPE_LPT, 0x10, 0x000, 0x00 }, 949 { PUC_PORT_TYPE_COM, 0x10, 0x3e8, COM_FREQ }, 950 { PUC_PORT_TYPE_COM, 0x10, 0x3f8, COM_FREQ }, 951 { PUC_PORT_TYPE_LPT, 0x10, 0x000, 0x00 }, 952 }, 953 .init = puc_config_win877, 954 }, 955 956 /* Moxa Technologies Co., Ltd. PCI I/O Card 4S RS232 */ 957 { "Moxa Technologies, Smartio C104H/PCI", 958 { 0x1393, 0x1040, 0, 0 }, 959 { 0xffff, 0xffff, 0, 0 }, 960 { 961 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 }, 962 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 }, 963 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 }, 964 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 }, 965 }, 966 }, 967 968 /* Moxa Technologies Co., Ltd. PCI I/O Card 4S RS232 */ 969 { "Moxa Technologies, Smartio CP-104UL/PCI", 970 { 0x1393, 0x1041, 0, 0 }, 971 { 0xffff, 0xffff, 0, 0 }, 972 { 973 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 }, 974 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 }, 975 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 }, 976 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 }, 977 }, 978 }, 979 980 /* Moxa Technologies Co., Ltd. PCI I/O Card 4S RS232/422/485 */ 981 { "Moxa Technologies, Industio CP-114", 982 { 0x1393, 0x1141, 0, 0 }, 983 { 0xffff, 0xffff, 0, 0 }, 984 { 985 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 }, 986 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 }, 987 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 }, 988 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 }, 989 }, 990 }, 991 992 /* Moxa Technologies Co., Ltd. PCI I/O Card 8S RS232 */ 993 { "Moxa Technologies, C168H/PCI", 994 { 0x1393, 0x1680, 0, 0 }, 995 { 0xffff, 0xffff, 0, 0 }, 996 { 997 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 }, 998 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 }, 999 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 }, 1000 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 }, 1001 { PUC_PORT_TYPE_COM, 0x18, 0x20, COM_FREQ * 8 }, 1002 { PUC_PORT_TYPE_COM, 0x18, 0x28, COM_FREQ * 8 }, 1003 { PUC_PORT_TYPE_COM, 0x18, 0x30, COM_FREQ * 8 }, 1004 { PUC_PORT_TYPE_COM, 0x18, 0x38, COM_FREQ * 8 }, 1005 }, 1006 }, 1007 1008 /* Moxa Technologies Co., Ltd. PCI I/O Card 8S RS232 */ 1009 { "Moxa Technologies, C168U/PCI", 1010 { 0x1393, 0x1681, 0, 0 }, 1011 { 0xffff, 0xffff, 0, 0 }, 1012 { 1013 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 }, 1014 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 }, 1015 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 }, 1016 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 }, 1017 { PUC_PORT_TYPE_COM, 0x18, 0x20, COM_FREQ * 8 }, 1018 { PUC_PORT_TYPE_COM, 0x18, 0x28, COM_FREQ * 8 }, 1019 { PUC_PORT_TYPE_COM, 0x18, 0x30, COM_FREQ * 8 }, 1020 { PUC_PORT_TYPE_COM, 0x18, 0x38, COM_FREQ * 8 }, 1021 }, 1022 }, 1023 1024 { "Avlab Technology, PCI IO 2S", 1025 { 0x14db, 0x2130, 0, 0 }, 1026 { 0xffff, 0xfffc, 0, 0 }, 1027 { 1028 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 1029 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ }, 1030 }, 1031 }, 1032 1033 /* Avlab Technology, Inc. Low Profile PCI 4 Serial: 4S */ 1034 { "Avlab Low Profile PCI 4 Serial", 1035 { 0x14db, 0x2150, 0, 0 }, 1036 { 0xffff, 0xffff, 0, 0 }, 1037 { 1038 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 1039 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ }, 1040 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, 1041 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ }, 1042 }, 1043 }, 1044 1045 /* Decision Computer Inc, serial ports */ 1046 { "Decision Computer Inc, PCCOM 4-port serial", 1047 { 0x6666, 0x0001, 0, 0 }, 1048 { 0xffff, 0xffff, 0, 0 }, 1049 { 1050 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ }, 1051 { PUC_PORT_TYPE_COM, 0x1c, 0x08, COM_FREQ }, 1052 { PUC_PORT_TYPE_COM, 0x1c, 0x10, COM_FREQ }, 1053 { PUC_PORT_TYPE_COM, 0x1c, 0x18, COM_FREQ }, 1054 }, 1055 }, 1056 1057 { "PCCOM dual port RS232/422/485", 1058 { 0x6666, 0x0004, 0, 0 }, 1059 { 0xffff, 0xffff, 0, 0 }, 1060 { 1061 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ }, 1062 { PUC_PORT_TYPE_COM, 0x1c, 0x08, COM_FREQ }, 1063 }, 1064 }, 1065 1066 { "IC Book Labs Gunboat x2 Low Profile", 1067 { 0xb00c, 0x0a1c, 0, 0 }, 1068 { 0xffff, 0xffff, 0, 0 }, 1069 { 1070 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 1071 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ }, 1072 }, 1073 }, 1074 1075 { "IC Book Labs Gunboat x4 Lite", 1076 { 0xb00c, 0x021c, 0, 0 }, 1077 { 0xffff, 0xffff, 0, 0 }, 1078 { 1079 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 1080 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ }, 1081 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ }, 1082 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ }, 1083 }, 1084 PUC_ILR_TYPE_DIGI, { 0x07 }, 1085 }, 1086 1087 { "IC Book Labs Gunboat x4 Pro", 1088 { 0xb00c, 0x031c, 0, 0 }, 1089 { 0xffff, 0xffff, 0, 0 }, 1090 { 1091 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 1092 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ }, 1093 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ }, 1094 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ }, 1095 }, 1096 PUC_ILR_TYPE_DIGI, { 0x07 }, 1097 }, 1098 1099 { "IC Book Labs Gunboat x4 Low Profile", 1100 { 0xb00c, 0x0b1c, 0, 0 }, 1101 { 0xffff, 0xffff, 0, 0 }, 1102 { 1103 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 1104 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ }, 1105 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ }, 1106 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ }, 1107 }, 1108 PUC_ILR_TYPE_DIGI, { 0x07 }, 1109 }, 1110 1111 { "IC Book Labs Ironclad x8 Lite", 1112 { 0xb00c, 0x041c, 0, 0 }, 1113 { 0xffff, 0xffff, 0, 0 }, 1114 { 1115 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 1116 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ }, 1117 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ }, 1118 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ }, 1119 { PUC_PORT_TYPE_COM, 0x10, 0x20, COM_FREQ }, 1120 { PUC_PORT_TYPE_COM, 0x10, 0x28, COM_FREQ }, 1121 { PUC_PORT_TYPE_COM, 0x10, 0x30, COM_FREQ }, 1122 { PUC_PORT_TYPE_COM, 0x10, 0x38, COM_FREQ }, 1123 }, 1124 PUC_ILR_TYPE_DIGI, { 0x07 }, 1125 }, 1126 1127 { "IC Book Labs Ironclad x8 Pro", 1128 { 0xb00c, 0x051c, 0, 0 }, 1129 { 0xffff, 0xffff, 0, 0 }, 1130 { 1131 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 1132 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ }, 1133 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ }, 1134 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ }, 1135 { PUC_PORT_TYPE_COM, 0x10, 0x20, COM_FREQ }, 1136 { PUC_PORT_TYPE_COM, 0x10, 0x28, COM_FREQ }, 1137 { PUC_PORT_TYPE_COM, 0x10, 0x30, COM_FREQ }, 1138 { PUC_PORT_TYPE_COM, 0x10, 0x38, COM_FREQ }, 1139 }, 1140 PUC_ILR_TYPE_DIGI, { 0x07 }, 1141 }, 1142 1143 { "IC Book Labs Dreadnought x16 Lite", 1144 { 0xb00c, 0x091c, 0, 0 }, 1145 { 0xffff, 0xffff, 0, 0 }, 1146 { 1147 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 1148 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ }, 1149 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ }, 1150 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ }, 1151 { PUC_PORT_TYPE_COM, 0x10, 0x20, COM_FREQ }, 1152 { PUC_PORT_TYPE_COM, 0x10, 0x28, COM_FREQ }, 1153 { PUC_PORT_TYPE_COM, 0x10, 0x30, COM_FREQ }, 1154 { PUC_PORT_TYPE_COM, 0x10, 0x38, COM_FREQ }, 1155 { PUC_PORT_TYPE_COM, 0x10, 0x40, COM_FREQ }, 1156 { PUC_PORT_TYPE_COM, 0x10, 0x48, COM_FREQ }, 1157 { PUC_PORT_TYPE_COM, 0x10, 0x50, COM_FREQ }, 1158 { PUC_PORT_TYPE_COM, 0x10, 0x58, COM_FREQ }, 1159 { PUC_PORT_TYPE_COM, 0x10, 0x60, COM_FREQ }, 1160 { PUC_PORT_TYPE_COM, 0x10, 0x68, COM_FREQ }, 1161 { PUC_PORT_TYPE_COM, 0x10, 0x70, COM_FREQ }, 1162 { PUC_PORT_TYPE_COM, 0x10, 0x78, COM_FREQ }, 1163 }, 1164 PUC_ILR_TYPE_DIGI, { 0x07, 0x47 }, 1165 }, 1166 1167 { "IC Book Labs Dreadnought x16 Pro", 1168 { 0xb00c, 0x081c, 0, 0 }, 1169 { 0xffff, 0xffff, 0, 0 }, 1170 { 1171 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8, 0x200000 }, 1172 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8, 0x200000 }, 1173 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 8, 0x200000 }, 1174 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 8, 0x200000 }, 1175 { PUC_PORT_TYPE_COM, 0x10, 0x20, COM_FREQ * 8, 0x200000 }, 1176 { PUC_PORT_TYPE_COM, 0x10, 0x28, COM_FREQ * 8, 0x200000 }, 1177 { PUC_PORT_TYPE_COM, 0x10, 0x30, COM_FREQ * 8, 0x200000 }, 1178 { PUC_PORT_TYPE_COM, 0x10, 0x38, COM_FREQ * 8, 0x200000 }, 1179 { PUC_PORT_TYPE_COM, 0x10, 0x40, COM_FREQ * 8, 0x200000 }, 1180 { PUC_PORT_TYPE_COM, 0x10, 0x48, COM_FREQ * 8, 0x200000 }, 1181 { PUC_PORT_TYPE_COM, 0x10, 0x50, COM_FREQ * 8, 0x200000 }, 1182 { PUC_PORT_TYPE_COM, 0x10, 0x58, COM_FREQ * 8, 0x200000 }, 1183 { PUC_PORT_TYPE_COM, 0x10, 0x60, COM_FREQ * 8, 0x200000 }, 1184 { PUC_PORT_TYPE_COM, 0x10, 0x68, COM_FREQ * 8, 0x200000 }, 1185 { PUC_PORT_TYPE_COM, 0x10, 0x70, COM_FREQ * 8, 0x200000 }, 1186 { PUC_PORT_TYPE_COM, 0x10, 0x78, COM_FREQ * 8, 0x200000 }, 1187 }, 1188 PUC_ILR_TYPE_DIGI, { 0x07, 0x47 }, 1189 }, 1190 1191 { "Cronyx Omega2-PCI", 1192 { 0x13a8, 0x0158, 0, 0 }, 1193 { 0xffff, 0xffff, 0, 0 }, 1194 { 1195 { PUC_PORT_TYPE_UART, 0x010, 0x000, COM_FREQ * 8, PUC_FLAGS_MEMORY }, 1196 { PUC_PORT_TYPE_UART, 0x010, 0x200, COM_FREQ * 8, PUC_FLAGS_MEMORY }, 1197 { PUC_PORT_TYPE_UART, 0x010, 0x400, COM_FREQ * 8, PUC_FLAGS_MEMORY }, 1198 { PUC_PORT_TYPE_UART, 0x010, 0x600, COM_FREQ * 8, PUC_FLAGS_MEMORY }, 1199 { PUC_PORT_TYPE_UART, 0x010, 0x800, COM_FREQ * 8, PUC_FLAGS_MEMORY }, 1200 { PUC_PORT_TYPE_UART, 0x010, 0xA00, COM_FREQ * 8, PUC_FLAGS_MEMORY }, 1201 { PUC_PORT_TYPE_UART, 0x010, 0xC00, COM_FREQ * 8, PUC_FLAGS_MEMORY }, 1202 { PUC_PORT_TYPE_UART, 0x010, 0xE00, COM_FREQ * 8, PUC_FLAGS_MEMORY }, 1203 }, 1204 }, 1205 1206 { 0 } 1207 }; 1208