pucdata.c revision 98374
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: head/sys/dev/puc/pucdata.c 98374 2002-06-18 02:39:12Z obrien $"); 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 50const struct puc_device_description puc_devices[] = { 51 { "Comtrol RocketPort 550/16 part A", 52 { 0x11fe, 0x8016, 0, 0 }, 53 { 0xffff, 0xffff, 0, 0 }, 54 { 55 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 4 }, 56 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 4 }, 57 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 4 }, 58 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 4 }, 59 }, 60 }, 61 { "Comtrol RocketPort 550/16 part B", 62 { 0x11fe, 0x8017, 0, 0 }, 63 { 0xffff, 0xffff, 0, 0 }, 64 { 65 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 4 }, 66 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 4 }, 67 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 4 }, 68 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 4 }, 69 { PUC_PORT_TYPE_COM, 0x10, 0x20, COM_FREQ * 4 }, 70 { PUC_PORT_TYPE_COM, 0x10, 0x28, COM_FREQ * 4 }, 71 { PUC_PORT_TYPE_COM, 0x10, 0x30, COM_FREQ * 4 }, 72 { PUC_PORT_TYPE_COM, 0x10, 0x38, COM_FREQ * 4 }, 73 { PUC_PORT_TYPE_COM, 0x10, 0x40, COM_FREQ * 4 }, 74 { PUC_PORT_TYPE_COM, 0x10, 0x48, COM_FREQ * 4 }, 75 { PUC_PORT_TYPE_COM, 0x10, 0x50, COM_FREQ * 4 }, 76 { PUC_PORT_TYPE_COM, 0x10, 0x58, COM_FREQ * 4 }, 77 }, 78 }, 79 /* 80 * XXX no entry because I have no data: 81 * XXX Dolphin Peripherals 4006 (single parallel) 82 */ 83 84 /* 85 * Dolphin Peripherals 4014 (dual parallel port) card. PLX 9050, with 86 * a seemingly-lame EEPROM setup that puts the Dolphin IDs 87 * into the subsystem fields, and claims that it's a 88 * network/misc (0x02/0x80) device. 89 */ 90 { "Dolphin Peripherals 4014", 91 { 0x10b5, 0x9050, 0xd84d, 0x6810 }, 92 { 0xffff, 0xffff, 0xffff, 0xffff }, 93 { 94 { PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 }, 95 { PUC_PORT_TYPE_LPT, 0x24, 0x00, 0x00 }, 96 }, 97 }, 98 99 /* 100 * XXX Dolphin Peripherals 4025 (single serial) 101 * (clashes with Dolphin Peripherals 4036 (2s variant) 102 */ 103 104 /* 105 * Dolphin Peripherals 4035 (dual serial port) card. PLX 9050, with 106 * a seemingly-lame EEPROM setup that puts the Dolphin IDs 107 * into the subsystem fields, and claims that it's a 108 * network/misc (0x02/0x80) device. 109 */ 110 { "Dolphin Peripherals 4035", 111 { 0x10b5, 0x9050, 0xd84d, 0x6808 }, 112 { 0xffff, 0xffff, 0xffff, 0xffff }, 113 { 114 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, 115 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ }, 116 }, 117 }, 118 119 /* 120 * Dolphin Peripherals 4036 (dual serial port) card. 121 * (Dolpin 4025 has the same ID but only one port) 122 */ 123 { "Dolphin Peripherals 4036", 124 { 0x1409, 0x7168, 0x0, 0x0 }, 125 { 0xffff, 0xffff, 0x0, 0x0 }, 126 { 127 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8}, 128 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8}, 129 }, 130 }, 131 132 /* 133 * XXX no entry because I have no data: 134 * XXX Dolphin Peripherals 4078 (dual serial and single parallel) 135 */ 136 137 138 /* 139 * SIIG Boards. 140 * 141 * SIIG provides documentation for their boards at: 142 * <URL:http://www.siig.com/driver.htm> 143 * 144 * Please excuse the weird ordering, it's the order they 145 * use in their documentation. 146 */ 147 148 /* 149 * SIIG "10x" family boards. 150 */ 151 152 /* SIIG Cyber Serial PCI 16C550 (10x family): 1S */ 153 { "SIIG Cyber Serial PCI 16C550 (10x family)", 154 { 0x131f, 0x1000, 0, 0 }, 155 { 0xffff, 0xffff, 0, 0 }, 156 { 157 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, 158 }, 159 }, 160 161 /* SIIG Cyber Serial PCI 16C650 (10x family): 1S */ 162 { "SIIG Cyber Serial PCI 16C650 (10x family)", 163 { 0x131f, 0x1001, 0, 0 }, 164 { 0xffff, 0xffff, 0, 0 }, 165 { 166 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, 167 }, 168 }, 169 170 /* SIIG Cyber Serial PCI 16C850 (10x family): 1S */ 171 { "SIIG Cyber Serial PCI 16C850 (10x family)", 172 { 0x131f, 0x1002, 0, 0 }, 173 { 0xffff, 0xffff, 0, 0 }, 174 { 175 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, 176 }, 177 }, 178 179 /* SIIG Cyber I/O PCI 16C550 (10x family): 1S, 1P */ 180 { "SIIG Cyber I/O PCI 16C550 (10x family)", 181 { 0x131f, 0x1010, 0, 0 }, 182 { 0xffff, 0xffff, 0, 0 }, 183 { 184 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, 185 { PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 }, 186 }, 187 }, 188 189 /* SIIG Cyber I/O PCI 16C650 (10x family): 1S, 1P */ 190 { "SIIG Cyber I/O PCI 16C650 (10x family)", 191 { 0x131f, 0x1011, 0, 0 }, 192 { 0xffff, 0xffff, 0, 0 }, 193 { 194 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, 195 { PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 }, 196 }, 197 }, 198 199 /* SIIG Cyber I/O PCI 16C850 (10x family): 1S, 1P */ 200 { "SIIG Cyber I/O PCI 16C850 (10x family)", 201 { 0x131f, 0x1012, 0, 0 }, 202 { 0xffff, 0xffff, 0, 0 }, 203 { 204 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, 205 { PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 }, 206 }, 207 }, 208 209 /* SIIG Cyber Parallel PCI (10x family): 1P */ 210 { "SIIG Cyber Parallel PCI (10x family)", 211 { 0x131f, 0x1020, 0, 0 }, 212 { 0xffff, 0xffff, 0, 0 }, 213 { 214 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 }, 215 }, 216 }, 217 218 /* SIIG Cyber Parallel Dual PCI (10x family): 2P */ 219 { "SIIG Cyber Parallel Dual PCI (10x family)", 220 { 0x131f, 0x1021, 0, 0 }, 221 { 0xffff, 0xffff, 0, 0 }, 222 { 223 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 }, 224 { PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 }, 225 }, 226 }, 227 228 /* SIIG Cyber Serial Dual PCI 16C550 (10x family): 2S */ 229 { "SIIG Cyber Serial Dual PCI 16C550 (10x family)", 230 { 0x131f, 0x1030, 0, 0 }, 231 { 0xffff, 0xffff, 0, 0 }, 232 { 233 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, 234 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ }, 235 }, 236 }, 237 238 /* SIIG Cyber Serial Dual PCI 16C650 (10x family): 2S */ 239 { "SIIG Cyber Serial Dual PCI 16C650 (10x family)", 240 { 0x131f, 0x1031, 0, 0 }, 241 { 0xffff, 0xffff, 0, 0 }, 242 { 243 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, 244 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ }, 245 }, 246 }, 247 248 /* SIIG Cyber Serial Dual PCI 16C850 (10x family): 2S */ 249 { "SIIG Cyber Serial Dual PCI 16C850 (10x family)", 250 { 0x131f, 0x1032, 0, 0 }, 251 { 0xffff, 0xffff, 0, 0 }, 252 { 253 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, 254 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ }, 255 }, 256 }, 257 258 /* SIIG Cyber 2S1P PCI 16C550 (10x family): 2S, 1P */ 259 { "SIIG Cyber 2S1P PCI 16C550 (10x family)", 260 { 0x131f, 0x1034, 0, 0 }, /* XXX really? */ 261 { 0xffff, 0xffff, 0, 0 }, 262 { 263 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, 264 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ }, 265 { PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 }, 266 }, 267 }, 268 269 /* SIIG Cyber 2S1P PCI 16C650 (10x family): 2S, 1P */ 270 { "SIIG Cyber 2S1P PCI 16C650 (10x family)", 271 { 0x131f, 0x1035, 0, 0 }, /* XXX really? */ 272 { 0xffff, 0xffff, 0, 0 }, 273 { 274 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, 275 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ }, 276 { PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 }, 277 }, 278 }, 279 280 /* SIIG Cyber 2S1P PCI 16C850 (10x family): 2S, 1P */ 281 { "SIIG Cyber 2S1P PCI 16C850 (10x family)", 282 { 0x131f, 0x1036, 0, 0 }, /* XXX really? */ 283 { 0xffff, 0xffff, 0, 0 }, 284 { 285 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, 286 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ }, 287 { PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 }, 288 }, 289 }, 290 291 /* SIIG Cyber 4S PCI 16C550 (10x family): 4S */ 292 { "SIIG Cyber 4S PCI 16C550 (10x family)", 293 { 0x131f, 0x1050, 0, 0 }, 294 { 0xffff, 0xffff, 0, 0 }, 295 { 296 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, 297 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ }, 298 { PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ }, 299 { PUC_PORT_TYPE_COM, 0x24, 0x00, COM_FREQ }, 300 }, 301 }, 302 303 /* SIIG Cyber 4S PCI 16C650 (10x family): 4S */ 304 { "SIIG Cyber 4S PCI 16C650 (10x family)", 305 { 0x131f, 0x1051, 0, 0 }, 306 { 0xffff, 0xffff, 0, 0 }, 307 { 308 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, 309 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ }, 310 { PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ }, 311 { PUC_PORT_TYPE_COM, 0x24, 0x00, COM_FREQ }, 312 }, 313 }, 314 315 /* SIIG Cyber 4S PCI 16C850 (10x family): 4S */ 316 { "SIIG Cyber 4S PCI 16C850 (10x family)", 317 { 0x131f, 0x1052, 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 { PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ }, 323 { PUC_PORT_TYPE_COM, 0x24, 0x00, COM_FREQ }, 324 }, 325 }, 326 327 /* 328 * SIIG "20x" family boards. 329 */ 330 331 /* SIIG Cyber Parallel PCI (20x family): 1P */ 332 { "SIIG Cyber Parallel PCI (20x family)", 333 { 0x131f, 0x2020, 0, 0 }, 334 { 0xffff, 0xffff, 0, 0 }, 335 { 336 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 }, 337 }, 338 }, 339 340 /* SIIG Cyber Parallel Dual PCI (20x family): 2P */ 341 { "SIIG Cyber Parallel Dual PCI (20x family)", 342 { 0x131f, 0x2021, 0, 0 }, 343 { 0xffff, 0xffff, 0, 0 }, 344 { 345 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 }, 346 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 }, 347 }, 348 }, 349 350 /* SIIG Cyber 2P1S PCI 16C550 (20x family): 1S, 2P */ 351 { "SIIG Cyber 2P1S PCI 16C550 (20x family)", 352 { 0x131f, 0x2040, 0, 0 }, 353 { 0xffff, 0xffff, 0, 0 }, 354 { 355 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 356 { PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 }, 357 { PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 }, 358 }, 359 }, 360 361 /* SIIG Cyber 2P1S PCI 16C650 (20x family): 1S, 2P */ 362 { "SIIG Cyber 2P1S PCI 16C650 (20x family)", 363 { 0x131f, 0x2041, 0, 0 }, 364 { 0xffff, 0xffff, 0, 0 }, 365 { 366 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 367 { PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 }, 368 { PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 }, 369 }, 370 }, 371 372 /* SIIG Cyber 2P1S PCI 16C850 (20x family): 1S, 2P */ 373 { "SIIG Cyber 2P1S PCI 16C850 (20x family)", 374 { 0x131f, 0x2042, 0, 0 }, 375 { 0xffff, 0xffff, 0, 0 }, 376 { 377 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 378 { PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 }, 379 { PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 }, 380 }, 381 }, 382 383 /* SIIG Cyber Serial PCI 16C550 (20x family): 1S */ 384 { "SIIG Cyber Serial PCI 16C550 (20x family)", 385 { 0x131f, 0x2000, 0, 0 }, 386 { 0xffff, 0xffff, 0, 0 }, 387 { 388 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 389 }, 390 }, 391 392 /* SIIG Cyber Serial PCI 16C650 (20x family): 1S */ 393 { "SIIG Cyber Serial PCI 16C650 (20x family)", 394 { 0x131f, 0x2001, 0, 0 }, 395 { 0xffff, 0xffff, 0, 0 }, 396 { 397 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 398 }, 399 }, 400 401 /* SIIG Cyber Serial PCI 16C850 (20x family): 1S */ 402 { "SIIG Cyber Serial PCI 16C850 (20x family)", 403 { 0x131f, 0x2002, 0, 0 }, 404 { 0xffff, 0xffff, 0, 0 }, 405 { 406 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 407 }, 408 }, 409 410 /* SIIG Cyber I/O PCI 16C550 (20x family): 1S, 1P */ 411 { "SIIG Cyber I/O PCI 16C550 (20x family)", 412 { 0x131f, 0x2010, 0, 0 }, 413 { 0xffff, 0xffff, 0, 0 }, 414 { 415 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 416 { PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 }, 417 }, 418 }, 419 420 /* SIIG Cyber I/O PCI 16C650 (20x family): 1S, 1P */ 421 { "SIIG Cyber I/O PCI 16C650 (20x family)", 422 { 0x131f, 0x2011, 0, 0 }, 423 { 0xffff, 0xffff, 0, 0 }, 424 { 425 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 426 { PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 }, 427 }, 428 }, 429 430 /* SIIG Cyber I/O PCI 16C850 (20x family): 1S, 1P */ 431 { "SIIG Cyber I/O PCI 16C850 (20x family)", 432 { 0x131f, 0x2012, 0, 0 }, 433 { 0xffff, 0xffff, 0, 0 }, 434 { 435 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 436 { PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 }, 437 }, 438 }, 439 440 /* SIIG Cyber Serial Dual PCI 16C550 (20x family): 2S */ 441 { "SIIG Cyber Serial Dual PCI 16C550 (20x family)", 442 { 0x131f, 0x2030, 0, 0 }, 443 { 0xffff, 0xffff, 0, 0 }, 444 { 445 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 446 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ }, 447 }, 448 }, 449 450 /* SIIG Cyber Serial Dual PCI 16C650 (20x family): 2S */ 451 { "SIIG Cyber Serial Dual PCI 16C650 (20x family)", 452 { 0x131f, 0x2031, 0, 0 }, 453 { 0xffff, 0xffff, 0, 0 }, 454 { 455 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 456 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ }, 457 }, 458 }, 459 460 /* SIIG Cyber Serial Dual PCI 16C850 (20x family): 2S */ 461 { "SIIG Cyber Serial Dual PCI 16C850 (20x family)", 462 { 0x131f, 0x2032, 0, 0 }, 463 { 0xffff, 0xffff, 0, 0 }, 464 { 465 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 466 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ }, 467 }, 468 }, 469 470 /* SIIG Cyber 2S1P PCI 16C550 (20x family): 2S, 1P */ 471 { "SIIG Cyber 2S1P PCI 16C550 (20x family)", 472 { 0x131f, 0x2060, 0, 0 }, 473 { 0xffff, 0xffff, 0, 0 }, 474 { 475 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 476 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ }, 477 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 }, 478 }, 479 }, 480 481 /* SIIG Cyber 2S1P PCI 16C650 (20x family): 2S, 1P */ 482 { "SIIG Cyber 2S1P PCI 16C650 (20x family)", 483 { 0x131f, 0x2061, 0, 0 }, 484 { 0xffff, 0xffff, 0, 0 }, 485 { 486 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 487 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ }, 488 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 }, 489 }, 490 }, 491 492 /* SIIG Cyber 2S1P PCI 16C850 (20x family): 2S, 1P */ 493 { "SIIG Cyber 2S1P PCI 16C850 (20x family)", 494 { 0x131f, 0x2062, 0, 0 }, 495 { 0xffff, 0xffff, 0, 0 }, 496 { 497 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 498 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ }, 499 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 }, 500 }, 501 }, 502 503 /* SIIG Cyber 4S PCI 16C550 (20x family): 4S */ 504 { "SIIG Cyber 4S PCI 16C550 (20x family)", 505 { 0x131f, 0x2050, 0, 0 }, 506 { 0xffff, 0xffff, 0, 0 }, 507 { 508 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 509 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ }, 510 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, 511 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ }, 512 }, 513 }, 514 515 /* SIIG Cyber 4S PCI 16C650 (20x family): 4S */ 516 { "SIIG Cyber 4S PCI 16C650 (20x family)", 517 { 0x131f, 0x2051, 0, 0 }, 518 { 0xffff, 0xffff, 0, 0 }, 519 { 520 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 521 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ }, 522 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, 523 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ }, 524 }, 525 }, 526 527 /* SIIG Cyber 4S PCI 16C850 (20x family): 4S */ 528 { "SIIG Cyber 4S PCI 16C850 (20x family)", 529 { 0x131f, 0x2052, 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 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, 535 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ }, 536 }, 537 }, 538 539 /* VScom PCI-400: 4S */ 540 { "VScom PCI-400", 541 { 0x10b5, 0x1077, 0x10b5, 0x1077 }, 542 { 0xffff, 0xffff, 0xffff, 0xffff }, 543 { 544 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 }, 545 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 }, 546 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 }, 547 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 }, 548 }, 549 }, 550 551 /* VScom PCI-800: 8S */ 552 { "VScom PCI-800", 553 { 0x10b5, 0x1076, 0x10b5, 0x1076 }, 554 { 0xffff, 0xffff, 0xffff, 0xffff }, 555 { 556 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 }, 557 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 }, 558 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 }, 559 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 }, 560 { PUC_PORT_TYPE_COM, 0x18, 0x20, COM_FREQ * 8 }, 561 { PUC_PORT_TYPE_COM, 0x18, 0x28, COM_FREQ * 8 }, 562 { PUC_PORT_TYPE_COM, 0x18, 0x30, COM_FREQ * 8 }, 563 { PUC_PORT_TYPE_COM, 0x18, 0x38, COM_FREQ * 8 }, 564 }, 565 }, 566 /* 567 * VScom PCI-800H. Uses 8 16950 UART, behind a PCI chips that offers 568 * 4 com port on PCI device 0 and 4 on PCI device 1. PCI device 0 has 569 * device ID 3 and PCI device 1 device ID 4. 570 */ 571 { "Titan PCI-800H", 572 { 0x14d2, 0xa003, 0, 0 }, 573 { 0xffff, 0xffff, 0, 0 }, 574 { 575 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 }, 576 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8 }, 577 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 8 }, 578 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 8 }, 579 }, 580 }, 581 { "Titan PCI-800H", 582 { 0x14d2, 0xa004, 0, 0 }, 583 { 0xffff, 0xffff, 0, 0 }, 584 { 585 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 }, 586 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8 }, 587 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 8 }, 588 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 8 }, 589 }, 590 }, 591 { "Titan PCI-200H", 592 { 0x14d2, 0xa005, 0, 0 }, 593 { 0xffff, 0xffff, 0, 0 }, 594 { 595 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 }, 596 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8 }, 597 }, 598 }, 599 600 /* NEC PK-UG-X001 K56flex PCI Modem card. 601 NEC MARTH bridge chip and Rockwell RCVDL56ACF/SP using. */ 602 { "NEC PK-UG-X001 K56flex PCI Modem", 603 { 0x1033, 0x0074, 0x1033, 0x8014 }, 604 { 0xffff, 0xffff, 0xffff, 0xffff }, 605 { 606 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 607 }, 608 }, 609 610 /* NEC PK-UG-X008 */ 611 { "NEC PK-UG-X008", 612 { 0x1033, 0x007d, 0x1033, 0x8012 }, 613 { 0xffff, 0xffff, 0xffff, 0xffff }, 614 { 615 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ}, 616 }, 617 }, 618 619 /* Lava Computers 2SP-PCI */ 620 { "Lava Computers 2SP-PCI parallel port", 621 { 0x1407, 0x8000, 0, 0 }, 622 { 0xffff, 0xffff, 0, 0 }, 623 { 624 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 }, 625 }, 626 }, 627 628 /* Lava Computers 2SP-PCI and Quattro-PCI serial ports */ 629 { "Lava Computers dual serial port", 630 { 0x1407, 0x0100, 0, 0 }, 631 { 0xffff, 0xfffc, 0, 0 }, 632 { 633 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 634 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ }, 635 }, 636 }, 637 638 /* Lava Computers newer Quattro-PCI serial ports */ 639 { "Lava Computers Quattro-PCI serial port", 640 { 0x1407, 0x0120, 0, 0 }, 641 { 0xffff, 0xfffc, 0, 0 }, 642 { 643 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 644 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ }, 645 }, 646 }, 647 648 /* Lava Computers DSerial PCI serial ports */ 649 { "Lava Computers serial port", 650 { 0x1407, 0x0110, 0, 0 }, 651 { 0xffff, 0xfffc, 0, 0 }, 652 { 653 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 654 }, 655 }, 656 657 /* Lava Computers Octopus-550 serial ports */ 658 { "Lava Computers Octopus-550 8-port serial", 659 { 0x1407, 0x0180, 0, 0 }, 660 { 0xffff, 0xfffc, 0, 0 }, 661 { 662 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 663 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ }, 664 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, 665 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ }, 666 }, 667 }, 668 669 /* US Robotics (3Com) PCI Modems */ 670 { "US Robotics (3Com) 3CP5609 PCI 16550 Modem", 671 { 0x12b9, 0x1008, 0, 0 }, 672 { 0xffff, 0xffff, 0, 0 }, 673 { 674 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 675 }, 676 }, 677 678 /* Actiontec 56K PCI Master */ 679 { "Actiontec 56K PCI Master", 680 { 0x11c1, 0x0480, 0x0, 0x0 }, 681 { 0xffff, 0xffff, 0x0, 0x0 }, 682 { 683 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ }, 684 }, 685 }, 686 687 /* 688 * Boards with an Oxford Semiconductor chip. 689 * 690 * Oxford Semiconductor provides documentation for their chip at: 691 * <URL:http://www.oxsemi.com/products/uarts/index.html> 692 * 693 * As sold by Kouwell <URL:http://www.kouwell.com/>. 694 * I/O Flex PCI I/O Card Model-223 with 4 serial and 1 parallel ports. 695 */ 696 697 /* Oxford Semiconductor OX16PCI954 PCI UARTs */ 698 { "Qxford Semiconductor OX16PCI954 UARTs", 699 { 0x1415, 0x9501, 0, 0 }, 700 { 0xffff, 0xffff, 0, 0 }, 701 { 702 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 703 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ }, 704 { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ }, 705 { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ }, 706 }, 707 }, 708 709 /* Oxford Semiconductor OX16PCI954 PCI Parallel port */ 710 { "Qxford Semiconductor OX16PCI954 Parallel port", 711 { 0x1415, 0x9513, 0, 0 }, 712 { 0xffff, 0xffff, 0, 0 }, 713 { 714 { PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 }, 715 }, 716 }, 717 718 /* NetMos 2S1P PCI 16C650 : 2S, 1P */ 719 { "NetMos NM9835 Dual UART and 1284 Printer port", 720 { 0x9710, 0x9835, 0, 0 }, 721 { 0xffff, 0xffff, 0, 0 }, 722 { 723 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 724 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ }, 725 { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 }, 726 }, 727 }, 728 729 /* 730 * This is the Middle Digital, Inc. PCI-Weasel, which 731 * uses a PCI interface implemented in FPGA. 732 */ 733 { "Middle Digital, Inc. Weasel serial port", 734 { 0xdeaf, 0x9051, 0, 0 }, 735 { 0xffff, 0xffff, 0, 0 }, 736 { 737 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 738 }, 739 }, 740 741 /* SD-LAB PCI I/O Card 4S2P */ 742 { "Syba Tech Ltd. PCI-4S2P-550-ECP", 743 { 0x1592, 0x0781, 0, 0 }, 744 { 0xffff, 0xffff, 0, 0 }, 745 { 746 { PUC_PORT_TYPE_COM, 0x10, 0x2e8, COM_FREQ }, 747 { PUC_PORT_TYPE_COM, 0x10, 0x2f8, COM_FREQ }, 748 { PUC_PORT_TYPE_LPT, 0x10, 0x000, 0x00 }, 749 { PUC_PORT_TYPE_COM, 0x10, 0x3e8, COM_FREQ }, 750 { PUC_PORT_TYPE_COM, 0x10, 0x3f8, COM_FREQ }, 751 { PUC_PORT_TYPE_LPT, 0x10, 0x000, 0x00 }, 752 }, 753 }, 754 755 /* Moxa Technologies Co., Ltd. PCI I/O Card 4S RS232/422/485 */ 756 { "Moxa Technologies, Industio CP-114", 757 { 0x1393, 0x1141, 0, 0 }, 758 { 0xffff, 0xffff, 0, 0, }, 759 { 760 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 }, 761 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 }, 762 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 }, 763 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 }, 764 }, 765 }, 766 767 /* Moxa Technologies Co., Ltd. PCI I/O Card 8S RS232 */ 768 { "Moxa Technologies, C168H/PCI", 769 { 0x1393, 0x1680, 0, 0 }, 770 { 0xffff, 0xffff, 0, 0, }, 771 { 772 { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 }, 773 { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 }, 774 { PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 }, 775 { PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 }, 776 { PUC_PORT_TYPE_COM, 0x18, 0x20, COM_FREQ * 8 }, 777 { PUC_PORT_TYPE_COM, 0x18, 0x28, COM_FREQ * 8 }, 778 { PUC_PORT_TYPE_COM, 0x18, 0x30, COM_FREQ * 8 }, 779 { PUC_PORT_TYPE_COM, 0x18, 0x38, COM_FREQ * 8 }, 780 }, 781 }, 782 783 { "Avlab Technology, PCI IO 2S", 784 { 0x14db, 0x2130, 0, 0 }, 785 { 0xffff, 0xffff, 0, 0 }, 786 { 787 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, 788 { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ }, 789 }, 790 }, 791 792 /* Decision Computer Inc, serial ports */ 793 { "Decision Computer Inc, PCCOM 4-port serial", 794 { 0x6666, 0x0001, 0, 0 }, 795 { 0xffff, 0xffff, 0, 0 }, 796 { 797 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ }, 798 { PUC_PORT_TYPE_COM, 0x1c, 0x08, COM_FREQ }, 799 { PUC_PORT_TYPE_COM, 0x1c, 0x10, COM_FREQ }, 800 { PUC_PORT_TYPE_COM, 0x1c, 0x18, COM_FREQ }, 801 }, 802 }, 803 804 { "PCCOM dual port RS232/422/485", 805 { 0x6666, 0x0004, 0, 0 }, 806 { 0xffff, 0xffff, 0, 0 }, 807 { 808 { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ }, 809 { PUC_PORT_TYPE_COM, 0x1c, 0x08, COM_FREQ }, 810 }, 811 }, 812 813 { 0 } 814}; 815