1/*	$NetBSD: pucdata.c,v 1.76 2011/08/09 21:04:05 dyoung 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.76 2011/08/09 21:04:05 dyoung Exp $");
40
41#include <sys/param.h>
42#include <sys/systm.h>
43#include <sys/device.h>
44
45#include <dev/pci/pcidevs.h>
46#include <dev/pci/pcireg.h>
47#include <dev/pci/pcivar.h>
48#include <dev/pci/pucvar.h>
49#include <dev/ic/comreg.h>
50
51const struct puc_device_description puc_devices[] = {
52	/*
53	 * Advantech multi serial cards
54	 */
55	/* Advantech PCI-1604UP 2 UARTs based on OX16PCI952 */
56	{   "Advantech PCI-1604UP UARTs",
57	    {	PCI_VENDOR_ADVANTECH,	PCI_PRODUCT_ADVANTECH_PCI1604, 0, 0 },
58	    {	0xffff,	0xffff,	0x0,	0x0 },
59	    {
60		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 },
61		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ * 8 },
62	    },
63	},
64
65	{   "Advantech PCI-1610 UARTs",
66	    {	PCI_VENDOR_ADVANTECH,	PCI_PRODUCT_ADVANTECH_PCI1600,
67		PCI_PRODUCT_ADVANTECH_PCI1610,	0x0 },
68	    {	0xffff,	0xffff,	0xffff,	0x0 },
69	    {
70		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 },
71		{ PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8 },
72		{ PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 8 },
73		{ PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 8 },
74	    },
75	},
76
77	{   "Advantech PCI-1612 UARTs",
78	    {	PCI_VENDOR_ADVANTECH,	PCI_PRODUCT_ADVANTECH_PCI1600,
79		PCI_PRODUCT_ADVANTECH_PCI1612,	0x0 },
80	    {	0xffff,	0xffff,	0xffff,	0x0 },
81	    {
82		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 },
83		{ PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8 },
84		{ PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 8 },
85		{ PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 8 },
86	    },
87	},
88
89	/* The use of subvendor ID is bit strange... */
90	{   "Advantech PCI-1620 (1-4) UARTs",
91	    {	PCI_VENDOR_ADVANTECH,	PCI_PRODUCT_ADVANTECH_PCI1600,
92		PCI_PRODUCT_ADVANTECH_PCI1620,	0x0 },
93	    {	0xffff,	0xffff,	0xffff,	0x0 },
94	    {
95		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 },
96		{ PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8 },
97		{ PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 8 },
98		{ PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 8 },
99	    },
100	},
101
102	/* The use of subvendor ID is bit strange... */
103	{   "Advantech PCI-1620 (5-8) UARTs",
104	    {	PCI_VENDOR_ADVANTECH,	PCI_PRODUCT_ADVANTECH_PCI1620_1,
105		PCI_PRODUCT_ADVANTECH_PCI1620,	0x0 },
106	    {	0xffff,	0xffff,	0xffff,	0x0 },
107	    {
108		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 2 },
109		{ PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 2 },
110		{ PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 2 },
111		{ PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 2 },
112	    },
113	},
114
115	/*
116	 * Addi-Data APCI-7800 8-port serial card.
117	 * Uses an AMCC chip as PCI bridge.
118	 */
119	{   "Addi-Data APCI-7800",
120	    {   PCI_VENDOR_AMCIRCUITS, PCI_PRODUCT_AMCIRCUITS_ADDI7800, 0, 0  },
121	    {   0xffff, 0xffff, 0, 0  },
122	    {
123		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
124		{ PUC_PORT_TYPE_COM, 0x14, 0x08, COM_FREQ },
125		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
126		{ PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ },
127		{ PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
128		{ PUC_PORT_TYPE_COM, 0x1c, 0x08, COM_FREQ },
129		{ PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ },
130		{ PUC_PORT_TYPE_COM, 0x20, 0x08, COM_FREQ },
131	    },
132	},
133
134	/* Avlab Technology, Inc. PCI 2 Serial: 2S */
135	{   "Avlab PCI 2 Serial",
136	    {	PCI_VENDOR_AVLAB, PCI_PRODUCT_AVLAB_PCI2S,	0, 0  },
137	    {	0xffff,	0xffff,					0, 0  },
138	    {
139		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
140		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
141	    },
142	},
143
144	/* Avlab Technology, Inc. Low Profile PCI 4 Serial: 4S */
145	{   "Avlab Low Profile PCI 4 Serial",
146	    {	PCI_VENDOR_AVLAB, PCI_PRODUCT_AVLAB_LPPCI4S,	0, 0 },
147	    {	0xffff,	0xffff,	0,	0	},
148	    {
149		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
150		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
151		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
152		{ PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
153	    },
154	},
155
156	/* Avlab Technology, Inc. Low Profile PCI 4 Serial: 4S */
157	{   "Avlab Low Profile PCI 4 Serial",
158	    {	PCI_VENDOR_AVLAB, PCI_PRODUCT_AVLAB_LPPCI4S_2,	0, 0  },
159	    {	0xffff,	0xffff,					0, 0  },
160	    {
161		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
162		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
163		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
164		{ PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
165	    },
166	},
167
168	/*
169	 * B&B Electronics MIPort Serial cards.
170	 */
171	{   "BBELEC ISOLATED_2_PORT",
172	    {	PCI_VENDOR_BBELEC, PCI_PRODUCT_BBELEC_ISOLATED_2_PORT, 0, 0 },
173	    {	0xffff, 0xffff, 0,	0	},
174	    {
175		{ PUC_PORT_TYPE_COM, 0x10, 0x0000, COM_FREQ * 8 },
176		{ PUC_PORT_TYPE_COM, 0x10, 0x0200, COM_FREQ * 8 },
177	    },
178	},
179	{   "BBELEC ISOLATED_4_PORT",
180	    {	PCI_VENDOR_BBELEC, PCI_PRODUCT_BBELEC_ISOLATED_4_PORT, 0, 0 },
181	    {	0xffff, 0xffff, 0,	0	},
182	    {
183		{ PUC_PORT_TYPE_COM, 0x10, 0x0000, COM_FREQ * 8 },
184		{ PUC_PORT_TYPE_COM, 0x10, 0x0200, COM_FREQ * 8 },
185		{ PUC_PORT_TYPE_COM, 0x10, 0x0400, COM_FREQ * 8 },
186		{ PUC_PORT_TYPE_COM, 0x10, 0x0600, COM_FREQ * 8 },
187	    },
188	},
189	{   "BBELEC ISOLATED_8_PORT",
190	    {	PCI_VENDOR_BBELEC, PCI_PRODUCT_BBELEC_ISOLATED_8_PORT, 0, 0 },
191	    {	0xffff, 0xffff, 0,	0	},
192	    {
193		{ PUC_PORT_TYPE_COM, 0x10, 0x0000, COM_FREQ * 8 },
194		{ PUC_PORT_TYPE_COM, 0x10, 0x0200, COM_FREQ * 8 },
195		{ PUC_PORT_TYPE_COM, 0x10, 0x0400, COM_FREQ * 8 },
196		{ PUC_PORT_TYPE_COM, 0x10, 0x0600, COM_FREQ * 8 },
197		{ PUC_PORT_TYPE_COM, 0x10, 0x0800, COM_FREQ * 8 },
198		{ PUC_PORT_TYPE_COM, 0x10, 0x0a00, COM_FREQ * 8 },
199		{ PUC_PORT_TYPE_COM, 0x10, 0x0c00, COM_FREQ * 8 },
200		{ PUC_PORT_TYPE_COM, 0x10, 0x0e00, COM_FREQ * 8 },
201	    },
202	},
203
204	/*
205	 * Comtrol
206	 */
207	{   "Comtrol RocketPort 550/8 RJ11 part A",
208	    {	PCI_VENDOR_COMTROL, PCI_PRODUCT_COMTROL_ROCKETPORT550811A,
209		0, 0 },
210	    {	0xffff,	0xffff,	0,	0 },
211	    {
212		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 4},
213		{ PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 4},
214		{ PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 4},
215		{ PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 4},
216	    },
217	},
218	{   "Comtrol RocketPort 550/8 RJ11 part B",
219	    {	PCI_VENDOR_COMTROL, PCI_PRODUCT_COMTROL_ROCKETPORT550811B,
220		0, 0 },
221	    {	0xffff,	0xffff,	0,	0 },
222	    {
223		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 4},
224		{ PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 4},
225		{ PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 4},
226		{ PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 4},
227	    },
228	},
229	{   "Comtrol RocketPort 550/8 Octa part A",
230	    {	PCI_VENDOR_COMTROL, PCI_PRODUCT_COMTROL_ROCKETPORT5508OA,
231		0, 0 },
232	    {	0xffff,	0xffff,	0,	0 },
233	    {
234		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 4},
235		{ PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 4},
236		{ PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 4},
237		{ PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 4},
238	    },
239	},
240	{   "Comtrol RocketPort 550/8 Octa part B",
241	    {	PCI_VENDOR_COMTROL, PCI_PRODUCT_COMTROL_ROCKETPORT5508OB,
242		0, 0 },
243	    {	0xffff,	0xffff,	0,	0 },
244	    {
245		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 4},
246		{ PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 4},
247		{ PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 4},
248		{ PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 4},
249	    },
250	},
251	{   "Comtrol RocketPort 550/4 RJ45",
252	    {	PCI_VENDOR_COMTROL, PCI_PRODUCT_COMTROL_ROCKETPORT5504, 0, 0 },
253	    {	0xffff,	0xffff,	0,	0 },
254	    {
255		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 4},
256		{ PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 4},
257		{ PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 4},
258		{ PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 4},
259	    },
260	},
261	{   "Comtrol RocketPort 550/Quad",
262	    {	PCI_VENDOR_COMTROL, PCI_PRODUCT_COMTROL_ROCKETPORT550Q, 0, 0 },
263	    {	0xffff,	0xffff,	0,	0 },
264	    {
265		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 4},
266		{ PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 4},
267		{ PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 4},
268		{ PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 4},
269	    },
270	},
271	{   "Comtrol RocketPort 550/16 part A",
272	    {	PCI_VENDOR_COMTROL, PCI_PRODUCT_COMTROL_ROCKETPORT55016A,
273		0, 0 },
274	    {	0xffff,	0xffff,	0,	0 },
275	    {
276		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 4},
277		{ PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 4},
278		{ PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 4},
279		{ PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 4},
280	    },
281	},
282	{   "Comtrol RocketPort 550/16 part B",
283	    {	PCI_VENDOR_COMTROL, PCI_PRODUCT_COMTROL_ROCKETPORT55016B,
284		0, 0 },
285	    {	0xffff,	0xffff,	0,	0 },
286	    {
287		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 4},
288		{ PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 4},
289		{ PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 4},
290		{ PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 4},
291		{ PUC_PORT_TYPE_COM, 0x10, 0x20, COM_FREQ * 4},
292		{ PUC_PORT_TYPE_COM, 0x10, 0x28, COM_FREQ * 4},
293		{ PUC_PORT_TYPE_COM, 0x10, 0x30, COM_FREQ * 4},
294		{ PUC_PORT_TYPE_COM, 0x10, 0x38, COM_FREQ * 4},
295		{ PUC_PORT_TYPE_COM, 0x10, 0x40, COM_FREQ * 4},
296		{ PUC_PORT_TYPE_COM, 0x10, 0x48, COM_FREQ * 4},
297		{ PUC_PORT_TYPE_COM, 0x10, 0x50, COM_FREQ * 4},
298		{ PUC_PORT_TYPE_COM, 0x10, 0x58, COM_FREQ * 4},
299	    },
300	},
301	{   "Comtrol RocketPort 550/8 part A",
302	    {	PCI_VENDOR_COMTROL, PCI_PRODUCT_COMTROL_ROCKETPORT5508A,
303		0, 0 },
304	    {	0xffff,	0xffff,	0,	0 },
305	    {
306		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 4},
307		{ PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 4},
308		{ PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 4},
309		{ PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 4},
310	    },
311	},
312	{   "Comtrol RocketPort 550/8 part B",
313	    {	PCI_VENDOR_COMTROL, PCI_PRODUCT_COMTROL_ROCKETPORT5508B,
314		0, 0 },
315	    {	0xffff,	0xffff,	0,	0 },
316	    {
317		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 4},
318		{ PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 4},
319		{ PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 4},
320		{ PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 4},
321	    },
322	},
323
324	/*
325	 * Decision PCCOM PCI series. PLX 9052 with 1 or 2 16554 UARTS
326	 */
327	/* Decision Computer Inc PCCOM 2 Port RS232/422/485: 2S */
328	{   "Decision Computer Inc PCCOM 2 Port RS232/422/485",
329	    {	PCI_VENDOR_DCI,	PCI_PRODUCT_DCI_APCI2,	0x0,	0x0	},
330	    {	0xffff,	0xffff,	0x0,	0x0	},
331	    {
332		{ PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ},
333		{ PUC_PORT_TYPE_COM, 0x1c, 0x08, COM_FREQ},
334	    },
335	},
336
337	/* Decision Computer Inc PCCOM 4 Port RS232/422/485: 4S */
338	{   "Decision Computer Inc PCCOM 4 Port RS232/422/485",
339	    {	PCI_VENDOR_DCI,	PCI_PRODUCT_DCI_APCI4,	0x0,	0x0	},
340	    {	0xffff,	0xffff,	0x0,	0x0	},
341	    {
342		{ PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ},
343		{ PUC_PORT_TYPE_COM, 0x1c, 0x08, COM_FREQ},
344		{ PUC_PORT_TYPE_COM, 0x1c, 0x10, COM_FREQ},
345		{ PUC_PORT_TYPE_COM, 0x1c, 0x18, COM_FREQ},
346	    },
347	},
348
349	/* Decision Computer Inc PCCOM 8 Port RS232/422/485: 8S */
350	{   "Decision Computer Inc PCCOM 8 Port RS232/422/485",
351	    {	PCI_VENDOR_DCI,	PCI_PRODUCT_DCI_APCI8,	0x0,	0x0	},
352	    {	0xffff,	0xffff,	0x0,	0x0	},
353	    {
354		{ PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ},
355		{ PUC_PORT_TYPE_COM, 0x1c, 0x08, COM_FREQ},
356		{ PUC_PORT_TYPE_COM, 0x1c, 0x10, COM_FREQ},
357		{ PUC_PORT_TYPE_COM, 0x1c, 0x18, COM_FREQ},
358		{ PUC_PORT_TYPE_COM, 0x1c, 0x20, COM_FREQ},
359		{ PUC_PORT_TYPE_COM, 0x1c, 0x28, COM_FREQ},
360		{ PUC_PORT_TYPE_COM, 0x1c, 0x30, COM_FREQ},
361		{ PUC_PORT_TYPE_COM, 0x1c, 0x38, COM_FREQ},
362	    },
363	},
364
365	/* Digi International Digi Neo 4 Serial */
366	{   "Digi International Digi Neo 4 Serial",
367	    {	PCI_VENDOR_DIGI, PCI_PRODUCT_DIGI_NEO4,		0, 0  },
368	    {	0xffff, 0xffff,					0, 0  },
369	    {
370		{ PUC_PORT_TYPE_COM, 0x10, 0x0000, COM_FREQ * 8 },
371		{ PUC_PORT_TYPE_COM, 0x10, 0x0200, COM_FREQ * 8 },
372		{ PUC_PORT_TYPE_COM, 0x10, 0x0400, COM_FREQ * 8 },
373		{ PUC_PORT_TYPE_COM, 0x10, 0x0600, COM_FREQ * 8 },
374	    },
375	},
376
377	/* Digi International Digi Neo 8 Serial */
378	{   "Digi International Digi Neo 8 Serial",
379	    {	PCI_VENDOR_DIGI, PCI_PRODUCT_DIGI_NEO8,		0, 0  },
380	    {	0xffff, 0xffff,					0, 0  },
381	    {
382		{ PUC_PORT_TYPE_COM, 0x10, 0x0000, COM_FREQ * 8 },
383		{ PUC_PORT_TYPE_COM, 0x10, 0x0200, COM_FREQ * 8 },
384		{ PUC_PORT_TYPE_COM, 0x10, 0x0400, COM_FREQ * 8 },
385		{ PUC_PORT_TYPE_COM, 0x10, 0x0600, COM_FREQ * 8 },
386		{ PUC_PORT_TYPE_COM, 0x10, 0x0800, COM_FREQ * 8 },
387		{ PUC_PORT_TYPE_COM, 0x10, 0x0a00, COM_FREQ * 8 },
388		{ PUC_PORT_TYPE_COM, 0x10, 0x0c00, COM_FREQ * 8 },
389		{ PUC_PORT_TYPE_COM, 0x10, 0x0e00, COM_FREQ * 8 },
390	    },
391	},
392
393	{   "EXAR XR17D152",
394	    {   PCI_VENDOR_EXAR, PCI_PRODUCT_EXAR_XR17D152, 0,      0       },
395	    {   0xffff, 0xffff, 0,      0       },
396	    {
397		{ PUC_PORT_TYPE_COM, 0x10, 0x0000, COM_FREQ * 8 },
398		{ PUC_PORT_TYPE_COM, 0x10, 0x0200, COM_FREQ * 8 },
399	    },
400	},
401	{   "EXAR XR17D154",
402	    {   PCI_VENDOR_EXAR, PCI_PRODUCT_EXAR_XR17D154, 0,      0       },
403	    {   0xffff, 0xffff, 0,      0       },
404	    {
405		{ PUC_PORT_TYPE_COM, 0x10, 0x0000, COM_FREQ * 8 },
406		{ PUC_PORT_TYPE_COM, 0x10, 0x0200, COM_FREQ * 8 },
407		{ PUC_PORT_TYPE_COM, 0x10, 0x0400, COM_FREQ * 8 },
408		{ PUC_PORT_TYPE_COM, 0x10, 0x0600, COM_FREQ * 8 },
409	    },
410	},
411
412	/*
413	 * Multi-Tech ISI5634PCI/4 4-port modem board.
414	 * Has a 4-channel Exar XR17C154 UART, but with bogus product ID in its
415	 * config EEPROM.
416	 */
417	{   "Multi-Tech ISI5634PCI/4",
418	    {   PCI_VENDOR_EXAR, PCI_PRODUCT_EXAR_XR17D158, 0x2205,      0x2003       },
419	    {   0xffff, 0xffff, 0xffff,      0xffff       },
420	    {
421		{ PUC_PORT_TYPE_COM, 0x10, 0x0000, COM_FREQ * 8 },
422		{ PUC_PORT_TYPE_COM, 0x10, 0x0200, COM_FREQ * 8 },
423		{ PUC_PORT_TYPE_COM, 0x10, 0x0400, COM_FREQ * 8 },
424		{ PUC_PORT_TYPE_COM, 0x10, 0x0600, COM_FREQ * 8 },
425	    },
426	},
427
428	{   "EXAR XR17D158",
429	    {   PCI_VENDOR_EXAR, PCI_PRODUCT_EXAR_XR17D158, 0,      0       },
430	    {   0xffff, 0xffff, 0,      0       },
431	    {
432		{ PUC_PORT_TYPE_COM, 0x10, 0x0000, COM_FREQ * 8 },
433		{ PUC_PORT_TYPE_COM, 0x10, 0x0200, COM_FREQ * 8 },
434		{ PUC_PORT_TYPE_COM, 0x10, 0x0400, COM_FREQ * 8 },
435		{ PUC_PORT_TYPE_COM, 0x10, 0x0600, COM_FREQ * 8 },
436		{ PUC_PORT_TYPE_COM, 0x10, 0x0800, COM_FREQ * 8 },
437		{ PUC_PORT_TYPE_COM, 0x10, 0x0a00, COM_FREQ * 8 },
438		{ PUC_PORT_TYPE_COM, 0x10, 0x0c00, COM_FREQ * 8 },
439		{ PUC_PORT_TYPE_COM, 0x10, 0x0e00, COM_FREQ * 8 },
440	    },
441	},
442
443	/* IBM SurePOS 300 Series (481033H) serial ports */
444	{   "IBM SurePOS 300 Series (481033H)",
445	    {   PCI_VENDOR_IBM, PCI_PRODUCT_IBM_4810_SCC, 0, 0 },
446	    {   0xffff, 0xffff,                           0, 0 },
447	    {
448		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, /* Port C */
449		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, /* Port D */
450		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ }, /* Port E */
451		{ PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ }, /* Port F */
452	    },
453	},
454
455	/* I-O DATA RSA-PCI: 2S */
456	{   "I-O DATA RSA-PCI 2-port serial",
457	    {	PCI_VENDOR_IODATA, PCI_PRODUCT_IODATA_RSAPCI, 0, 0 },
458	    {	0xffff, 0xffff, 0, 0 },
459	    {
460		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
461		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
462	    },
463	},
464
465	/* Lava Computers 2SP-PCI */
466	{   "Lava Computers 2SP-PCI parallel port",
467	    {	PCI_VENDOR_LAVA,	PCI_PRODUCT_LAVA_TWOSP_1P, 0, 0 },
468	    {	0xffff,	0xffff,	0,	0	},
469	    {
470		{ PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
471	    },
472	},
473
474	/* Lava Computers 2SP-PCI and Quattro-PCI serial ports */
475	{   "Lava Computers dual serial port",
476	    {	PCI_VENDOR_LAVA,	PCI_PRODUCT_LAVA_TWOSP_2S, 0, 0 },
477	    {	0xffff,	0xfffc,	0,	0	},
478	    {
479		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
480		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
481	    },
482	},
483
484	/* Lava Computers 2SP-PCI and Quattro-PCI serial ports */
485	{   "Lava Computers Quattro A",
486	    {	PCI_VENDOR_LAVA,	PCI_PRODUCT_LAVA_QUATTRO_AB, 0, 0 },
487	    {	0xffff,	0xfffc,	0,	0	},
488	    {
489		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
490		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
491	    },
492	},
493
494	/* Lava Computers 2SP-PCI and Quattro-PCI serial ports */
495	{   "Lava Computers Quattro B",
496	    {	PCI_VENDOR_LAVA,	PCI_PRODUCT_LAVA_QUATTRO_CD, 0, 0 },
497	    {	0xffff,	0xfffc,	0,	0	},
498	    {
499		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
500		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
501	    },
502	},
503
504	/* Lava Computers DSerial PCI serial ports */
505	{   "Lava Computers serial port",
506	    {	PCI_VENDOR_LAVA,	PCI_PRODUCT_LAVA_IOFLEX_2S_0, 0, 0 },
507	    {	0xffff,	0xfffc,	0,	0	},
508	    {
509		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
510	    },
511	},
512
513	/* Lava Computers Quattro-PCI serial ports */
514	{   "Lava Quattro-PCI A 4-port serial",
515	    {   PCI_VENDOR_LAVA, PCI_PRODUCT_LAVA_QUATTRO_AB2, 0, 0 },
516	    {   0xffff, 0xfffc, 0,	0	},
517	    {
518		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
519		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
520	    },
521	},
522
523	/* Lava Computers Quattro-PCI serial ports */
524	{   "Lava Quattro-PCI B 4-port serial",
525	    {   PCI_VENDOR_LAVA, PCI_PRODUCT_LAVA_QUATTRO_CD2, 0, 0 },
526	    {   0xffff, 0xfffc, 0,	0	},
527	    {
528		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
529		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
530	    },
531	},
532
533	/* Lava Computers Octopus-550 serial ports */
534	{   "Lava Computers Octopus-550 8-port serial",
535	    {	PCI_VENDOR_LAVA,	PCI_PRODUCT_LAVA_OCTOPUS550_0, 0, 0 },
536	    {	0xffff,	0xfffc,	0,	0	},
537	    {
538		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
539		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
540		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
541		{ PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
542	    },
543	},
544
545	/* Lava Computers Octopus-550 serial ports */
546	{   "Lava Computers Octopus-550 B 8-port serial",
547	    {	PCI_VENDOR_LAVA,	PCI_PRODUCT_LAVA_OCTOPUS550_1, 0, 0 },
548	    {	0xffff,	0xfffc,	0,	0	},
549	    {
550		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
551		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
552		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
553		{ PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
554	    },
555	},
556
557	/* Lava Computers single port serial PCI card */
558	{   "Lava Computers SSERIAL-PCI",
559	    {	PCI_VENDOR_LAVA,	PCI_PRODUCT_LAVA_SSERIAL, 0, 0 },
560	    {	0xffff,	0xffff,	0,	0	},
561	    {
562		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
563	    },
564	},
565
566	/* Actiontec  56K PCI Master */
567	{   "Actiontec 56K PCI Master",
568	    {	PCI_VENDOR_LUCENT,	PCI_PRODUCT_LUCENT_VENUSMODEM,
569		0x0, 0x0 },
570	    {	0xffff,	0xffff,	0x0,	0x0	},
571	    {
572		{ PUC_PORT_TYPE_COM,	0x14,	0x00, COM_FREQ },
573	    },
574	},
575
576	/*
577	 * This is the Middle Digital, Inc. PCI-Weasel, which
578	 * uses a PCI interface implemented in FPGA.
579	 */
580	{   "Middle Digital, Inc. Weasel serial port",
581	    {	PCI_VENDOR_MIDDLE_DIGITAL,
582		PCI_PRODUCT_MIDDLE_DIGITAL_WEASEL_SERIAL, 0, 0 },
583	    {	0xffff,	0xffff,	0,	0	},
584	    {
585		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
586	    },
587	},
588
589	/* Moxa Technologies Co., Ltd. PCI I/O Card 2S RS232 */
590	{   "Moxa Technologies, SmartIO CP-102/PCI",
591	    {	PCI_VENDOR_MOXA,	PCI_PRODUCT_MOXA_CP102U, 0, 0 },
592	    {	0xffff,	0xffff,	0,	0	},
593	    {
594		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
595		{ PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 },
596	    },
597	},
598
599	/* Moxa Technologies Co., Ltd. PCI I/O Card 4S RS232/422/485 */
600	{   "Moxa Technologies, SmartIO C104H/PCI",
601	    {	PCI_VENDOR_MOXA,	PCI_PRODUCT_MOXA_C104H, 0, 0 },
602	    {	0xffff,	0xffff,	0,	0	},
603	    {
604		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
605		{ PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 },
606		{ PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 },
607		{ PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 },
608	    },
609	},
610
611	/* Moxa Technologies Co., Ltd. PCI I/O Card 4S RS232 */
612	{   "Moxa Technologies, SmartIO CP-104/PCI",
613	    {	PCI_VENDOR_MOXA,	PCI_PRODUCT_MOXA_CP104, 0, 0 },
614	    {	0xffff,	0xffff,	0,	0	},
615	    {
616		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
617		{ PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 },
618		{ PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 },
619		{ PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 },
620	    },
621	},
622
623	/* Moxa Technologies Co., Ltd. PCI I/O Card 4S RS232 */
624	{   "Moxa Technologies, SmartIO CP-104-V2/PCI",
625	    {	PCI_VENDOR_MOXA,	PCI_PRODUCT_MOXA_CP104V2, 0, 0 },
626	    {	0xffff,	0xffff,	0,	0	},
627	    {
628		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
629		{ PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 },
630		{ PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 },
631		{ PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 },
632	    },
633	},
634
635	/* Moxa Technologies Co., Ltd. PCI I/O Card 4S RS232 */
636	{   "Moxa Technologies, SmartIO CP-104-EL/PCIe",
637	    {	PCI_VENDOR_MOXA,	PCI_PRODUCT_MOXA_CP104EL, 0, 0 },
638	    {	0xffff,	0xffff,	0,	0	},
639	    {
640		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
641		{ PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 },
642		{ PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 },
643		{ PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 },
644	    },
645	},
646
647	/* Moxa Technologies Co., Ltd. PCI I/O Card 4S RS232/422/485 */
648	{   "Moxa Technologies, SmartIO CP-114/PCI",
649	    {	PCI_VENDOR_MOXA,	PCI_PRODUCT_MOXA_CP114, 0, 0 },
650	    {	0xffff,	0xffff,	0,	0	},
651	    {
652		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
653		{ PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 },
654		{ PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 },
655		{ PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 },
656	    },
657	},
658
659	/* Moxa Technologies Co., Ltd. PCI I/O Card 8S RS232 */
660	{   "Moxa Technologies, SmartIO C168H/PCI",
661	    {	PCI_VENDOR_MOXA,	PCI_PRODUCT_MOXA_C168H, 0, 0 },
662	    {	0xffff,	0xffff,	0,	0	},
663	    {
664		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
665		{ PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 },
666		{ PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 },
667		{ PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 },
668		{ PUC_PORT_TYPE_COM, 0x18, 0x20, COM_FREQ * 8 },
669		{ PUC_PORT_TYPE_COM, 0x18, 0x28, COM_FREQ * 8 },
670		{ PUC_PORT_TYPE_COM, 0x18, 0x30, COM_FREQ * 8 },
671		{ PUC_PORT_TYPE_COM, 0x18, 0x38, COM_FREQ * 8 },
672	    },
673	},
674
675	/* Moxa Technologies Co., Ltd. PCI I/O Card 8S RS232 */
676	{   "Moxa Technologies, SmartIO C168U/PCI",
677	    {	PCI_VENDOR_MOXA,	PCI_PRODUCT_MOXA_C168U, 0, 0 },
678	    {	0xffff,	0xffff,	0,	0	},
679	    {
680		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
681		{ PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 },
682		{ PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 },
683		{ PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 },
684		{ PUC_PORT_TYPE_COM, 0x18, 0x20, COM_FREQ * 8 },
685		{ PUC_PORT_TYPE_COM, 0x18, 0x28, COM_FREQ * 8 },
686		{ PUC_PORT_TYPE_COM, 0x18, 0x30, COM_FREQ * 8 },
687		{ PUC_PORT_TYPE_COM, 0x18, 0x38, COM_FREQ * 8 },
688	    },
689	},
690
691	/* Moxa Technologies Co., Ltd. PCI-Express I/O Card 8S RS232 */
692	{   "Moxa Technologies, SmartIO C168EL/PCIe",
693	    {	PCI_VENDOR_MOXA,	PCI_PRODUCT_MOXA_C168EL, 0, 0 },
694	    {	0xffff,	0xffff,	0,	0	},
695	    {
696		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
697		{ PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 },
698		{ PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 },
699		{ PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 },
700		{ PUC_PORT_TYPE_COM, 0x18, 0x20, COM_FREQ * 8 },
701		{ PUC_PORT_TYPE_COM, 0x18, 0x28, COM_FREQ * 8 },
702		{ PUC_PORT_TYPE_COM, 0x18, 0x30, COM_FREQ * 8 },
703		{ PUC_PORT_TYPE_COM, 0x18, 0x38, COM_FREQ * 8 },
704	    },
705	},
706	/* Moxa Technologies Co., Ltd. PCI-Express I/O Card 8S RS232 */
707	{   "Moxa Technologies, SmartIO CP-168EL-A/PCIe",
708	    {	PCI_VENDOR_MOXA,	PCI_PRODUCT_MOXA_C168ELA, 0, 0 },
709	    {	0xffff,	0xffff,	0,	0	},
710	    {
711		{ PUC_PORT_TYPE_COM, 0x14, 0x000, COM_FREQ * 8 },
712		{ PUC_PORT_TYPE_COM, 0x14, 0x200, COM_FREQ * 8 },
713		{ PUC_PORT_TYPE_COM, 0x14, 0x400, COM_FREQ * 8 },
714		{ PUC_PORT_TYPE_COM, 0x14, 0x600, COM_FREQ * 8 },
715		{ PUC_PORT_TYPE_COM, 0x14, 0x800, COM_FREQ * 8 },
716		{ PUC_PORT_TYPE_COM, 0x14, 0xa00, COM_FREQ * 8 },
717		{ PUC_PORT_TYPE_COM, 0x14, 0xc00, COM_FREQ * 8 },
718		{ PUC_PORT_TYPE_COM, 0x14, 0xe00, COM_FREQ * 8 },
719	    },
720	},
721
722	/* NEC PK-UG-X001 K56flex PCI Modem card.
723	   NEC MARTH bridge chip and Rockwell RCVDL56ACF/SP using. */
724	{   "NEC PK-UG-X001 K56flex PCI Modem",
725	    {	PCI_VENDOR_NEC,	PCI_PRODUCT_NEC_PKUGX001, PCI_VENDOR_NEC,
726		0x8014 },
727	    {	0xffff,	0xffff,	0xffff,	0xffff	},
728	    {
729		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
730	    },
731	},
732
733	/* NEC PK-UG-X008 */
734	{   "NEC PK-UG-X008",
735	    {	PCI_VENDOR_NEC,	PCI_PRODUCT_NEC_PKUGX008, PCI_VENDOR_NEC,
736		0x8012 },
737	    {	0xffff,	0xffff,	0xffff,	0xffff	},
738	    {
739		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ},
740	    },
741	},
742
743	/* NetMos 1P PCI : 1P */
744	{   "NetMos NM9805 1284 Printer port",
745	    {	PCI_VENDOR_NETMOS,	PCI_PRODUCT_NETMOS_NM9805, 0, 0	},
746	    {	0xffff,	0xffff,	0,	0	},
747	    {
748		{ PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
749	    },
750	},
751
752	/* NetMos 2P PCI : 2P */
753	{   "NetMos NM9815 Dual 1284 Printer port",
754	    {	PCI_VENDOR_NETMOS,	PCI_PRODUCT_NETMOS_NM9815, 0, 0	},
755	    {	0xffff,	0xffff,	0,	0	},
756	    {
757		{ PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
758		{ PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
759	    },
760	},
761
762	/* NetMos 1S PCI NM9835 : 1S */
763	{   "NetMos NM9835 UART",
764	    {	PCI_VENDOR_NETMOS, PCI_PRODUCT_NETMOS_NM9835, 0x1000, 0x0001 },
765	    {	0xffff, 0xffff, 0xffff, 0xffff	},
766	    {
767		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
768	    },
769	},
770
771	/* NetMos 2S PCI NM9835 : 2S */
772	{   "NetMos NM9835 Dual UART",
773	    {	PCI_VENDOR_NETMOS, PCI_PRODUCT_NETMOS_NM9835, 0x1000, 0x0002 },
774	    {	0xffff, 0xffff, 0xffff, 0xffff	},
775	    {
776		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
777		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
778	    },
779	},
780
781	/* NetMos 2S1P PCI 16C650 : 2S, 1P */
782	{   "NetMos NM9835 Dual UART and 1284 Printer port",
783	    {	PCI_VENDOR_NETMOS, PCI_PRODUCT_NETMOS_NM9835, 0, 0 },
784	    {	0xffff,	0xffff,	0,	0	},
785	    {
786		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
787		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
788		{ PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
789	    },
790	},
791
792	/* NetMos 4S0P PCI NM9845 : 4S, 0P */
793	{   "NetMos NM9845 Quad UART",
794	   {   PCI_VENDOR_NETMOS, PCI_PRODUCT_NETMOS_NM9845, 0x1000, 0x0004 },
795	   {   0xffff, 0xffff, 0xffff, 0xffff  },
796	   {
797	       { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
798	       { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
799	       { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
800	       { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
801	   },
802	},
803
804	/* NetMos 4S1P PCI NM9845 : 4S, 1P */
805	{   "NetMos NM9845 Quad UART and 1284 Printer port",
806	    {   PCI_VENDOR_NETMOS, PCI_PRODUCT_NETMOS_NM9845, 0x1000, 0x0014 },
807	    {   0xffff, 0xffff, 0xffff, 0xffff  },
808	    {
809	       { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
810	       { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
811	       { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
812	       { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
813	       { PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 },
814	    },
815	},
816
817	/* NetMos 6S PCI 16C650 : 6S, 0P */
818	{   "NetMos NM9845 6 UART",
819	    {   PCI_VENDOR_NETMOS, PCI_PRODUCT_NETMOS_NM9845, 0x1000, 0x0006 },
820	    {   0xffff, 0xffff, 0xffff, 0xffff  },
821	    {
822	       { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
823	       { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
824	       { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
825	       { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
826	       { PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ },
827	       { PUC_PORT_TYPE_COM, 0x24, 0x00, COM_FREQ },
828	    },
829	},
830
831	/* NetMos 4S1P PCI NM9845 : 4S, 1P */
832	{   "NetMos NM9845 Quad UART and 1284 Printer port (unknown type)",
833	    {	PCI_VENDOR_NETMOS, PCI_PRODUCT_NETMOS_NM9845, 0, 0 },
834	    {	0xffff,	0xffff,	0,	0	},
835	    {
836		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
837		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
838		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
839		{ PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
840		{ PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 },
841	    },
842	},
843
844	/* NetMos 4S1P PCI NM9855 : 4S, 1P */
845	{   "NetMos NM9855 Quad UART and 1284 Printer port (unknown type)",
846	    {	PCI_VENDOR_NETMOS, PCI_PRODUCT_NETMOS_NM9855, 0x1000, 0x0014 },
847	    {	0xffff,	0xffff,	0xffff,	0xffff	},
848	    {
849		{ PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
850		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
851		{ PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
852		{ PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ },
853		{ PUC_PORT_TYPE_COM, 0x24, 0x00, COM_FREQ },
854	    },
855	},
856
857	/* NetMos 6S PCI NM9865 : 1S */
858	{   "NetMos NM9865 1 UART",
859	    {	PCI_VENDOR_NETMOS, PCI_PRODUCT_NETMOS_NM9865, 0xa000, 0x1000 },
860	    {	0xffff,	0xffff,	0xffff,	0xffff	},
861	    {
862		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
863	    },
864	},
865
866	/* NetMos 2S PCI NM9865 : 2S */
867	{   "NetMos NM9865 2 UART",
868	    {	PCI_VENDOR_NETMOS, PCI_PRODUCT_NETMOS_NM9865, 0xa000, 0x3002 },
869	    {	0xffff,	0xffff,	0xffff,	0xffff	},
870	    {
871		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
872		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
873	    },
874	},
875
876	/* NetMos 3S PCI NM9865 : 3S */
877	{   "NetMos NM9865 3 UART",
878	    {	PCI_VENDOR_NETMOS, PCI_PRODUCT_NETMOS_NM9865, 0xa000, 0x3003 },
879	    {	0xffff,	0xffff,	0xffff,	0xffff	},
880	    {
881		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
882		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
883		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
884	    },
885	},
886
887	/* NetMos 4S PCI NM9865 : 4S */
888	{   "NetMos NM9865 4 UART",
889	    {	PCI_VENDOR_NETMOS, PCI_PRODUCT_NETMOS_NM9865, 0xa000, 0x3004 },
890	    {	0xffff,	0xffff,	0xffff,	0xffff	},
891	    {
892		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
893		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
894		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
895		{ PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
896	    },
897	},
898
899	/* NetMos PCI NM9865 : 1S 1P */
900	{   "NetMos NM9865 Single UART and Single LPT",
901	    {	PCI_VENDOR_NETMOS, PCI_PRODUCT_NETMOS_NM9865, 0xa000, 0x3011 },
902	    {	0xffff,	0xffff,	0xffff,	0xffff	},
903	    {
904		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
905		{ PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 },
906	    },
907	},
908
909	/* NetMos PCI NM9865 : 2S 1P */
910	{   "NetMos NM9865 Dual UART and Single LPT",
911	    {	PCI_VENDOR_NETMOS, PCI_PRODUCT_NETMOS_NM9865, 0xa000, 0x3012 },
912	    {	0xffff,	0xffff,	0xffff,	0xffff	},
913	    {
914		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
915		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
916		{ PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
917	    },
918	},
919
920	/* NetMos PCI NM9865 : 2P */
921	{   "NetMos NM9865 Dual LPT",
922	    {	PCI_VENDOR_NETMOS, PCI_PRODUCT_NETMOS_NM9865, 0xa000, 0x3020 },
923	    {	0xffff,	0xffff,	0xffff,	0xffff	},
924	    {
925		{ PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
926		{ PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 },
927	    },
928	},
929
930	/*
931	 * Two 1-port and one 2-port found on a 4-port
932	 * card sold as Sunsway/ST Lab I-430.
933	 */
934	{   "NetMos NM9865 1S",
935	    {	PCI_VENDOR_NETMOS, PCI_PRODUCT_NETMOS_NM9865, 0xa000, 0x1000 },
936	    {	0xffff, 0xffff, 0xffff, 0xffff },
937	    {
938		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
939	    },
940	},
941	{   "NetMos NM9865 2S",
942	    {	PCI_VENDOR_NETMOS, PCI_PRODUCT_NETMOS_NM9865, 0xa000, 0x3002 },
943	    {	0xffff, 0xffff, 0xffff, 0xffff },
944	    {
945		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
946		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
947	    },
948	},
949
950	/* NetMos PCIe Peripheral Controller :UART part */
951	{   "NetMos NM9901 UART",
952	    {   PCI_VENDOR_NETMOS, PCI_PRODUCT_NETMOS_NM9901, 0xa000, 0x1000 },
953	    {	0xffff,	0xffff,				      0xffff, 0xffff },
954	    {
955		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
956	    },
957	},
958
959	/* NetMos PCIe NM9901 : 1P */
960	{   "NetMos NM9901 LPT",
961	    {	PCI_VENDOR_NETMOS, PCI_PRODUCT_NETMOS_NM9901, 0xa000, 0x2000 },
962	    {	0xffff,	0xffff,	0xffff,	0xffff	},
963	    {
964		{ PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
965	    },
966	},
967
968	/* NetMos PCIe NM9904 (PCI multi function): 4S */
969	{   "NetMos NM9904 UART",
970	    {   PCI_VENDOR_NETMOS, PCI_PRODUCT_NETMOS_NM9904, 0, 0 },
971	    {	0xffff,	0xffff,				      0, 0 },
972	    {
973		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
974	    },
975	},
976
977	/* NetMos PCIe NM9922 (PCI multi function): 2S */
978	{   "NetMos NM9922 UART",
979	    {   PCI_VENDOR_NETMOS, PCI_PRODUCT_NETMOS_NM9922, 0, 0 },
980	    {	0xffff,	0xffff,				      0, 0 },
981	    {
982		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
983	    },
984	},
985
986	/*
987	 * Boards with an Oxford Semiconductor chip.
988	 *
989	 * Oxford Semiconductor provides documentation for their chip at:
990	 * <URL:http://www.plxtech.com/products/uart>
991	 *
992	 * As sold by Kouwell <URL:http://www.kouwell.com/>.
993	 * I/O Flex PCI I/O Card Model-223 with 4 serial and 1 parallel ports.
994	 */
995
996	/* Oxford Semiconductor OXPCIe952 PCIe UARTs */
997	{   "Oxford Semiconductor OXPCIe952 UARTs",
998	    {	PCI_VENDOR_OXFORDSEMI, PCI_PRODUCT_OXFORDSEMI_OXPCIE952,
999		PCI_VENDOR_OXFORDSEMI, PCI_PRODUCT_OXFORDSEMI_OXPCIE952 },
1000	    {	0xffff,	0xffff,	0xffff,	0xffff	},
1001	    {
1002		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
1003	    },
1004	},
1005
1006	/* Oxford Semiconductor OXmPCI952 PCI UARTs */
1007	{   "Oxford Semiconductor OXmPCI952 UARTs",
1008	    {	PCI_VENDOR_OXFORDSEMI,	PCI_PRODUCT_OXFORDSEMI_EXSYS_EX41092,
1009		0, 0 },
1010	    {	0xffff,	0xffff,	0,	0	},
1011	    {
1012		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 10 },
1013		{ PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 10 },
1014	    },
1015	},
1016
1017	/* Oxford Semiconductor OX16PCI952 PCI `950 UARTs - 128 byte FIFOs */
1018	{   "Oxford Semiconductor OX16PCI952 UARTs",
1019	    {   PCI_VENDOR_OXFORDSEMI, PCI_PRODUCT_OXFORDSEMI_OX16PCI952,
1020		0, 0 },
1021	    {   0xffff, 0xffff, 0,	0	},
1022	    {
1023		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
1024		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
1025	    },
1026	},
1027
1028	/* Oxford Semiconductor OX16PCI952 PCI Parallel port */
1029	{   "Oxford Semiconductor OX16PCI952 Parallel port",
1030	    {   PCI_VENDOR_OXFORDSEMI, PCI_PRODUCT_OXFORDSEMI_OX16PCI952P,
1031		0, 0 },
1032	    {   0xffff, 0xffff, 0,	0	},
1033	    {
1034		{ PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
1035	    },
1036	},
1037
1038	/* InnoSys Keyspan SX Pro OX16PCI954 based 4 UARTs */
1039	{   "InnoSys Keyspan SX Pro Serial Card",
1040	    {	PCI_VENDOR_OXFORDSEMI,	PCI_PRODUCT_OXFORDSEMI_OX16PCI954,
1041		PCI_VENDOR_INNOSYS, 0x5850 },
1042	    {	0xffff,	0xffff,	0xffff,	0xffff	},
1043	    {
1044		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 },
1045		{ PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8 },
1046		{ PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 8 },
1047		{ PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 8 },
1048	    },
1049	},
1050
1051	/* I-O DATA RSA-PCI2 two UARTs based on OX16PCI954 */
1052	{   "I-O DATA RSA-PCI2 UARTs",
1053	    {	PCI_VENDOR_OXFORDSEMI,	PCI_PRODUCT_OXFORDSEMI_OX16PCI954,
1054		PCI_VENDOR_IODATA, 0xc070 },
1055	    {	0xffff,	0xffff,	0xffff,	0xffff	},
1056	    {
1057		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 },
1058		{ PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8 },
1059	    },
1060	},
1061
1062	/* I-O DATA RSA-PCI2 four/eight(1-4) UARTs based on OX16PCI954 */
1063	{   "I-O DATA RSA-PCI2/P4 or P8 (1-4) UARTs",
1064	    {	PCI_VENDOR_OXFORDSEMI,	PCI_PRODUCT_OXFORDSEMI_OX16PCI954,
1065		PCI_VENDOR_IODATA, 0xd007 },
1066	    {	0xffff,	0xffff,	0xffff,	0xffff	},
1067	    {
1068		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 },
1069		{ PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8 },
1070		{ PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 8 },
1071		{ PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 8 },
1072	    },
1073	},
1074
1075	/* OEM of Oxford Semiconductor PCI UARTs? */
1076	{   "SIIG Cyber 4 PCI 16550",
1077	    {	PCI_VENDOR_OXFORDSEMI,	PCI_PRODUCT_OXFORDSEMI_OX16PCI954,
1078		PCI_VENDOR_SIIG, 0x2050	},
1079	    {	0xffff,	0xffff,	0xffff,	0xffff	},
1080	    {
1081		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 10 },
1082		{ PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 10 },
1083		{ PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 10 },
1084		{ PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 10 },
1085	    },
1086	},
1087
1088	/* OEM of Oxford Semiconductor PCI UARTs? */
1089	{   "SIIG Cyber 4S PCI 16C650 (20x family)",
1090	    {	PCI_VENDOR_OXFORDSEMI,	PCI_PRODUCT_OXFORDSEMI_OX16PCI954,
1091		PCI_VENDOR_SIIG, 0x2051	},
1092	    {	0xffff,	0xffff,	0xffff,	0xffff	},
1093	    {
1094		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 10 },
1095		{ PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 10 },
1096		{ PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 10 },
1097		{ PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 10 },
1098	    },
1099	},
1100
1101	/* OEM of Oxford Semiconductor PCI UARTs? */
1102	{   "Avlab LP PCI 4S Quartet",
1103	    {	PCI_VENDOR_OXFORDSEMI,	PCI_PRODUCT_OXFORDSEMI_OX16PCI954,
1104		PCI_VENDOR_AVLAB, 0x2150 },
1105	    {	0xffff,	0xffff,	0xffff,	0xffff	},
1106	    {
1107		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 10 },
1108		{ PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 10 },
1109		{ PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 10 },
1110		{ PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 10 },
1111	    },
1112	},
1113
1114	/* Oxford Semiconductor OX16PCI954 PCI UARTs */
1115	{   "Oxford Semiconductor OX16PCI954 UARTs",
1116	    {	PCI_VENDOR_OXFORDSEMI,	PCI_PRODUCT_OXFORDSEMI_OX16PCI954,
1117		PCI_VENDOR_OXFORDSEMI,	0 },
1118	    {	0xffff,	0xffff,	0xffff,	0	},
1119	    {
1120		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8},
1121		{ PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8},
1122		{ PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 8},
1123		{ PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 8},
1124	    },
1125	},
1126
1127	/* Oxford Semiconductor OX16PCI954 PCI UARTs (default for 0x9501) */
1128	{   "Oxford Semiconductor OX16PCI954 UARTs",
1129	    {	PCI_VENDOR_OXFORDSEMI,	PCI_PRODUCT_OXFORDSEMI_OX16PCI954,
1130		0, 0 },
1131	    {	0xffff,	0xffff,	0,	0	},
1132	    {
1133		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ},
1134		{ PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ},
1135		{ PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ},
1136		{ PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ},
1137	    },
1138	},
1139
1140	/* I-O DATA RSA-PCI2 eight(5-8) UARTs base on OX16PCI954 */
1141	{   "I-O DATA RSA-PCI2/P8 (5-8) UARTs",
1142	    {	PCI_VENDOR_OXFORDSEMI,	PCI_PRODUCT_OXFORDSEMI_EXSYS_EX41098,
1143		PCI_VENDOR_IODATA, 0xd007 },
1144	    {	0xffff,	0xffff,	0xffff,	0xffff	},
1145	    {
1146		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 },
1147		{ PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8 },
1148		{ PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 8 },
1149		{ PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 8 },
1150	    },
1151	},
1152
1153	/* Exsys EX-41098, second part of SIIG Cyber 8S PCI Card */
1154	{   "Exsys EX-41098",
1155	    {	PCI_VENDOR_OXFORDSEMI,	PCI_PRODUCT_OXFORDSEMI_EXSYS_EX41098,
1156		PCI_VENDOR_SIIG, 0x2082	},
1157	    {	0xffff,	0xffff,	0xffff,	0xffff	},
1158	    {
1159		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 10},
1160		{ PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 10},
1161		{ PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 10},
1162		{ PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 10},
1163	    },
1164	},
1165
1166	/* Oxford Semiconductor OX16PCI954 PCI Parallel port */
1167	{   "Oxford Semiconductor OX16PCI954 Parallel port",
1168	    {	PCI_VENDOR_OXFORDSEMI,	PCI_PRODUCT_OXFORDSEMI_OX16PCI954P,
1169		0, 0 },
1170	    {	0xffff,	0xffff,	0,	0	},
1171	    {
1172		{ PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
1173	    },
1174	},
1175
1176	/* EXSYS EX-41098-2 UARTs */
1177	{   "EXSYS EX-41098-2 UARTs",
1178	    {	PCI_VENDOR_OXFORDSEMI,	PCI_PRODUCT_OXFORDSEMI_OX16PCI958,
1179		PCI_VENDOR_OXFORDSEMI, 0x0671 },
1180	    {	0xffff,	0xffff,	0xffff,	0xffff	},
1181	    {
1182		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ},
1183		{ PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ},
1184		{ PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ},
1185		{ PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ},
1186		{ PUC_PORT_TYPE_COM, 0x18, 0x20, COM_FREQ},
1187		{ PUC_PORT_TYPE_COM, 0x18, 0x28, COM_FREQ},
1188		{ PUC_PORT_TYPE_COM, 0x18, 0x30, COM_FREQ},
1189		{ PUC_PORT_TYPE_COM, 0x18, 0x38, COM_FREQ},
1190	    },
1191	},
1192
1193	/* Oxford Semiconductor OX16PCI958 UARTs (wildcard)*/
1194	{   "Oxford Semiconductor OX16PCI958 UARTs",
1195	    {	PCI_VENDOR_OXFORDSEMI,	PCI_PRODUCT_OXFORDSEMI_OX16PCI958,
1196		0, 0 },
1197	    {	0xffff,	0xffff,	0,	0	},
1198	    {
1199		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 10},
1200		{ PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 10},
1201		{ PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 10},
1202		{ PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 10},
1203		{ PUC_PORT_TYPE_COM, 0x18, 0x20, COM_FREQ * 10},
1204		{ PUC_PORT_TYPE_COM, 0x18, 0x28, COM_FREQ * 10},
1205		{ PUC_PORT_TYPE_COM, 0x18, 0x30, COM_FREQ * 10},
1206		{ PUC_PORT_TYPE_COM, 0x18, 0x38, COM_FREQ * 10},
1207	    },
1208	},
1209
1210	{   "SUNIX 5008 1P",
1211	    {	PCI_VENDOR_SUNIX2, 	PCI_PRODUCT_SUNIX2_SER5XXXX,
1212		0x1fd4,	0x0100 },
1213	    {	0xffff,	0xffff,	0xffff,	0xeff0 },
1214	    {
1215		{ PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 },
1216	    },
1217	},
1218
1219	{   "SUNIX 5016 8S",
1220	    {	PCI_VENDOR_SUNIX2,	PCI_PRODUCT_SUNIX2_SER5XXXX,
1221		0x1fd4,	0x0010 },
1222	    {	0xffff,	0xffff,	0xffff,	0xffff },
1223	    {
1224		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8},
1225		{ PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8},
1226		{ PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 8},
1227		{ PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 8},
1228		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ * 8},
1229		{ PUC_PORT_TYPE_COM, 0x14, 0x08, COM_FREQ * 8},
1230		{ PUC_PORT_TYPE_COM, 0x14, 0x10, COM_FREQ * 8},
1231		{ PUC_PORT_TYPE_COM, 0x14, 0x18, COM_FREQ * 8},
1232/*
1233 * PUC_MAX_PORTS needs to be raised in order to reach these ports
1234 */
1235#if PUC_MAX_PORTS >= 16
1236		{ PUC_PORT_TYPE_COM, 0x14, 0x20, COM_FREQ * 8},
1237		{ PUC_PORT_TYPE_COM, 0x14, 0x28, COM_FREQ * 8},
1238		{ PUC_PORT_TYPE_COM, 0x14, 0x30, COM_FREQ * 8},
1239		{ PUC_PORT_TYPE_COM, 0x14, 0x38, COM_FREQ * 8},
1240		{ PUC_PORT_TYPE_COM, 0x14, 0x40, COM_FREQ * 8},
1241		{ PUC_PORT_TYPE_COM, 0x14, 0x48, COM_FREQ * 8},
1242		{ PUC_PORT_TYPE_COM, 0x14, 0x50, COM_FREQ * 8},
1243		{ PUC_PORT_TYPE_COM, 0x14, 0x58, COM_FREQ * 8},
1244#endif /* PUC_MAX_PORTS >= 16 */
1245	    },
1246	},
1247
1248	{   "SUNIX 5027 1S",
1249	    {	PCI_VENDOR_SUNIX2,	PCI_PRODUCT_SUNIX2_SER5XXXX,
1250		0x1fd4,	0x0001 },
1251	    {	0xffff,	0xffff,	0xffff,	0xffff },
1252	    {
1253		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8},
1254	    },
1255	},
1256
1257	{   "SUNIX 5037 2S",
1258	    {	PCI_VENDOR_SUNIX2,	PCI_PRODUCT_SUNIX2_SER5XXXX,
1259		0x1fd4,	0x0002 },
1260	    {	0xffff,	0xffff,	0xffff,	0xffff },
1261	    {
1262		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8},
1263		{ PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8},
1264	    },
1265	},
1266
1267	{   "SUNIX 5056 4S",
1268	    {	PCI_VENDOR_SUNIX2,	PCI_PRODUCT_SUNIX2_SER5XXXX,
1269		0x1fd4,	0x0004 },
1270	    {	0xffff,	0xffff,	0xffff,	0xffff },
1271	    {
1272		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8},
1273		{ PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8},
1274		{ PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 8},
1275		{ PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 8},
1276	    },
1277	},
1278
1279	{   "SUNIX 5066 8S",
1280	    {	PCI_VENDOR_SUNIX2,	PCI_PRODUCT_SUNIX2_SER5XXXX,
1281		0x1fd4,	0x0008 },
1282	    {	0xffff,	0xffff,	0xffff,	0xffff },
1283	    {
1284		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8},
1285		{ PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8},
1286		{ PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 8},
1287		{ PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 8},
1288		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ * 8},
1289		{ PUC_PORT_TYPE_COM, 0x14, 0x08, COM_FREQ * 8},
1290		{ PUC_PORT_TYPE_COM, 0x14, 0x10, COM_FREQ * 8},
1291		{ PUC_PORT_TYPE_COM, 0x14, 0x18, COM_FREQ * 8},
1292	    },
1293	},
1294
1295	{   "SUNIX 5069 1S / 1P",
1296	    {	PCI_VENDOR_SUNIX2,	PCI_PRODUCT_SUNIX2_SER5XXXX,
1297		0x1fd4,	0x0101 },
1298	    {	0xffff,	0xffff,	0xffff,	0xeff0 },
1299	    {
1300		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8},
1301		{ PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 },
1302	    },
1303	},
1304
1305	{   "SUNIX 5079 2S / 1P",
1306	    {	PCI_VENDOR_SUNIX2,	PCI_PRODUCT_SUNIX2_SER5XXXX,
1307		0x1fd4,	0x0102 },
1308	    {	0xffff,	0xffff,	0xffff,	0xffff },
1309	    {
1310		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8},
1311		{ PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8},
1312		{ PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 },
1313	    },
1314	},
1315
1316	{   "SUNIX 5099 4S / 1P",
1317	    {	PCI_VENDOR_SUNIX2,	PCI_PRODUCT_SUNIX2_SER5XXXX,
1318		0x1fd4,	0x0104 },
1319	    {	0xffff,	0xffff,	0xffff,	0xffff },
1320	    {
1321		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8},
1322		{ PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8},
1323		{ PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 8},
1324		{ PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 8},
1325		{ PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 },
1326	    },
1327	},
1328
1329	/*
1330	 * XXX no entry because I have no data:
1331	 * XXX Dolphin Peripherals 4006 (single parallel)
1332	 */
1333
1334	/*
1335	 * Dolphin Peripherals 4014 (dual parallel port) card.  PLX 9050, with
1336	 * a seemingly-lame EEPROM setup that puts the Dolphin IDs
1337	 * into the subsystem fields, and claims that it's a
1338	 * network/misc (0x02/0x80) device.
1339	 */
1340	{   "Dolphin Peripherals 4014",
1341	    {	PCI_VENDOR_PLX,	PCI_PRODUCT_PLX_9050,	0xd84d,	0x6810	},
1342	    {	0xffff,	0xffff,	0xffff,	0xffff	},
1343	    {
1344		{ PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 },
1345		{ PUC_PORT_TYPE_LPT, 0x24, 0x00, 0x00 },
1346	    },
1347	},
1348
1349	/*
1350	 * XXX Dolphin Peripherals 4025 (single serial)
1351	 * (clashes with Dolphin Peripherals  4036 (2s variant)
1352	 */
1353
1354	/*
1355	 * Dolphin Peripherals 4035 (dual serial port) card.  PLX 9050, with
1356	 * a seemingly-lame EEPROM setup that puts the Dolphin IDs
1357	 * into the subsystem fields, and claims that it's a
1358	 * network/misc (0x02/0x80) device.
1359	 */
1360	{   "Dolphin Peripherals 4035",
1361	    {	PCI_VENDOR_PLX,	PCI_PRODUCT_PLX_9050,	0xd84d,	0x6808	},
1362	    {	0xffff,	0xffff,	0xffff,	0xffff	},
1363	    {
1364		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
1365		{ PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
1366	    },
1367	},
1368
1369	/*
1370	 * Nanjing QinHeng Electronics
1371	 * Products based on CH353 chip which can be
1372	 * configured to provide various combinations
1373	 * including 2 serial ports and a parallel port
1374	 * or 4 serial ports (using a CH432 parallel to
1375	 * 2 serial port converter. Product codes from
1376	 * documentation (and physical 2 port serial card)
1377	 */
1378	{   "Nanjing QinHeng Electronics 2S",
1379	    {	PCI_VENDOR_QINHENG, PCI_PRODUCT_QINHENG_CH352,
1380		PCI_VENDOR_QINHENG, 0x3253 },
1381	    {	0xffff, 0xffff, 0xffff, 0xffff	},
1382	    {
1383		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
1384		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
1385	    },
1386	},
1387
1388	{   "Nanjing QinHeng Electronics 2S, 1P",
1389	    {	PCI_VENDOR_QINHENG, PCI_PRODUCT_QINHENG_CH353,
1390		PCI_VENDOR_QINHENG, 0x7053	},
1391	    {	0xffff, 0xffff, 0xffff, 0xffff	},
1392	    {
1393		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
1394		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
1395		{ PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
1396	    },
1397	},
1398
1399	/* Intel 82946GZ/GL KT */
1400	{   "Intel 82946GZ/GL KT",
1401	    {	PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_82946GZ_KT, 0, 0 },
1402	    {	0xffff,	0xffff,	0,	0	},
1403	    {
1404		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
1405	    },
1406	},
1407
1408	/* Intel P965/G965 KT */
1409	{   "Intel P965/G965 KT",
1410	    {	PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_82P965_KT, 0, 0 },
1411	    {	0xffff,	0xffff,	0,	0	},
1412	    {
1413		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
1414	    },
1415	},
1416
1417	/* Intel PM965/GM965 KT */
1418	{   "Intel PM965/GM965 KT",
1419	    {	PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_82965PM_KT, 0, 0 },
1420	    {	0xffff,	0xffff,	0,	0	},
1421	    {
1422		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
1423	    },
1424	},
1425
1426	/* Intel GME965/GLE965 KT */
1427	{   "Intel GME965/GLE965 KT",
1428	    {	PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_82965GME_KT, 0, 0 },
1429	    {	0xffff,	0xffff,	0,	0	},
1430	    {
1431		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
1432	    },
1433	},
1434
1435	/* Intel Q963/Q965 KT */
1436	{   "Intel Q963/Q965 KT",
1437	    {	PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_82Q965_KT, 0, 0 },
1438	    {	0xffff,	0xffff,	0,	0	},
1439	    {
1440		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
1441	    },
1442	},
1443
1444	/* Intel G33/G31/P35/P31 KT */
1445	{   "Intel G33/G31/P35/P31 KT",
1446	    {	PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_82G33_KT, 0, 0 },
1447	    {	0xffff,	0xffff,	0,	0	},
1448	    {
1449		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
1450	    },
1451	},
1452
1453	/* Intel Q35 KT */
1454	{   "Intel Q35 KT",
1455	    {	PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_82Q35_KT, 0, 0 },
1456	    {	0xffff,	0xffff,	0,	0	},
1457	    {
1458		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
1459	    },
1460	},
1461
1462	/* Intel Q33 KT */
1463	{   "Intel Q33 KT",
1464	    {	PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_82Q33_KT, 0, 0 },
1465	    {	0xffff,	0xffff,	0,	0	},
1466	    {
1467		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
1468	    },
1469	},
1470
1471	/* Intel X38 KT */
1472	{   "Intel X38 KT",
1473	    {	PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_82X38_KT, 0, 0 },
1474	    {	0xffff,	0xffff,	0,	0	},
1475	    {
1476		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
1477	    },
1478	},
1479
1480	/* Intel 3200 KT */
1481	{   "Intel 3200 KT",
1482	    {	PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_3200_KT, 0, 0 },
1483	    {	0xffff,	0xffff,	0,	0	},
1484	    {
1485		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
1486	    },
1487	},
1488
1489	/* Intel GM45 KT */
1490	{   "Intel GM45 KT",
1491	    {	PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_82GM45_KT, 0, 0 },
1492	    {	0xffff,	0xffff,	0,	0	},
1493	    {
1494		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
1495	    },
1496	},
1497
1498	/* Intel Q45 KT */
1499	{   "Intel Q45 KT",
1500	    {	PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_82Q45_KT, 0, 0 },
1501	    {	0xffff,	0xffff,	0,	0	},
1502	    {
1503		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
1504	    },
1505	},
1506
1507	/* Intel 5 Series and Intel 3400 Series KT */
1508	{   "Intel 5 Series KT",
1509	    {	PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_3400_KT, 0, 0 },
1510	    {	0xffff,	0xffff,	0,	0	},
1511	    {
1512		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
1513	    },
1514	},
1515
1516	/* Intel 6 Series KT */
1517	{   "Intel 6 Series KT",
1518	    {	PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_6SERIES_KT, 0, 0 },
1519	    {	0xffff,	0xffff,	0,	0	},
1520	    {
1521		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
1522	    },
1523	},
1524
1525	/* Intel 7 Series KT */
1526	{   "Intel 7 Series KT",
1527	    {	PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_7SERIES_KT, 0, 0 },
1528	    {	0xffff,	0xffff,	0,	0	},
1529	    {
1530		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
1531	    },
1532	},
1533
1534	/* Intel C600/X79 Series KT */
1535	{   "Intel C600/X79 Series KT",
1536	    {	PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_C600_KT, 0, 0 },
1537	    {	0xffff,	0xffff,	0,	0	},
1538	    {
1539		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
1540	    },
1541	},
1542
1543	/* Intel EG20T UART */
1544	{   "Intel EG20T UART #0",
1545	    {	PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_EG20T_UART_0, 0, 0 },
1546	    {	0xffff,	0xffff,	0,	0	},
1547	    {
1548		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
1549	    },
1550	},
1551
1552	/* Intel EG20T UART */
1553	{   "Intel EG20T UART #1",
1554	    {	PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_EG20T_UART_1, 0, 1 },
1555	    {	0xffff,	0xffff,	0,	0	},
1556	    {
1557		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
1558	    },
1559	},
1560
1561	/* Intel EG20T UART */
1562	{   "Intel EG20T UART #2",
1563	    {	PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_EG20T_UART_2, 0, 2 },
1564	    {	0xffff,	0xffff,	0,	0	},
1565	    {
1566		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
1567	    },
1568	},
1569
1570	/* Intel EG20T UART */
1571	{   "Intel EG20T UART #3",
1572	    {	PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_EG20T_UART_3, 0, 3 },
1573	    {	0xffff,	0xffff,	0,	0	},
1574	    {
1575		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
1576	    },
1577	},
1578
1579	/* VScom PCI-200: 2S */
1580	{   "VScom PCI-200",
1581	    {	PCI_VENDOR_PLX,	PCI_PRODUCT_PLX_PCI_200,
1582		PCI_VENDOR_PLX,	0x1103 },
1583	    {	0xffff,	0xffff,	0xffff,	0xffff	},
1584	    {
1585		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
1586		{ PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ * 8 },
1587	    },
1588	},
1589
1590	/* VScom PCI-400: 4S */
1591	{   "VScom PCI-400",
1592	    {	PCI_VENDOR_PLX,	PCI_PRODUCT_PLX_PCI_400,
1593		PCI_VENDOR_PLX,	0x1077	},
1594	    {	0xffff,	0xffff,	0xffff,	0xffff	},
1595	    {
1596		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
1597		{ PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 },
1598		{ PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 },
1599		{ PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 },
1600	    },
1601	},
1602
1603	/* VScom PCI-800: 8S */
1604	{   "VScom PCI-800",
1605	    {	PCI_VENDOR_PLX,	PCI_PRODUCT_PLX_PCI_800,
1606		PCI_VENDOR_PLX,	0x1076	},
1607	    {	0xffff,	0xffff,	0xffff,	0xffff	},
1608	    {
1609		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
1610		{ PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 },
1611		{ PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 },
1612		{ PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 },
1613		{ PUC_PORT_TYPE_COM, 0x18, 0x20, COM_FREQ * 8 },
1614		{ PUC_PORT_TYPE_COM, 0x18, 0x28, COM_FREQ * 8 },
1615		{ PUC_PORT_TYPE_COM, 0x18, 0x30, COM_FREQ * 8 },
1616		{ PUC_PORT_TYPE_COM, 0x18, 0x38, COM_FREQ * 8 },
1617	    },
1618	},
1619
1620	/*
1621	 * Perle PCI-RAS 4 Modem ports
1622	 */
1623	{   "Perle Systems PCI-RAS 4 modem ports",
1624	    {	PCI_VENDOR_PLX, PCI_PRODUCT_PLX_9030, 0x155f, 0xf001	},
1625	    {	0xffff, 0xffff, 0xffff, 0xffff	},
1626	    {
1627		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 4 },
1628		{ PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 4 },
1629		{ PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 4 },
1630		{ PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 4 },
1631	    },
1632	},
1633
1634	/*
1635	 * Perle PCI-RASV92 4 Modem ports
1636	 */
1637	{   "Perle Systems PCI-RASV92 4 modem ports",
1638	    {	PCI_VENDOR_PLX, PCI_PRODUCT_PLX_9050, 0x155f, 0xf001	},
1639	    {	0xffff, 0xffff, 0xffff, 0xffff	},
1640	    {
1641		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 4 },
1642		{ PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 4 },
1643		{ PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 4 },
1644		{ PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 4 },
1645	    },
1646	},
1647
1648	/*
1649	 * Perle PCI-RAS 8 Modem ports
1650	 */
1651	{   "Perle Systems PCI-RAS 8 modem ports",
1652	    {	PCI_VENDOR_PLX, PCI_PRODUCT_PLX_9030, 0x155f, 0xf010	},
1653	    {	0xffff, 0xffff, 0xffff, 0xffff	},
1654	    {
1655		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 4 },
1656		{ PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 4 },
1657		{ PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 4 },
1658		{ PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 4 },
1659		{ PUC_PORT_TYPE_COM, 0x18, 0x20, COM_FREQ * 4 },
1660		{ PUC_PORT_TYPE_COM, 0x18, 0x28, COM_FREQ * 4 },
1661		{ PUC_PORT_TYPE_COM, 0x18, 0x30, COM_FREQ * 4 },
1662		{ PUC_PORT_TYPE_COM, 0x18, 0x38, COM_FREQ * 4 },
1663	    },
1664	},
1665
1666	/*
1667	 * Perle PCI-RASV92 8 Modem ports
1668	 */
1669	{   "Perle Systems PCI-RASV92 8 modem ports",
1670	    {	PCI_VENDOR_PLX, PCI_PRODUCT_PLX_9050, 0x155f, 0xf010	},
1671	    {	0xffff, 0xffff, 0xffff, 0xffff	},
1672	    {
1673		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 4 },
1674		{ PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 4 },
1675		{ PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 4 },
1676		{ PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 4 },
1677		{ PUC_PORT_TYPE_COM, 0x18, 0x20, COM_FREQ * 4 },
1678		{ PUC_PORT_TYPE_COM, 0x18, 0x28, COM_FREQ * 4 },
1679		{ PUC_PORT_TYPE_COM, 0x18, 0x30, COM_FREQ * 4 },
1680		{ PUC_PORT_TYPE_COM, 0x18, 0x38, COM_FREQ * 4 },
1681	    },
1682	},
1683
1684	/*
1685	 * Boca Research Turbo Serial 654 (4 serial port) card.
1686	 * Appears to be the same as Chase Research PLC PCI-FAST4
1687	 * and Perle PCI-FAST4 Multi-Port serial cards.
1688	 */
1689	{   "Boca Research Turbo Serial 654",
1690	    {   PCI_VENDOR_PLX, PCI_PRODUCT_PLX_9050, 0x12e0, 0x0031  },
1691	    {   0xffff, 0xffff, 0xffff, 0xffff  },
1692	    {
1693		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 4 },
1694		{ PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 4 },
1695		{ PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 4 },
1696		{ PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 4 },
1697	    },
1698	},
1699
1700	/*
1701	 * Boca Research Turbo Serial 658 (8 serial port) card.
1702	 * Appears to be the same as Chase Research PLC PCI-FAST8
1703	 * and Perle PCI-FAST8 Multi-Port serial cards.
1704	 */
1705	{   "Boca Research Turbo Serial 658",
1706	    {   PCI_VENDOR_PLX, PCI_PRODUCT_PLX_9050, 0x12e0, 0x0021  },
1707	    {   0xffff, 0xffff, 0xffff, 0xffff  },
1708	    {
1709		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 4 },
1710		{ PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 4 },
1711		{ PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 4 },
1712		{ PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 4 },
1713		{ PUC_PORT_TYPE_COM, 0x18, 0x20, COM_FREQ * 4 },
1714		{ PUC_PORT_TYPE_COM, 0x18, 0x28, COM_FREQ * 4 },
1715		{ PUC_PORT_TYPE_COM, 0x18, 0x30, COM_FREQ * 4 },
1716		{ PUC_PORT_TYPE_COM, 0x18, 0x38, COM_FREQ * 4 },
1717	    },
1718	},
1719
1720	/*
1721	 * SIIG Boards.
1722	 *
1723	 * SIIG provides documentation for their boards at:
1724	 * <URL:http://www.siig.com/driver.htm>
1725	 *
1726	 * Please excuse the weird ordering, it's the order they
1727	 * use in their documentation.
1728	 */
1729
1730	/*
1731	 * SIIG "10x" family boards.
1732	 */
1733
1734	/* SIIG Cyber Serial PCI 16C550 (10x family): 1S */
1735	{   "SIIG Cyber Serial PCI 16C550 (10x family)",
1736	    {	PCI_VENDOR_SIIG,	PCI_PRODUCT_SIIG_CYBER10_S550, 0, 0 },
1737	    {	0xffff,	0xffff,	0,	0	},
1738	    {
1739		{ PUC_PORT_TYPE_COM, 0x18, 0x00,
1740		    (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR1 },
1741	    },
1742	},
1743
1744	/* SIIG Cyber Serial PCI 16C650 (10x family): 1S */
1745	{   "SIIG Cyber Serial PCI 16C650 (10x family)",
1746	    {	PCI_VENDOR_SIIG,	PCI_PRODUCT_SIIG_CYBER10_S650, 0, 0 },
1747	    {	0xffff,	0xffff,	0,	0	},
1748	    {
1749		{ PUC_PORT_TYPE_COM, 0x18, 0x00,
1750		    (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR1 },
1751	    },
1752	},
1753
1754	/* SIIG Cyber Serial PCI 16C850 (10x family): 1S */
1755	{   "SIIG Cyber Serial PCI 16C850 (10x family)",
1756	    {	PCI_VENDOR_SIIG,	PCI_PRODUCT_SIIG_CYBER10_S850, 0, 0 },
1757	    {	0xffff,	0xffff,	0,	0	},
1758	    {
1759		{ PUC_PORT_TYPE_COM, 0x18, 0x00,
1760		    (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR1 },
1761	    },
1762	},
1763
1764	/* SIIG Cyber I/O PCI 16C550 (10x family): 1S, 1P */
1765	{   "SIIG Cyber I/O PCI 16C550 (10x family)",
1766	    {	PCI_VENDOR_SIIG,	PCI_PRODUCT_SIIG_CYBER10_IO550, 0, 0 },
1767	    {	0xffff,	0xffff,	0,	0	},
1768	    {
1769		{ PUC_PORT_TYPE_COM, 0x18, 0x00,
1770		    (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR0 },
1771		{ PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 },
1772	    },
1773	},
1774
1775	/* SIIG Cyber I/O PCI 16C650 (10x family): 1S, 1P */
1776	{   "SIIG Cyber I/O PCI 16C650 (10x family)",
1777	    {	PCI_VENDOR_SIIG,	PCI_PRODUCT_SIIG_CYBER10_IO650, 0, 0 },
1778	    {	0xffff,	0xffff,	0,	0	},
1779	    {
1780		{ PUC_PORT_TYPE_COM, 0x18, 0x00,
1781		    (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR0 },
1782		{ PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 },
1783	    },
1784	},
1785
1786	/* SIIG Cyber I/O PCI 16C850 (10x family): 1S, 1P */
1787	{   "SIIG Cyber I/O PCI 16C850 (10x family)",
1788	    {	PCI_VENDOR_SIIG,	PCI_PRODUCT_SIIG_CYBER10_IO850, 0, 0 },
1789	    {	0xffff,	0xffff,	0,	0	},
1790	    {
1791		{ PUC_PORT_TYPE_COM, 0x18, 0x00,
1792		    (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR0 },
1793		{ PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 },
1794	    },
1795	},
1796
1797	/* SIIG Cyber Parallel PCI (10x family): 1P */
1798	{   "SIIG Cyber Parallel PCI (10x family)",
1799	    {	PCI_VENDOR_SIIG,	PCI_PRODUCT_SIIG_CYBER10_P, 0, 0 },
1800	    {	0xffff,	0xffff,	0,	0	},
1801	    {
1802		{ PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
1803	    },
1804	},
1805
1806	/* SIIG Cyber Parallel Dual PCI (10x family): 2P */
1807	{   "SIIG Cyber Parallel Dual PCI (10x family)",
1808	    {	PCI_VENDOR_SIIG,	PCI_PRODUCT_SIIG_CYBER10_2P, 0, 0 },
1809	    {	0xffff,	0xffff,	0,	0	},
1810	    {
1811		{ PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
1812		{ PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 },
1813	    },
1814	},
1815
1816	/* SIIG Cyber Serial Dual PCI 16C550 (10x family): 2S */
1817	{   "SIIG Cyber Serial Dual PCI 16C550 (10x family)",
1818	    {	PCI_VENDOR_SIIG,	PCI_PRODUCT_SIIG_CYBER10_2S550, 0, 0 },
1819	    {	0xffff,	0xffff,	0,	0	},
1820	    {
1821		{ PUC_PORT_TYPE_COM, 0x18, 0x00,
1822		    (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR2 },
1823		{ PUC_PORT_TYPE_COM, 0x1c, 0x00,
1824		    (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR3 },
1825	    },
1826	},
1827
1828	/* SIIG Cyber Serial Dual PCI 16C650 (10x family): 2S */
1829	{   "SIIG Cyber Serial Dual PCI 16C650 (10x family)",
1830	    {	PCI_VENDOR_SIIG,	PCI_PRODUCT_SIIG_CYBER10_2S650, 0, 0 },
1831	    {	0xffff,	0xffff,	0,	0	},
1832	    {
1833		{ PUC_PORT_TYPE_COM, 0x18, 0x00,
1834		    (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR2 },
1835		{ PUC_PORT_TYPE_COM, 0x1c, 0x00,
1836		    (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR3 },
1837	    },
1838	},
1839
1840	/* SIIG Cyber Serial Dual PCI 16C850 (10x family): 2S */
1841	{   "SIIG Cyber Serial Dual PCI 16C850 (10x family)",
1842	    {	PCI_VENDOR_SIIG,	PCI_PRODUCT_SIIG_CYBER10_2S850, 0, 0 },
1843	    {	0xffff,	0xffff,	0,	0	},
1844	    {
1845		{ PUC_PORT_TYPE_COM, 0x18, 0x00,
1846		    (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR2 },
1847		{ PUC_PORT_TYPE_COM, 0x1c, 0x00,
1848		    (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR3 },
1849	    },
1850	},
1851
1852	/* SIIG Cyber 2S1P PCI 16C550 (10x family): 2S, 1P */
1853	{   "SIIG Cyber 2S1P PCI 16C550 (10x family)",
1854	    {	PCI_VENDOR_SIIG,	PCI_PRODUCT_SIIG_CYBER10_2S1P550,
1855		0, 0 },
1856	    {	0xffff,	0xffff,	0,	0	},
1857	    {
1858		{ PUC_PORT_TYPE_COM, 0x18, 0x00,
1859		    (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR2 },
1860		{ PUC_PORT_TYPE_COM, 0x1c, 0x00,
1861		    (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR3 },
1862		{ PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 },
1863	    },
1864	},
1865
1866	/* SIIG Cyber 2S1P PCI 16C650 (10x family): 2S, 1P */
1867	{   "SIIG Cyber 2S1P PCI 16C650 (10x family)",
1868	    {	PCI_VENDOR_SIIG,	PCI_PRODUCT_SIIG_CYBER10_2S1P650,
1869		0, 0 },
1870	    {	0xffff,	0xffff,	0,	0	},
1871	    {
1872		{ PUC_PORT_TYPE_COM, 0x18, 0x00,
1873		    (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR2 },
1874		{ PUC_PORT_TYPE_COM, 0x1c, 0x00,
1875		    (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR3 },
1876		{ PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 },
1877	    },
1878	},
1879
1880	/* SIIG Cyber 2S1P PCI 16C850 (10x family): 2S, 1P */
1881	{   "SIIG Cyber 2S1P PCI 16C850 (10x family)",
1882	    {	PCI_VENDOR_SIIG,	PCI_PRODUCT_SIIG_CYBER10_2S1P850,
1883		0, 0 },
1884	    {	0xffff,	0xffff,	0,	0	},
1885	    {
1886		{ PUC_PORT_TYPE_COM, 0x18, 0x00,
1887		    (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR2 },
1888		{ PUC_PORT_TYPE_COM, 0x1c, 0x00,
1889		    (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR3 },
1890		{ PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 },
1891	    },
1892	},
1893
1894	/* SIIG Cyber 4S PCI 16C550 (10x family): 4S */
1895	{   "SIIG Cyber 4S PCI 16C550 (10x family)",
1896	    {	PCI_VENDOR_SIIG,	PCI_PRODUCT_SIIG_CYBER10_4S550, 0, 0 },
1897	    {	0xffff,	0xffff,	0,	0	},
1898	    {
1899		{ PUC_PORT_TYPE_COM, 0x18, 0x00,
1900		    (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR0 },
1901		{ PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ * 8 },
1902		{ PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ * 8 },
1903		{ PUC_PORT_TYPE_COM, 0x24, 0x00, COM_FREQ * 8 },
1904	    },
1905	},
1906
1907	/* SIIG Cyber 4S PCI 16C650 (10x family): 4S */
1908	{   "SIIG Cyber 4S PCI 16C650 (10x family)",
1909	    {	PCI_VENDOR_SIIG,	PCI_PRODUCT_SIIG_CYBER10_4S650, 0, 0 },
1910	    {	0xffff,	0xffff,	0,	0	},
1911	    {
1912		{ PUC_PORT_TYPE_COM, 0x18, 0x00,
1913		    (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR0 },
1914		{ PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ * 8 },
1915		{ PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ * 8 },
1916		{ PUC_PORT_TYPE_COM, 0x24, 0x00, COM_FREQ * 8 },
1917	    },
1918	},
1919
1920	/* SIIG Cyber 4S PCI 16C850 (10x family): 4S */
1921	{   "SIIG Cyber 4S PCI 16C850 (10x family)",
1922	    {	PCI_VENDOR_SIIG,	PCI_PRODUCT_SIIG_CYBER10_4S850, 0, 0 },
1923	    {	0xffff,	0xffff,	0,	0	},
1924	    {
1925		{ PUC_PORT_TYPE_COM, 0x18, 0x00,
1926		    (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR0 },
1927		{ PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ * 8 },
1928		{ PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ * 8 },
1929		{ PUC_PORT_TYPE_COM, 0x24, 0x00, COM_FREQ * 8 },
1930	    },
1931	},
1932
1933	/*
1934	 * SIIG "20x" family boards.
1935	 */
1936
1937	/* SIIG Cyber Serial PCI 16C550 (20x family): 1S */
1938	{   "SIIG Cyber Serial PCI 16C550 (20x family)",
1939	    {	PCI_VENDOR_SIIG,	PCI_PRODUCT_SIIG_CYBER20_S550, 0, 0 },
1940	    {	0xffff,	0xffff,	0,	0	},
1941	    {
1942		{ PUC_PORT_TYPE_COM, 0x10, 0x00,
1943		    (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
1944	    },
1945	},
1946
1947	/* SIIG Cyber Serial PCI 16C650 (20x family): 1S */
1948	{   "SIIG Cyber Serial PCI 16C650 (20x family)",
1949	    {	PCI_VENDOR_SIIG,	PCI_PRODUCT_SIIG_CYBER20_S650, 0, 0 },
1950	    {	0xffff,	0xffff,	0,	0	},
1951	    {
1952		{ PUC_PORT_TYPE_COM, 0x10, 0x00,
1953		    (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
1954	    },
1955	},
1956
1957	/* SIIG Cyber Serial PCI 16C850 (20x family): 1S */
1958	{   "SIIG Cyber Serial PCI 16C850 (20x family)",
1959	    {	PCI_VENDOR_SIIG,	PCI_PRODUCT_SIIG_CYBER20_S850, 0, 0 },
1960	    {	0xffff,	0xffff,	0,	0	},
1961	    {
1962		{ PUC_PORT_TYPE_COM, 0x10, 0x00,
1963		    (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
1964	    },
1965	},
1966
1967	/* SIIG Cyber I/O PCI 16C550 (20x family): 1S, 1P */
1968	{   "SIIG Cyber I/O PCI 16C550 (20x family)",
1969	    {	PCI_VENDOR_SIIG,	PCI_PRODUCT_SIIG_CYBER20_IO550, 0, 0 },
1970	    {	0xffff,	0xffff,	0,	0	},
1971	    {
1972		{ PUC_PORT_TYPE_COM, 0x10, 0x00,
1973		    (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
1974		{ PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 },
1975	    },
1976	},
1977
1978	/* SIIG Cyber I/O PCI 16C650 (20x family): 1S, 1P */
1979	{   "SIIG Cyber I/O PCI 16C650 (20x family)",
1980	    {	PCI_VENDOR_SIIG,	PCI_PRODUCT_SIIG_CYBER20_IO650, 0, 0 },
1981	    {	0xffff,	0xffff,	0,	0	},
1982	    {
1983		{ PUC_PORT_TYPE_COM, 0x10, 0x00,
1984		    (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
1985		{ PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 },
1986	    },
1987	},
1988
1989	/* SIIG Cyber I/O PCI 16C850 (20x family): 1S, 1P */
1990	{   "SIIG Cyber I/O PCI 16C850 (20x family)",
1991	    {	PCI_VENDOR_SIIG,	PCI_PRODUCT_SIIG_CYBER20_IO850, 0, 0 },
1992	    {	0xffff,	0xffff,	0,	0	},
1993	    {
1994		{ PUC_PORT_TYPE_COM, 0x10, 0x00,
1995		    (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
1996		{ PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 },
1997	    },
1998	},
1999
2000	/* SIIG Cyber Parallel PCI (20x family): 1P */
2001	{   "SIIG Cyber Parallel PCI (20x family)",
2002	    {	PCI_VENDOR_SIIG,	PCI_PRODUCT_SIIG_CYBER20_P, 0, 0 },
2003	    {	0xffff,	0xffff,	0,	0	},
2004	    {
2005		{ PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
2006	    },
2007	},
2008
2009	/* SIIG Cyber Parallel Dual PCI (20x family): 2P */
2010	{   "SIIG Cyber Parallel Dual PCI (20x family)",
2011	    {	PCI_VENDOR_SIIG,	PCI_PRODUCT_SIIG_CYBER20_2P, 0, 0 },
2012	    {	0xffff,	0xffff,	0,	0	},
2013	    {
2014		{ PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
2015		{ PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
2016	    },
2017	},
2018
2019	/* SIIG Cyber Serial Dual PCI 16C550 (20x family): 2S */
2020	{   "SIIG Cyber Serial Dual PCI 16C550 (20x family)",
2021	    {	PCI_VENDOR_SIIG,	PCI_PRODUCT_SIIG_CYBER20_2S550, 0, 0 },
2022	    {	0xffff,	0xffff,	0,	0	},
2023	    {
2024		{ PUC_PORT_TYPE_COM, 0x10, 0x00,
2025		    (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
2026		{ PUC_PORT_TYPE_COM, 0x14, 0x00,
2027		    (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR1 },
2028	    },
2029	},
2030
2031	/* SIIG Cyber Serial Dual PCI 16C650 (20x family): 2S */
2032	{   "SIIG Cyber Serial Dual PCI 16C650 (20x family)",
2033	    {	PCI_VENDOR_SIIG,	PCI_PRODUCT_SIIG_CYBER20_2S650, 0, 0 },
2034	    {	0xffff,	0xffff,	0,	0	},
2035	    {
2036		{ PUC_PORT_TYPE_COM, 0x10, 0x00,
2037		    (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
2038		{ PUC_PORT_TYPE_COM, 0x14, 0x00,
2039		    (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR1 },
2040	    },
2041	},
2042
2043	/* SIIG Cyber Serial Dual PCI 16C850 (20x family): 2S */
2044	{   "SIIG Cyber Serial Dual PCI 16C850 (20x family)",
2045	    {	PCI_VENDOR_SIIG,	PCI_PRODUCT_SIIG_CYBER20_2S850, 0, 0 },
2046	    {	0xffff,	0xffff,	0,	0	},
2047	    {
2048		{ PUC_PORT_TYPE_COM, 0x10, 0x00,
2049		    (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
2050		{ PUC_PORT_TYPE_COM, 0x14, 0x00,
2051		    (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR1 },
2052	    },
2053	},
2054
2055	/* SIIG Cyber 2P1S PCI 16C550 (20x family): 1S, 2P */
2056	{   "SIIG Cyber 2P1S PCI 16C550 (20x family)",
2057	    {	PCI_VENDOR_SIIG,	PCI_PRODUCT_SIIG_CYBER20_2P1S550,
2058		0, 0 },
2059	    {	0xffff,	0xffff,	0,	0	},
2060	    {
2061		{ PUC_PORT_TYPE_COM, 0x10, 0x00,
2062		    (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
2063		{ PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 },
2064		{ PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 },
2065	    },
2066	},
2067
2068	/* SIIG Cyber 2P1S PCI 16C650 (20x family): 1S, 2P */
2069	{   "SIIG Cyber 2P1S PCI 16C650 (20x family)",
2070	    {	PCI_VENDOR_SIIG,	PCI_PRODUCT_SIIG_CYBER20_2P1S650,
2071		0, 0 },
2072	    {	0xffff,	0xffff,	0,	0	},
2073	    {
2074		{ PUC_PORT_TYPE_COM, 0x10, 0x00,
2075		    (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
2076		{ PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 },
2077		{ PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 },
2078	    },
2079	},
2080
2081	/* SIIG Cyber 2P1S PCI 16C850 (20x family): 1S, 2P */
2082	{   "SIIG Cyber 2P1S PCI 16C850 (20x family)",
2083	    {	PCI_VENDOR_SIIG,	PCI_PRODUCT_SIIG_CYBER20_2P1S850,
2084		0, 0 },
2085	    {	0xffff,	0xffff,	0,	0	},
2086	    {
2087		{ PUC_PORT_TYPE_COM, 0x10, 0x00,
2088		    (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
2089		{ PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 },
2090		{ PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 },
2091	    },
2092	},
2093
2094	/* SIIG Cyber 4S PCI 16C550 (20x family): 4S */
2095	{   "SIIG Cyber 4S PCI 16C550 (20x family)",
2096	    {	PCI_VENDOR_SIIG,	PCI_PRODUCT_SIIG_CYBER20_4S550, 0, 0 },
2097	    {	0xffff,	0xffff,	0,	0	},
2098	    {
2099		{ PUC_PORT_TYPE_COM, 0x10, 0x00,
2100		    (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
2101		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ * 8 },
2102		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
2103		{ PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ * 8 },
2104	    },
2105	},
2106
2107	/* SIIG Cyber 4S PCI 16C650 (20x family): 4S */
2108	{   "SIIG Cyber 4S PCI 16C650 (20x family)",
2109	    {	PCI_VENDOR_SIIG,	PCI_PRODUCT_SIIG_CYBER20_4S650, 0, 0 },
2110	    {	0xffff,	0xffff,	0,	0	},
2111	    {
2112		{ PUC_PORT_TYPE_COM, 0x10, 0x00,
2113		    (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
2114		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ * 8 },
2115		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
2116		{ PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ * 8 },
2117	    },
2118	},
2119
2120	/* SIIG Cyber 4S PCI 16C850 (20x family): 4S */
2121	{   "SIIG Cyber 4S PCI 16C850 (20x family)",
2122	    {	PCI_VENDOR_SIIG,	PCI_PRODUCT_SIIG_CYBER20_4S850, 0, 0 },
2123	    {	0xffff,	0xffff,	0,	0	},
2124	    {
2125		{ PUC_PORT_TYPE_COM, 0x10, 0x00,
2126		    (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
2127		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ * 8 },
2128		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
2129		{ PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ * 8 },
2130	    },
2131	},
2132
2133	/* SIIG Cyber 2S1P PCI 16C550 (20x family): 2S, 1P */
2134	{   "SIIG Cyber 2S1P PCI 16C550 (20x family)",
2135	    {	PCI_VENDOR_SIIG,	PCI_PRODUCT_SIIG_CYBER20_2S1P550,
2136		0, 0 },
2137	    {	0xffff,	0xffff,	0,	0	},
2138	    {
2139		{ PUC_PORT_TYPE_COM, 0x10, 0x00,
2140		    (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
2141		{ PUC_PORT_TYPE_COM, 0x14, 0x00,
2142		    (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR1 },
2143		{ PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
2144	    },
2145	},
2146
2147	/* SIIG Cyber 2S1P PCI 16C650 (20x family): 2S, 1P */
2148	{   "SIIG Cyber 2S1P PCI 16C650 (20x family)",
2149	    {	PCI_VENDOR_SIIG,	PCI_PRODUCT_SIIG_CYBER20_2S1P650,
2150		0, 0 },
2151	    {	0xffff,	0xffff,	0,	0	},
2152	    {
2153		{ PUC_PORT_TYPE_COM, 0x10, 0x00,
2154		    (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
2155		{ PUC_PORT_TYPE_COM, 0x14, 0x00,
2156		    (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR1 },
2157		{ PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
2158	    },
2159	},
2160
2161	/* SIIG Cyber 2S1P PCI 16C850 (20x family): 2S, 1P */
2162	{   "SIIG Cyber 2S1P PCI 16C850 (20x family)",
2163	    {	PCI_VENDOR_SIIG,	PCI_PRODUCT_SIIG_CYBER20_2S1P850,
2164		0, 0 },
2165	    {	0xffff,	0xffff,	0,	0	},
2166	    {
2167		{ PUC_PORT_TYPE_COM, 0x10, 0x00,
2168		    (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
2169		{ PUC_PORT_TYPE_COM, 0x14, 0x00,
2170		    (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR1 },
2171		{ PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
2172	    },
2173	},
2174
2175	/* SIIG PS8000 PCI 8S 16C550 (20x family): 8S - 16 Byte FIFOs */
2176	{   "SIIG PS8000 PCI 8S 16C550 (20x family)",
2177	    {	PCI_VENDOR_SIIG,	PCI_PRODUCT_SIIG_PS8000P550, 0, 0 },
2178	    {	0xffff,	0xffff,	0,	0	},
2179	    {
2180		{ PUC_PORT_TYPE_COM, 0x10, 0x00,
2181		    (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
2182		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ * 8 },
2183		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
2184		{ PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ * 8 },
2185		{ PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ * 8 },
2186		{ PUC_PORT_TYPE_COM, 0x20, 0x08, COM_FREQ * 8 },
2187		{ PUC_PORT_TYPE_COM, 0x20, 0x10, COM_FREQ * 8 },
2188		{ PUC_PORT_TYPE_COM, 0x20, 0x18, COM_FREQ * 8 },
2189	    },
2190	},
2191
2192	/* SIIG PS8000 PCI 8S 16C650 (20x family): 8S - 32 Byte FIFOs */
2193	{   "SIIG PS8000 PCI 8S 16C650 (20x family)",
2194	    {	PCI_VENDOR_SIIG,	PCI_PRODUCT_SIIG_PS8000P650, 0, 0 },
2195	    {	0xffff,	0xffff,	0,	0	},
2196	    {
2197		{ PUC_PORT_TYPE_COM, 0x10, 0x00,
2198		    (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
2199		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ * 8 },
2200		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
2201		{ PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ * 8 },
2202		{ PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ * 8 },
2203		{ PUC_PORT_TYPE_COM, 0x20, 0x08, COM_FREQ * 8 },
2204		{ PUC_PORT_TYPE_COM, 0x20, 0x10, COM_FREQ * 8 },
2205		{ PUC_PORT_TYPE_COM, 0x20, 0x18, COM_FREQ * 8 },
2206	    },
2207	},
2208
2209	/* SIIG PS8000 PCI 8S 16C850 (20x family): 8S - 128 Byte FIFOs */
2210	{   "SIIG PS8000 PCI 8S 16C850 (20x family)",
2211	    {	PCI_VENDOR_SIIG,	PCI_PRODUCT_SIIG_PS8000P850, 0, 0 },
2212	    {	0xffff,	0xffff,	0,	0	},
2213	    {
2214		{ PUC_PORT_TYPE_COM, 0x10, 0x00,
2215		    (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
2216		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ * 8 },
2217		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
2218		{ PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ * 8 },
2219		{ PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ * 8 },
2220		{ PUC_PORT_TYPE_COM, 0x20, 0x08, COM_FREQ * 8 },
2221		{ PUC_PORT_TYPE_COM, 0x20, 0x10, COM_FREQ * 8 },
2222		{ PUC_PORT_TYPE_COM, 0x20, 0x18, COM_FREQ * 8 },
2223	    },
2224	},
2225
2226	/*
2227	 * SUNIX 40XX series of serial/parallel combo cards.
2228	 * Tested with 4055A and 4065A.
2229	 */
2230	{   "SUNIX 400X 1P",
2231	    {	PCI_VENDOR_SUNIX, PCI_PRODUCT_SUNIX_PCI2S550,
2232		PCI_VENDOR_SUNIX, 0x4000 },
2233	    {	0xffff,	0xffff,	0xffff,	0xeff0 },
2234	    {
2235		{ PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
2236	    },
2237	},
2238
2239	{   "SUNIX 401X 2P",
2240	    {	PCI_VENDOR_SUNIX, PCI_PRODUCT_SUNIX_PCI2S550,
2241		PCI_VENDOR_SUNIX, 0x4010 },
2242	    {	0xffff,	0xffff,	0xffff,	0xeff0 },
2243	    {
2244		{ PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
2245		{ PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
2246	    },
2247	},
2248
2249	{   "SUNIX 402X 1S",
2250	    {	PCI_VENDOR_SUNIX, PCI_PRODUCT_SUNIX_PCI2S550,
2251		PCI_VENDOR_SUNIX, 0x4020 },
2252	    {	0xffff,	0xffff,	0xffff,	0xeff0 },
2253	    {
2254		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8},
2255	    },
2256	},
2257
2258	{   "SUNIX 403X 2S",
2259	    {	PCI_VENDOR_SUNIX, PCI_PRODUCT_SUNIX_PCI2S550,
2260		PCI_VENDOR_SUNIX, 0x4030 },
2261	    {	0xffff,	0xffff,	0xffff,	0xeff0 },
2262	    {
2263		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8},
2264		{ PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8},
2265	    },
2266	},
2267
2268	{   "SUNIX 4036 2S",
2269	    {	PCI_VENDOR_SUNIX, PCI_PRODUCT_SUNIX_PCI2S550,
2270		PCI_VENDOR_SUNIX, 0x0002 },
2271	    {	0xffff,	0xffff,	0xffff,	0xeff0 },
2272	    {
2273		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8},
2274		{ PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8},
2275	    },
2276	},
2277
2278	{   "SUNIX 405X 4S",
2279	    {	PCI_VENDOR_SUNIX, PCI_PRODUCT_SUNIX_PCI2S550,
2280		PCI_VENDOR_SUNIX, 0x4050 },
2281	    {	0xffff,	0xffff,	0xffff,	0xeff0 },
2282	    {
2283		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8},
2284		{ PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8},
2285		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ},
2286		{ PUC_PORT_TYPE_COM, 0x14, 0x08, COM_FREQ},
2287	    },
2288	},
2289
2290	{   "SUNIX 406X 8S",
2291	    {	PCI_VENDOR_SUNIX, PCI_PRODUCT_SUNIX_PCI2S550,
2292		PCI_VENDOR_SUNIX, 0x4060 },
2293	    {	0xffff,	0xffff,	0xffff,	0xeff0 },
2294	    {
2295		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8},
2296		{ PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8},
2297		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ},
2298		{ PUC_PORT_TYPE_COM, 0x14, 0x08, COM_FREQ},
2299		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ},
2300		{ PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ},
2301		{ PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ},
2302		{ PUC_PORT_TYPE_COM, 0x24, 0x00, COM_FREQ},
2303	    },
2304	},
2305
2306	{   "SUNIX 407X 2S/1P",
2307	    {	PCI_VENDOR_SUNIX, PCI_PRODUCT_SUNIX_PCI2S550,
2308		PCI_VENDOR_SUNIX, 0x4070 },
2309	    {	0xffff,	0xffff,	0xffff,	0xeff0 },
2310	    {
2311		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8},
2312		{ PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8},
2313		{ PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
2314	    },
2315	},
2316
2317	{   "SUNIX 408X 2S/2P",
2318	    {	PCI_VENDOR_SUNIX, PCI_PRODUCT_SUNIX_PCI2S550,
2319		PCI_VENDOR_SUNIX, 0x4080 },
2320	    {	0xffff,	0xffff,	0xffff,	0xeff0 },
2321	    {
2322		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8},
2323		{ PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8},
2324		{ PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
2325		{ PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 },
2326	    },
2327	},
2328
2329	{   "SUNIX 409X 4S/2P",
2330	    {	PCI_VENDOR_SUNIX, PCI_PRODUCT_SUNIX_PCI2S550,
2331		PCI_VENDOR_SUNIX, 0x4090 },
2332	    {	0xffff,	0xffff,	0xffff,	0xeff0 },
2333	    {
2334		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8},
2335		{ PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8},
2336		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ},
2337		{ PUC_PORT_TYPE_COM, 0x14, 0x08, COM_FREQ},
2338		{ PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
2339		{ PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 },
2340	    },
2341	},
2342
2343	/*
2344	 * Dolphin Peripherals 4036 (dual serial port) card.
2345	 * (Dolpin 4025 has the same ID but only one port)
2346	 */
2347	{   "Dolphin Peripherals 4036",
2348	    {	PCI_VENDOR_SUNIX, PCI_PRODUCT_SUNIX_PCI2S550,
2349		0x0,	0x0	},
2350	    {	0xffff,	0xffff,	0x0,	0x0	},
2351	    {
2352		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8},
2353		{ PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8},
2354	    },
2355	},
2356
2357	/*
2358	 * XXX no entry because I have no data:
2359	 * XXX Dolphin Peripherals 4078 (dual serial and single parallel)
2360	 */
2361
2362	/* SD-LAB PCI I/O Card 4S */
2363	{   "Syba Tech Ltd. PCI-4S",
2364	    {   PCI_VENDOR_SYBA, PCI_PRODUCT_SYBA_4S,		0, 0	},
2365	    {	0xffff,	0xffff,					0, 0	},
2366	    {
2367		{ PUC_PORT_TYPE_COM, 0x10, 0x3e8, COM_FREQ },
2368		{ PUC_PORT_TYPE_COM, 0x10, 0x2e8, COM_FREQ },
2369		{ PUC_PORT_TYPE_COM, 0x10, 0x3f8, COM_FREQ },
2370		{ PUC_PORT_TYPE_COM, 0x10, 0x2f8, COM_FREQ },
2371	    },
2372	},
2373
2374	/* SD-LAB PCI I/O Card 4S2P */
2375	{   "Syba Tech Ltd. PCI-4S2P-550-ECP",
2376	    {   PCI_VENDOR_SYBA, PCI_PRODUCT_SYBA_4S2P,		0, 0	},
2377	    {	0xffff,	0xffff,					0, 0	},
2378	    {
2379		{ PUC_PORT_TYPE_COM, 0x10, 0x2e8, COM_FREQ },
2380		{ PUC_PORT_TYPE_COM, 0x10, 0x2f8, COM_FREQ },
2381		{ PUC_PORT_TYPE_LPT, 0x10, 0x000, 0x00 },
2382		{ PUC_PORT_TYPE_COM, 0x10, 0x3e8, COM_FREQ },
2383		{ PUC_PORT_TYPE_COM, 0x10, 0x3f8, COM_FREQ },
2384		{ PUC_PORT_TYPE_LPT, 0x10, 0x000, 0x00 },
2385	    },
2386	},
2387
2388	/* SystemBase SB16C1054 UARTs */
2389	{   "SystemBase SB16C1054",
2390	    {	PCI_VENDOR_SYSTEMBASE, PCI_PRODUCT_SYSTEMBASE_SB16C1054, 0, 0 },
2391	    {	0xffff,	0xffff,						 0, 0 },
2392	    {
2393		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
2394		{ PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ },
2395		{ PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ },
2396		{ PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ },
2397	    },
2398	},
2399
2400	/* SystemBase SB16C1058 UARTs */
2401	{   "SystemBase SB16C1058",
2402	    {   PCI_VENDOR_SYSTEMBASE, PCI_PRODUCT_SYSTEMBASE_SB16C1058, 0, 0 },
2403	    {	0xffff,	0xffff,						 0, 0 },
2404	    {
2405		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
2406		{ PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ },
2407		{ PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ },
2408		{ PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ },
2409		{ PUC_PORT_TYPE_COM, 0x10, 0x20, COM_FREQ },
2410		{ PUC_PORT_TYPE_COM, 0x10, 0x28, COM_FREQ },
2411		{ PUC_PORT_TYPE_COM, 0x10, 0x30, COM_FREQ },
2412		{ PUC_PORT_TYPE_COM, 0x10, 0x38, COM_FREQ },
2413	    },
2414	},
2415
2416	/*
2417	 * VScom PCI 010L
2418	 * one lpt
2419	 * untested
2420	 */
2421	{   "VScom PCI-010L",
2422	    {	PCI_VENDOR_TITAN, PCI_PRODUCT_TITAN_VSCOM_PCI010L,    0, 0 },
2423	    {	0xffff, 0xffff,					0, 0 },
2424	    {
2425		{ PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 },
2426	    },
2427	},
2428
2429	/*
2430	 * VScom PCI 100L
2431	 * one com
2432	 * The one I have defaults to a fequency of 14.7456 MHz which is
2433	 * jumper J1 set to 2-3.
2434	 */
2435	{   "VScom PCI-100L",
2436	    {	PCI_VENDOR_TITAN, PCI_PRODUCT_TITAN_VSCOM_PCI100L,	0, 0 },
2437	    {	0xffff, 0xffff,						0, 0 },
2438	    {
2439		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ * 8 },
2440	    },
2441	},
2442
2443	/*
2444	 * VScom PCI 110L
2445	 * one com, one lpt
2446	 * untested
2447	 */
2448	{   "VScom PCI-110L",
2449	    {	PCI_VENDOR_TITAN, PCI_PRODUCT_TITAN_VSCOM_PCI110L,	0, 0 },
2450	    {	0xffff, 0xffff,						0, 0 },
2451	    {
2452		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ * 8 },
2453		{ PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 },
2454	    },
2455	},
2456
2457	/*
2458	 * VScom PCI-200L has 2 x 16550 UARTS.
2459	 * The board has a jumper which allows you to select a clock speed
2460	 * of either 14.7456MHz or 1.8432MHz. By default it runs at
2461	 * the fast speed.
2462	 */
2463	{   "VScom PCI-200L with 2 x 16550 UARTS",
2464	    {	PCI_VENDOR_TITAN, PCI_PRODUCT_TITAN_VSCOM_PCI200L,	0, 0 },
2465	    {	0xffff, 0xffff,						0, 0 },
2466	    {
2467		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ * 8 },
2468		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
2469	    },
2470	},
2471
2472	/*
2473	 * VScom PCI-210L
2474	 * Has a jumper for frequency selection, defaults to 8x as used here
2475	 * two com, one lpt
2476	 */
2477	{   "VScom PCI-210L",
2478	    {	PCI_VENDOR_TITAN, PCI_PRODUCT_TITAN_VSCOM_PCI210L,	0, 0 },
2479	    {	0xffff, 0xffff,					0, 0 },
2480	    {
2481		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ * 8 },
2482		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
2483		{ PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 },
2484	    },
2485	},
2486
2487	/* VScom PCI-200Li */
2488	{   "VScom PCI-200Li",
2489	    {	PCI_VENDOR_TITAN, PCI_PRODUCT_TITAN_VSCOM_PCI200LI,	0, 0 },
2490	    {	0xffff, 0xffff,						0, 0 },
2491	    {
2492		{ PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ },
2493		{ PUC_PORT_TYPE_COM, 0x20, 0x08, COM_FREQ },
2494	    },
2495	},
2496
2497	/* PCI-400L: VendorID is reported to be 0x10d2 instead of 0x14d2. */
2498	{   "VScom PCI-400L",
2499	    {	PCI_VENDOR_MOLEX, PCI_PRODUCT_MOLEX_VSCOM_PCI400L,	0, 0 },
2500	    {	0xffff, 0xffff,					0, 0 },
2501	    {
2502		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ * 8 },
2503		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
2504		{ PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ * 8 },
2505		{ PUC_PORT_TYPE_COM, 0x20, 0x08, COM_FREQ * 8 },
2506	    },
2507	},
2508
2509	{   "VScom PCI-800L",
2510	    {	PCI_VENDOR_TITAN, PCI_PRODUCT_TITAN_VSCOM_PCI800L,	0, 0 },
2511	    {	0xffff,	0xffff,	0,	0	},
2512	    {
2513		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ * 8 },
2514		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
2515		{ PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ * 8 },
2516		{ PUC_PORT_TYPE_COM, 0x20, 0x08, COM_FREQ * 8 },
2517		{ PUC_PORT_TYPE_COM, 0x20, 0x10, COM_FREQ * 8 },
2518		{ PUC_PORT_TYPE_COM, 0x20, 0x18, COM_FREQ * 8 },
2519		{ PUC_PORT_TYPE_COM, 0x20, 0x20, COM_FREQ * 8 },
2520		{ PUC_PORT_TYPE_COM, 0x20, 0x28, COM_FREQ * 8 },
2521	    },
2522	},
2523
2524	{   "VScom PCI-011H",
2525	    {	PCI_VENDOR_TITAN, PCI_PRODUCT_TITAN_VSCOM_PCI011H,	0, 0 },
2526	    {	0xffff, 0xffff,					0, 0 },
2527	    {
2528		{ PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
2529	    },
2530	},
2531
2532	/*
2533	 * VScom PCI x10H, 1 lpt.
2534	 * is the lpt part of VScom 110H, 210H, 410H
2535	 */
2536	{   "VScom PCI-x10H",
2537	    {	PCI_VENDOR_TITAN, PCI_PRODUCT_TITAN_VSCOM_PCIx10H,	0, 0 },
2538	    {	0xffff, 0xffff,					0, 0 },
2539	    {
2540		{ PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
2541	    },
2542	},
2543
2544	/*
2545	 * VScom PCI 100H, little sister of 800H, 1 com.
2546	 * also com part of VScom 110H
2547	 * The one I have defaults to a fequency of 14.7456 MHz which is
2548	 * jumper J1 set to 2-3.
2549	 */
2550	{   "VScom PCI-100H",
2551	    {	PCI_VENDOR_TITAN, PCI_PRODUCT_TITAN_VSCOM_PCI100H,	0, 0 },
2552	    {	0xffff, 0xffff,					0, 0 },
2553	    {
2554		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 },
2555	    },
2556	},
2557
2558	/*
2559	 * VScom PCI-800H. Uses 8 16950 UART, behind a PCI chips that offers
2560	 * 4 com port on PCI device 0 and 4 on PCI device 1. PCI device 0 has
2561	 * device ID 3 and PCI device 1 device ID 4.
2562	 */
2563	{   "VScom PCI-800H",
2564	    {	PCI_VENDOR_TITAN, PCI_PRODUCT_TITAN_VSCOM_PCI800H,	0, 0 },
2565	    {	0xffff,	0xffff,	0,	0	},
2566	    {
2567		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 },
2568		{ PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8 },
2569		{ PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 8 },
2570		{ PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 8 },
2571	    },
2572	},
2573	{   "VScom PCI-800H",
2574	    {	PCI_VENDOR_TITAN, PCI_PRODUCT_TITAN_VSCOM_PCI800H_1,	0, 0 },
2575	    {	0xffff,	0xffff,	0,	0	},
2576	    {
2577		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 },
2578		{ PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8 },
2579		{ PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 8 },
2580		{ PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 8 },
2581	    },
2582	},
2583        {   "VScom PCI-200H",
2584            {   PCI_VENDOR_TITAN, PCI_PRODUCT_TITAN_VSCOM_PCI200H, 0, 0 },
2585            {   0xffff, 0xffff, 0,      0       },
2586            {
2587                { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 },
2588                { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8 },
2589            },
2590        },
2591
2592	{   "VScom PCI-010HV2",
2593	    {   PCI_VENDOR_TITAN, PCI_PRODUCT_TITAN_VSCOM_PCI010HV2,	0, 0 },
2594	    {   0xffff, 0xffff, 0,      0       },
2595	    {
2596		{ PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
2597	    },
2598	},
2599	{   "VScom PCI-200HV2",
2600	    {   PCI_VENDOR_TITAN, PCI_PRODUCT_TITAN_VSCOM_PCI200HV2,	0, 0 },
2601	    {   0xffff, 0xffff, 0,      0       },
2602	    {
2603		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 },
2604		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ * 8 },
2605	    },
2606	},
2607
2608	/* US Robotics (3Com) PCI Modems */
2609	{   "US Robotics (3Com) 3CP5609 PCI 16550 Modem",
2610	    {	PCI_VENDOR_USR,	PCI_PRODUCT_USR_3CP5609, 0, 0 },
2611	    {	0xffff,	0xffff,	0,	0	},
2612	    {
2613		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
2614	    },
2615	},
2616
2617	{ .name = NULL },
2618};
2619