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