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