xref: /netbsd-src/sys/dev/pci/pucdata.c (revision 8b0f9554ff8762542c4defc4f70e1eb76fb508fa)
1 /*	$NetBSD: pucdata.c,v 1.52 2007/11/01 18:18:37 jnemeth 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.52 2007/11/01 18:18:37 jnemeth 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 	 * SUNIX 40XX series of serial/parallel combo cards.
53 	 * Tested with 4055A and 4065A.
54 	 */
55 	{   "SUNIX 400X 1P",
56 	    {	0x1409,	0x7168,	0x1409,	0x4000 },
57 	    {	0xffff,	0xffff,	0xffff,	0xeff0 },
58 	    {
59 		{ PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
60 	    },
61 	},
62 
63 	{   "SUNIX 401X 2P",
64 	    {	0x1409,	0x7168,	0x1409,	0x4010 },
65 	    {	0xffff,	0xffff,	0xffff,	0xeff0 },
66 	    {
67 		{ PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
68 		{ PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
69 	    },
70 	},
71 
72 	{   "SUNIX 402X 1S",
73 	    {	0x1409,	0x7168,	0x1409,	0x4020 },
74 	    {	0xffff,	0xffff,	0xffff,	0xeff0 },
75 	    {
76 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8},
77 	    },
78 	},
79 
80 	{   "SUNIX 403X 2S",
81 	    {	0x1409,	0x7168,	0x1409,	0x4030 },
82 	    {	0xffff,	0xffff,	0xffff,	0xeff0 },
83 	    {
84 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8},
85 		{ PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8},
86 	    },
87 	},
88 
89 	{   "SUNIX 405X 4S",
90 	    {	0x1409,	0x7168,	0x1409,	0x4050 },
91 	    {	0xffff,	0xffff,	0xffff,	0xeff0 },
92 	    {
93 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8},
94 		{ PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8},
95 		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ},
96 		{ PUC_PORT_TYPE_COM, 0x14, 0x08, COM_FREQ},
97 	    },
98 	},
99 
100 	{   "SUNIX 406X 8S",
101 	    {	0x1409,	0x7168,	0x1409,	0x4060 },
102 	    {	0xffff,	0xffff,	0xffff,	0xeff0 },
103 	    {
104 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8},
105 		{ PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8},
106 		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ},
107 		{ PUC_PORT_TYPE_COM, 0x14, 0x08, COM_FREQ},
108 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ},
109 		{ PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ},
110 		{ PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ},
111 		{ PUC_PORT_TYPE_COM, 0x24, 0x00, COM_FREQ},
112 	    },
113 	},
114 
115 	{   "SUNIX 407X 2S/1P",
116 	    {	0x1409,	0x7168,	0x1409,	0x4070 },
117 	    {	0xffff,	0xffff,	0xffff,	0xeff0 },
118 	    {
119 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8},
120 		{ PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8},
121 		{ PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
122 	    },
123 	},
124 
125 	{   "SUNIX 408X 2S/2P",
126 	    {	0x1409,	0x7168,	0x1409,	0x4080 },
127 	    {	0xffff,	0xffff,	0xffff,	0xeff0 },
128 	    {
129 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8},
130 		{ PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8},
131 		{ PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
132 		{ PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 },
133 	    },
134 	},
135 
136 	{   "SUNIX 409X 4S/2P",
137 	    {	0x1409,	0x7168,	0x1409,	0x4090 },
138 	    {	0xffff,	0xffff,	0xffff,	0xeff0 },
139 	    {
140 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8},
141 		{ PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8},
142 		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ},
143 		{ PUC_PORT_TYPE_COM, 0x14, 0x08, COM_FREQ},
144 		{ PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
145 		{ PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 },
146 	    },
147 	},
148 
149 	/*
150 	 * XXX no entry because I have no data:
151 	 * XXX Dolphin Peripherals 4006 (single parallel)
152 	 */
153 
154 	/*
155 	 * Dolphin Peripherals 4014 (dual parallel port) card.  PLX 9050, with
156 	 * a seemingly-lame EEPROM setup that puts the Dolphin IDs
157 	 * into the subsystem fields, and claims that it's a
158 	 * network/misc (0x02/0x80) device.
159 	 */
160 	{   "Dolphin Peripherals 4014",
161 	    {	0x10b5,	0x9050,	0xd84d,	0x6810	},
162 	    {	0xffff,	0xffff,	0xffff,	0xffff	},
163 	    {
164 		{ PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 },
165 		{ PUC_PORT_TYPE_LPT, 0x24, 0x00, 0x00 },
166 	    },
167 	},
168 
169 	/*
170 	 * XXX Dolphin Peripherals 4025 (single serial)
171 	 * (clashes with Dolphin Peripherals  4036 (2s variant)
172 	 */
173 
174 	/*
175 	 * Dolphin Peripherals 4035 (dual serial port) card.  PLX 9050, with
176 	 * a seemingly-lame EEPROM setup that puts the Dolphin IDs
177 	 * into the subsystem fields, and claims that it's a
178 	 * network/misc (0x02/0x80) device.
179 	 */
180 	{   "Dolphin Peripherals 4035",
181 	    {	0x10b5,	0x9050,	0xd84d,	0x6808	},
182 	    {	0xffff,	0xffff,	0xffff,	0xffff	},
183 	    {
184 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
185 		{ PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
186 	    },
187 	},
188 
189 	/*
190 	 * Dolphin Peripherals 4036 (dual serial port) card.
191 	 * (Dolpin 4025 has the same ID but only one port)
192 	 */
193 	{   "Dolphin Peripherals 4036",
194 	    {	0x1409,	0x7168,	0x0,	0x0	},
195 	    {	0xffff,	0xffff,	0x0,	0x0	},
196 	    {
197 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8},
198 		{ PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8},
199 	    },
200 	},
201 
202 	/*
203 	 * XXX no entry because I have no data:
204 	 * XXX Dolphin Peripherals 4078 (dual serial and single parallel)
205 	 */
206 
207 
208 	/*
209 	 * SIIG Boards.
210 	 *
211 	 * SIIG provides documentation for their boards at:
212 	 * <URL:http://www.siig.com/driver.htm>
213 	 *
214 	 * Please excuse the weird ordering, it's the order they
215 	 * use in their documentation.
216 	 */
217 
218 	/*
219 	 * SIIG "10x" family boards.
220 	 */
221 
222 	/* SIIG Cyber Serial PCI 16C550 (10x family): 1S */
223 	{   "SIIG Cyber Serial PCI 16C550 (10x family)",
224 	    {	0x131f,	0x1000,	0,	0	},
225 	    {	0xffff,	0xffff,	0,	0	},
226 	    {
227 		{ PUC_PORT_TYPE_COM, 0x18, 0x00,
228 		    (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR1 },
229 	    },
230 	},
231 
232 	/* SIIG Cyber Serial PCI 16C650 (10x family): 1S */
233 	{   "SIIG Cyber Serial PCI 16C650 (10x family)",
234 	    {	0x131f,	0x1001,	0,	0	},
235 	    {	0xffff,	0xffff,	0,	0	},
236 	    {
237 		{ PUC_PORT_TYPE_COM, 0x18, 0x00,
238 		    (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR1 },
239 	    },
240 	},
241 
242 	/* SIIG Cyber Serial PCI 16C850 (10x family): 1S */
243 	{   "SIIG Cyber Serial PCI 16C850 (10x family)",
244 	    {	0x131f,	0x1002,	0,	0	},
245 	    {	0xffff,	0xffff,	0,	0	},
246 	    {
247 		{ PUC_PORT_TYPE_COM, 0x18, 0x00,
248 		    (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR1 },
249 	    },
250 	},
251 
252 	/* SIIG Cyber I/O PCI 16C550 (10x family): 1S, 1P */
253 	{   "SIIG Cyber I/O PCI 16C550 (10x family)",
254 	    {	0x131f,	0x1010,	0,	0	},
255 	    {	0xffff,	0xffff,	0,	0	},
256 	    {
257 		{ PUC_PORT_TYPE_COM, 0x18, 0x00,
258 		    (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR0 },
259 		{ PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 },
260 	    },
261 	},
262 
263 	/* SIIG Cyber I/O PCI 16C650 (10x family): 1S, 1P */
264 	{   "SIIG Cyber I/O PCI 16C650 (10x family)",
265 	    {	0x131f,	0x1011,	0,	0	},
266 	    {	0xffff,	0xffff,	0,	0	},
267 	    {
268 		{ PUC_PORT_TYPE_COM, 0x18, 0x00,
269 		    (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR0 },
270 		{ PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 },
271 	    },
272 	},
273 
274 	/* SIIG Cyber I/O PCI 16C850 (10x family): 1S, 1P */
275 	{   "SIIG Cyber I/O PCI 16C850 (10x family)",
276 	    {	0x131f,	0x1012,	0,	0	},
277 	    {	0xffff,	0xffff,	0,	0	},
278 	    {
279 		{ PUC_PORT_TYPE_COM, 0x18, 0x00,
280 		    (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR0 },
281 		{ PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 },
282 	    },
283 	},
284 
285 	/* SIIG Cyber Parallel PCI (10x family): 1P */
286 	{   "SIIG Cyber Parallel PCI (10x family)",
287 	    {	0x131f,	0x1020,	0,	0	},
288 	    {	0xffff,	0xffff,	0,	0	},
289 	    {
290 		{ PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
291 	    },
292 	},
293 
294 	/* SIIG Cyber Parallel Dual PCI (10x family): 2P */
295 	{   "SIIG Cyber Parallel Dual PCI (10x family)",
296 	    {	0x131f,	0x1021,	0,	0	},
297 	    {	0xffff,	0xffff,	0,	0	},
298 	    {
299 		{ PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
300 		{ PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 },
301 	    },
302 	},
303 
304 	/* SIIG Cyber Serial Dual PCI 16C550 (10x family): 2S */
305 	{   "SIIG Cyber Serial Dual PCI 16C550 (10x family)",
306 	    {	0x131f,	0x1030,	0,	0	},
307 	    {	0xffff,	0xffff,	0,	0	},
308 	    {
309 		{ PUC_PORT_TYPE_COM, 0x18, 0x00,
310 		    (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR2 },
311 		{ PUC_PORT_TYPE_COM, 0x1c, 0x00,
312 		    (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR3 },
313 	    },
314 	},
315 
316 	/* SIIG Cyber Serial Dual PCI 16C650 (10x family): 2S */
317 	{   "SIIG Cyber Serial Dual PCI 16C650 (10x family)",
318 	    {	0x131f,	0x1031,	0,	0	},
319 	    {	0xffff,	0xffff,	0,	0	},
320 	    {
321 		{ PUC_PORT_TYPE_COM, 0x18, 0x00,
322 		    (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR2 },
323 		{ PUC_PORT_TYPE_COM, 0x1c, 0x00,
324 		    (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR3 },
325 	    },
326 	},
327 
328 	/* SIIG Cyber Serial Dual PCI 16C850 (10x family): 2S */
329 	{   "SIIG Cyber Serial Dual PCI 16C850 (10x family)",
330 	    {	0x131f,	0x1032,	0,	0	},
331 	    {	0xffff,	0xffff,	0,	0	},
332 	    {
333 		{ PUC_PORT_TYPE_COM, 0x18, 0x00,
334 		    (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR2 },
335 		{ PUC_PORT_TYPE_COM, 0x1c, 0x00,
336 		    (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR3 },
337 	    },
338 	},
339 
340 	/* SIIG Cyber 2S1P PCI 16C550 (10x family): 2S, 1P */
341 	{   "SIIG Cyber 2S1P PCI 16C550 (10x family)",
342 	    {	0x131f,	0x1034,	0,	0	},	/* XXX really? */
343 	    {	0xffff,	0xffff,	0,	0	},
344 	    {
345 		{ PUC_PORT_TYPE_COM, 0x18, 0x00,
346 		    (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR2 },
347 		{ PUC_PORT_TYPE_COM, 0x1c, 0x00,
348 		    (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR3 },
349 		{ PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 },
350 	    },
351 	},
352 
353 	/* SIIG Cyber 2S1P PCI 16C650 (10x family): 2S, 1P */
354 	{   "SIIG Cyber 2S1P PCI 16C650 (10x family)",
355 	    {	0x131f,	0x1035,	0,	0	},	/* XXX really? */
356 	    {	0xffff,	0xffff,	0,	0	},
357 	    {
358 		{ PUC_PORT_TYPE_COM, 0x18, 0x00,
359 		    (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR2 },
360 		{ PUC_PORT_TYPE_COM, 0x1c, 0x00,
361 		    (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR3 },
362 		{ PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 },
363 	    },
364 	},
365 
366 	/* SIIG Cyber 2S1P PCI 16C850 (10x family): 2S, 1P */
367 	{   "SIIG Cyber 2S1P PCI 16C850 (10x family)",
368 	    {	0x131f,	0x1036,	0,	0	},	/* XXX really? */
369 	    {	0xffff,	0xffff,	0,	0	},
370 	    {
371 		{ PUC_PORT_TYPE_COM, 0x18, 0x00,
372 		    (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR2 },
373 		{ PUC_PORT_TYPE_COM, 0x1c, 0x00,
374 		    (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR3 },
375 		{ PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 },
376 	    },
377 	},
378 
379 	/* SIIG Cyber 4S PCI 16C550 (10x family): 4S */
380 	{   "SIIG Cyber 4S PCI 16C550 (10x family)",
381 	    {	0x131f,	0x1050,	0,	0	},
382 	    {	0xffff,	0xffff,	0,	0	},
383 	    {
384 		{ PUC_PORT_TYPE_COM, 0x18, 0x00,
385 		    (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR0 },
386 		{ PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ * 8 },
387 		{ PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ * 8 },
388 		{ PUC_PORT_TYPE_COM, 0x24, 0x00, COM_FREQ * 8 },
389 	    },
390 	},
391 
392 	/* SIIG Cyber 4S PCI 16C650 (10x family): 4S */
393 	{   "SIIG Cyber 4S PCI 16C650 (10x family)",
394 	    {	0x131f,	0x1051,	0,	0	},
395 	    {	0xffff,	0xffff,	0,	0	},
396 	    {
397 		{ PUC_PORT_TYPE_COM, 0x18, 0x00,
398 		    (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR0 },
399 		{ PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ * 8 },
400 		{ PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ * 8 },
401 		{ PUC_PORT_TYPE_COM, 0x24, 0x00, COM_FREQ * 8 },
402 	    },
403 	},
404 
405 	/* SIIG Cyber 4S PCI 16C850 (10x family): 4S */
406 	{   "SIIG Cyber 4S PCI 16C850 (10x family)",
407 	    {	0x131f,	0x1052,	0,	0	},
408 	    {	0xffff,	0xffff,	0,	0	},
409 	    {
410 		{ PUC_PORT_TYPE_COM, 0x18, 0x00,
411 		    (COM_FREQ * 8)|PUC_COM_SIIG10x|PUC_PORT_USR0 },
412 		{ PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ * 8 },
413 		{ PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ * 8 },
414 		{ PUC_PORT_TYPE_COM, 0x24, 0x00, COM_FREQ * 8 },
415 	    },
416 	},
417 
418 	/*
419 	 * SIIG "20x" family boards.
420 	 */
421 
422 	/* SIIG Cyber Parallel PCI (20x family): 1P */
423 	{   "SIIG Cyber Parallel PCI (20x family)",
424 	    {	0x131f,	0x2020,	0,	0	},
425 	    {	0xffff,	0xffff,	0,	0	},
426 	    {
427 		{ PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
428 	    },
429 	},
430 
431 	/* SIIG Cyber Parallel Dual PCI (20x family): 2P */
432 	{   "SIIG Cyber Parallel Dual PCI (20x family)",
433 	    {	0x131f,	0x2021,	0,	0	},
434 	    {	0xffff,	0xffff,	0,	0	},
435 	    {
436 		{ PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
437 		{ PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
438 	    },
439 	},
440 
441 	/* SIIG Cyber 2P1S PCI 16C550 (20x family): 1S, 2P */
442 	{   "SIIG Cyber 2P1S PCI 16C550 (20x family)",
443 	    {	0x131f,	0x2040,	0,	0	},
444 	    {	0xffff,	0xffff,	0,	0	},
445 	    {
446 		{ PUC_PORT_TYPE_COM, 0x10, 0x00,
447 		    (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
448 		{ PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 },
449 		{ PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 },
450 	    },
451 	},
452 
453 	/* SIIG Cyber 2P1S PCI 16C650 (20x family): 1S, 2P */
454 	{   "SIIG Cyber 2P1S PCI 16C650 (20x family)",
455 	    {	0x131f,	0x2041,	0,	0	},
456 	    {	0xffff,	0xffff,	0,	0	},
457 	    {
458 		{ PUC_PORT_TYPE_COM, 0x10, 0x00,
459 		    (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
460 		{ PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 },
461 		{ PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 },
462 	    },
463 	},
464 
465 	/* SIIG Cyber 2P1S PCI 16C850 (20x family): 1S, 2P */
466 	{   "SIIG Cyber 2P1S PCI 16C850 (20x family)",
467 	    {	0x131f,	0x2042,	0,	0	},
468 	    {	0xffff,	0xffff,	0,	0	},
469 	    {
470 		{ PUC_PORT_TYPE_COM, 0x10, 0x00,
471 		    (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
472 		{ PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 },
473 		{ PUC_PORT_TYPE_LPT, 0x1c, 0x00, 0x00 },
474 	    },
475 	},
476 
477 	/* SIIG Cyber Serial PCI 16C550 (20x family): 1S */
478 	{   "SIIG Cyber Serial PCI 16C550 (20x family)",
479 	    {	0x131f,	0x2000,	0,	0	},
480 	    {	0xffff,	0xffff,	0,	0	},
481 	    {
482 		{ PUC_PORT_TYPE_COM, 0x10, 0x00,
483 		    (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
484 	    },
485 	},
486 
487 	/* SIIG Cyber Serial PCI 16C650 (20x family): 1S */
488 	{   "SIIG Cyber Serial PCI 16C650 (20x family)",
489 	    {	0x131f,	0x2001,	0,	0	},
490 	    {	0xffff,	0xffff,	0,	0	},
491 	    {
492 		{ PUC_PORT_TYPE_COM, 0x10, 0x00,
493 		    (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
494 	    },
495 	},
496 
497 	/* SIIG Cyber Serial PCI 16C850 (20x family): 1S */
498 	{   "SIIG Cyber Serial PCI 16C850 (20x family)",
499 	    {	0x131f,	0x2002,	0,	0	},
500 	    {	0xffff,	0xffff,	0,	0	},
501 	    {
502 		{ PUC_PORT_TYPE_COM, 0x10, 0x00,
503 		    (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
504 	    },
505 	},
506 
507 	/* SIIG Cyber I/O PCI 16C550 (20x family): 1S, 1P */
508 	{   "SIIG Cyber I/O PCI 16C550 (20x family)",
509 	    {	0x131f,	0x2010,	0,	0	},
510 	    {	0xffff,	0xffff,	0,	0	},
511 	    {
512 		{ PUC_PORT_TYPE_COM, 0x10, 0x00,
513 		    (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
514 		{ PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 },
515 	    },
516 	},
517 
518 	/* SIIG Cyber I/O PCI 16C650 (20x family): 1S, 1P */
519 	{   "SIIG Cyber I/O PCI 16C650 (20x family)",
520 	    {	0x131f,	0x2011,	0,	0	},
521 	    {	0xffff,	0xffff,	0,	0	},
522 	    {
523 		{ PUC_PORT_TYPE_COM, 0x10, 0x00,
524 		    (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
525 		{ PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 },
526 	    },
527 	},
528 
529 	/* SIIG Cyber I/O PCI 16C850 (20x family): 1S, 1P */
530 	{   "SIIG Cyber I/O PCI 16C850 (20x family)",
531 	    {	0x131f,	0x2012,	0,	0	},
532 	    {	0xffff,	0xffff,	0,	0	},
533 	    {
534 		{ PUC_PORT_TYPE_COM, 0x10, 0x00,
535 		    (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
536 		{ PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 },
537 	    },
538 	},
539 
540 	/* SIIG Cyber Serial Dual PCI 16C550 (20x family): 2S */
541 	{   "SIIG Cyber Serial Dual PCI 16C550 (20x family)",
542 	    {	0x131f,	0x2030,	0,	0	},
543 	    {	0xffff,	0xffff,	0,	0	},
544 	    {
545 		{ PUC_PORT_TYPE_COM, 0x10, 0x00,
546 		    (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
547 		{ PUC_PORT_TYPE_COM, 0x14, 0x00,
548 		    (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR1 },
549 	    },
550 	},
551 
552 	/* SIIG Cyber Serial Dual PCI 16C650 (20x family): 2S */
553 	{   "SIIG Cyber Serial Dual PCI 16C650 (20x family)",
554 	    {	0x131f,	0x2031,	0,	0	},
555 	    {	0xffff,	0xffff,	0,	0	},
556 	    {
557 		{ PUC_PORT_TYPE_COM, 0x10, 0x00,
558 		    (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
559 		{ PUC_PORT_TYPE_COM, 0x14, 0x00,
560 		    (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR1 },
561 	    },
562 	},
563 
564 	/* SIIG Cyber Serial Dual PCI 16C850 (20x family): 2S */
565 	{   "SIIG Cyber Serial Dual PCI 16C850 (20x family)",
566 	    {	0x131f,	0x2032,	0,	0	},
567 	    {	0xffff,	0xffff,	0,	0	},
568 	    {
569 		{ PUC_PORT_TYPE_COM, 0x10, 0x00,
570 		    (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
571 		{ PUC_PORT_TYPE_COM, 0x14, 0x00,
572 		    (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR1 },
573 	    },
574 	},
575 
576 	/* SIIG Cyber 2S1P PCI 16C550 (20x family): 2S, 1P */
577 	{   "SIIG Cyber 2S1P PCI 16C550 (20x family)",
578 	    {	0x131f,	0x2060,	0,	0	},
579 	    {	0xffff,	0xffff,	0,	0	},
580 	    {
581 		{ PUC_PORT_TYPE_COM, 0x10, 0x00,
582 		    (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
583 		{ PUC_PORT_TYPE_COM, 0x14, 0x00,
584 		    (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR1 },
585 		{ PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
586 	    },
587 	},
588 
589 	/* SIIG Cyber 2S1P PCI 16C650 (20x family): 2S, 1P */
590 	{   "SIIG Cyber 2S1P PCI 16C650 (20x family)",
591 	    {	0x131f,	0x2061,	0,	0	},
592 	    {	0xffff,	0xffff,	0,	0	},
593 	    {
594 		{ PUC_PORT_TYPE_COM, 0x10, 0x00,
595 		    (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
596 		{ PUC_PORT_TYPE_COM, 0x14, 0x00,
597 		    (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR1 },
598 		{ PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
599 	    },
600 	},
601 
602 	/* SIIG Cyber 2S1P PCI 16C850 (20x family): 2S, 1P */
603 	{   "SIIG Cyber 2S1P PCI 16C850 (20x family)",
604 	    {	0x131f,	0x2062,	0,	0	},
605 	    {	0xffff,	0xffff,	0,	0	},
606 	    {
607 		{ PUC_PORT_TYPE_COM, 0x10, 0x00,
608 		    (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
609 		{ PUC_PORT_TYPE_COM, 0x14, 0x00,
610 		    (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR1 },
611 		{ PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
612 	    },
613 	},
614 
615 	/* SIIG Cyber 4S PCI 16C550 (20x family): 4S */
616 	{   "SIIG Cyber 4S PCI 16C550 (20x family)",
617 	    {	0x131f,	0x2050,	0,	0	},
618 	    {	0xffff,	0xffff,	0,	0	},
619 	    {
620 		{ PUC_PORT_TYPE_COM, 0x10, 0x00,
621 		    (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
622 		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ * 8 },
623 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
624 		{ PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ * 8 },
625 	    },
626 	},
627 
628 	/* SIIG Cyber 4S PCI 16C650 (20x family): 4S */
629 	{   "SIIG Cyber 4S PCI 16C650 (20x family)",
630 	    {	0x131f,	0x2051,	0,	0	},
631 	    {	0xffff,	0xffff,	0,	0	},
632 	    {
633 		{ PUC_PORT_TYPE_COM, 0x10, 0x00,
634 		    (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
635 		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ * 8 },
636 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
637 		{ PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ * 8 },
638 	    },
639 	},
640 
641 	/* SIIG Cyber 4S PCI 16C850 (20x family): 4S */
642 	{   "SIIG Cyber 4S PCI 16C850 (20x family)",
643 	    {	0x131f,	0x2052,	0,	0	},
644 	    {	0xffff,	0xffff,	0,	0	},
645 	    {
646 		{ PUC_PORT_TYPE_COM, 0x10, 0x00,
647 		    (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
648 		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ * 8 },
649 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
650 		{ PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ * 8 },
651 	    },
652 	},
653 
654 	/* SIIG PS8000 PCI 8S 16C550 (20x family): 8S - 16 Byte FIFOs */
655 	{   "SIIG PS8000 PCI 8S 16C550 (20x family)",
656 	    {	0x131f,	0x2080,	0,	0	},
657 	    {	0xffff,	0xffff,	0,	0	},
658 	    {
659 		{ PUC_PORT_TYPE_COM, 0x10, 0x00,
660 		    (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
661 		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ * 8 },
662 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
663 		{ PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ * 8 },
664 		{ PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ * 8 },
665 		{ PUC_PORT_TYPE_COM, 0x20, 0x08, COM_FREQ * 8 },
666 		{ PUC_PORT_TYPE_COM, 0x20, 0x10, COM_FREQ * 8 },
667 		{ PUC_PORT_TYPE_COM, 0x20, 0x18, COM_FREQ * 8 },
668 	    },
669 	},
670 
671 	/* SIIG PS8000 PCI 8S 16C650 (20x family): 8S - 32 Byte FIFOs */
672 	{   "SIIG PS8000 PCI 8S 16C650 (20x family)",
673 	    {	0x131f,	0x2081,	0,	0	},
674 	    {	0xffff,	0xffff,	0,	0	},
675 	    {
676 		{ PUC_PORT_TYPE_COM, 0x10, 0x00,
677 		    (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
678 		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ * 8 },
679 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
680 		{ PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ * 8 },
681 		{ PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ * 8 },
682 		{ PUC_PORT_TYPE_COM, 0x20, 0x08, COM_FREQ * 8 },
683 		{ PUC_PORT_TYPE_COM, 0x20, 0x10, COM_FREQ * 8 },
684 		{ PUC_PORT_TYPE_COM, 0x20, 0x18, COM_FREQ * 8 },
685 	    },
686 	},
687 
688 	/* SIIG PS8000 PCI 8S 16C850 (20x family): 8S - 128 Byte FIFOs */
689 	{   "SIIG PS8000 PCI 8S 16C850 (20x family)",
690 	    {	0x131f,	0x2082,	0,	0	},
691 	    {	0xffff,	0xffff,	0,	0	},
692 	    {
693 		{ PUC_PORT_TYPE_COM, 0x10, 0x00,
694 		    (COM_FREQ * 8)|PUC_COM_SIIG20x|PUC_PORT_USR0 },
695 		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ * 8 },
696 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
697 		{ PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ * 8 },
698 		{ PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ * 8 },
699 		{ PUC_PORT_TYPE_COM, 0x20, 0x08, COM_FREQ * 8 },
700 		{ PUC_PORT_TYPE_COM, 0x20, 0x10, COM_FREQ * 8 },
701 		{ PUC_PORT_TYPE_COM, 0x20, 0x18, COM_FREQ * 8 },
702 	    },
703 	},
704 	/* VScom PCI-200: 2S */
705 	{   "VScom PCI-200",
706 	    {	0x10b5,	0x1103,	0x10b5,	0x1103	},
707 	    {	0xffff,	0xffff,	0xffff,	0xffff	},
708 	    {
709 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
710 		{ PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ * 8 },
711 	    },
712 	},
713 
714 	/* VScom PCI-400: 4S */
715 	{   "VScom PCI-400",
716 	    {	0x10b5,	0x1077,	0x10b5,	0x1077	},
717 	    {	0xffff,	0xffff,	0xffff,	0xffff	},
718 	    {
719 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
720 		{ PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 },
721 		{ PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 },
722 		{ PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 },
723 	    },
724 	},
725 
726 	/* VScom PCI-800: 8S */
727 	{   "VScom PCI-800",
728 	    {	0x10b5,	0x1076,	0x10b5,	0x1076	},
729 	    {	0xffff,	0xffff,	0xffff,	0xffff	},
730 	    {
731 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
732 		{ PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 },
733 		{ PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 },
734 		{ PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 },
735 		{ PUC_PORT_TYPE_COM, 0x18, 0x20, COM_FREQ * 8 },
736 		{ PUC_PORT_TYPE_COM, 0x18, 0x28, COM_FREQ * 8 },
737 		{ PUC_PORT_TYPE_COM, 0x18, 0x30, COM_FREQ * 8 },
738 		{ PUC_PORT_TYPE_COM, 0x18, 0x38, COM_FREQ * 8 },
739 	    },
740 	},
741 
742 	{   "Titan PCI-010HV2",
743 	    {   0x14d2, 0xe001, 0,      0       },
744 	    {   0xffff, 0xffff, 0,      0       },
745 	    {
746 		{ PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
747 	    },
748 	},
749 	{   "Titan PCI-200HV2",
750 	    {   0x14d2, 0xe020, 0,      0       },
751 	    {   0xffff, 0xffff, 0,      0       },
752 	    {
753 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 },
754 		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ * 8 },
755 	    },
756 	},
757 
758 	/*
759 	 * VScom PCI-800H. Uses 8 16950 UART, behind a PCI chips that offers
760 	 * 4 com port on PCI device 0 and 4 on PCI device 1. PCI device 0 has
761 	 * device ID 3 and PCI device 1 device ID 4.
762 	 */
763 	{   "Titan PCI-800H",
764 	    {	0x14d2,	0xa003,	0,	0	},
765 	    {	0xffff,	0xffff,	0,	0	},
766 	    {
767 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 },
768 		{ PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8 },
769 		{ PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 8 },
770 		{ PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 8 },
771 	    },
772 	},
773 	{   "Titan PCI-800H",
774 	    {	0x14d2,	0xa004,	0,	0	},
775 	    {	0xffff,	0xffff,	0,	0	},
776 	    {
777 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 },
778 		{ PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8 },
779 		{ PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ * 8 },
780 		{ PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ * 8 },
781 	    },
782 	},
783         {   "Titan PCI-200H",
784             {   0x14d2, 0xa005, 0,      0       },
785             {   0xffff, 0xffff, 0,      0       },
786             {
787                 { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ * 8 },
788                 { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ * 8 },
789             },
790         },
791 	{   "Titan PCI-800L",
792 	    {	0x14d2,	0x8080,	0,	0	},
793 	    {	0xffff,	0xffff,	0,	0	},
794 	    {
795 		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ * 8 },
796 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
797 		{ PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ * 8 },
798 		{ PUC_PORT_TYPE_COM, 0x20, 0x08, COM_FREQ * 8 },
799 		{ PUC_PORT_TYPE_COM, 0x20, 0x10, COM_FREQ * 8 },
800 		{ PUC_PORT_TYPE_COM, 0x20, 0x18, COM_FREQ * 8 },
801 		{ PUC_PORT_TYPE_COM, 0x20, 0x20, COM_FREQ * 8 },
802 		{ PUC_PORT_TYPE_COM, 0x20, 0x28, COM_FREQ * 8 },
803 	    },
804 	},
805 	/* NEC PK-UG-X001 K56flex PCI Modem card.
806 	   NEC MARTH bridge chip and Rockwell RCVDL56ACF/SP using. */
807 	{   "NEC PK-UG-X001 K56flex PCI Modem",
808 	    {	0x1033,	0x0074,	0x1033,	0x8014	},
809 	    {	0xffff,	0xffff,	0xffff,	0xffff	},
810 	    {
811 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
812 	    },
813 	},
814 
815 	/* NEC PK-UG-X008 */
816 	{   "NEC PK-UG-X008",
817 	    {	0x1033,	0x007d,	0x1033,	0x8012	},
818 	    {	0xffff,	0xffff,	0xffff,	0xffff	},
819 	    {
820 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ},
821 	    },
822 	},
823 
824 	/* Lava Computers 2SP-PCI */
825 	{   "Lava Computers 2SP-PCI parallel port",
826 	    {	0x1407,	0x8000,	0,	0	},
827 	    {	0xffff,	0xffff,	0,	0	},
828 	    {
829 		{ PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
830 	    },
831 	},
832 
833 	/* Lava Computers 2SP-PCI and Quattro-PCI serial ports */
834 	{   "Lava Computers dual serial port",
835 	    {	0x1407,	0x0100,	0,	0	},
836 	    {	0xffff,	0xfffc,	0,	0	},
837 	    {
838 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
839 		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
840 	    },
841 	},
842 
843 	/* Lava Computers DSerial PCI serial ports */
844 	{   "Lava Computers serial port",
845 	    {	0x1407,	0x0110,	0,	0	},
846 	    {	0xffff,	0xfffc,	0,	0	},
847 	    {
848 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
849 	    },
850 	},
851 
852 	/* Lava Computers Quattro-PCI serial ports */
853 	{   "Lava Quattro-PCI 4-port serial",
854 	    {   0x1407, 0x0120, 0,	0	},
855 	    {   0xffff, 0xfffc, 0,	0	},
856 	    {
857 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
858 		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
859 	    },
860 	},
861 
862 	/* Lava Computers Octopus-550 serial ports */
863 	{   "Lava Computers Octopus-550 8-port serial",
864 	    {	0x1407,	0x0180,	0,	0	},
865 	    {	0xffff,	0xfffc,	0,	0	},
866 	    {
867 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
868 		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
869 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
870 		{ PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
871 	    },
872 	},
873 
874 	/* US Robotics (3Com) PCI Modems */
875 	{   "US Robotics (3Com) 3CP5609 PCI 16550 Modem",
876 	    {	0x12b9,	0x1008,	0,	0	},
877 	    {	0xffff,	0xffff,	0,	0	},
878 	    {
879 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
880 	    },
881 	},
882 
883 	/* Actiontec  56K PCI Master */
884 	{   "Actiontec 56K PCI Master",
885 	    {	0x11c1,	0x0480,	0x0, 	0x0	},
886 	    {	0xffff,	0xffff,	0x0,	0x0	},
887 	    {
888 		{ PUC_PORT_TYPE_COM,	0x14,	0x00, COM_FREQ },
889 	    },
890 	},
891 
892 	/*
893 	 * Boards with an Oxford Semiconductor chip.
894 	 *
895 	 * Oxford Semiconductor provides documentation for their chip at:
896 	 * <URL:http://www.oxsemi.com/products/uarts/index.html>
897 	 *
898 	 * As sold by Kouwell <URL:http://www.kouwell.com/>.
899 	 * I/O Flex PCI I/O Card Model-223 with 4 serial and 1 parallel ports.
900 	 */
901 
902 	/* Oxford Semiconductor OX16PCI952 PCI `950 UARTs - 128 byte FIFOs */
903 	{   "Oxford Semiconductor OX16PCI952 UARTs",
904 	    {   0x1415, 0x9521, 0,	0	},
905 	    {   0xffff, 0xffff, 0,	0	},
906 	    {
907 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
908 		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
909 	    },
910 	},
911 
912 	/* Oxford Semiconductor OX16PCI952 PCI Parallel port */
913 	{   "Oxford Semiconductor OX16PCI952 Parallel port",
914 	    {   0x1415, 0x9523, 0,	0	},
915 	    {   0xffff, 0xffff, 0,	0	},
916 	    {
917 		{ PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
918 	    },
919 	},
920 
921 	/* Oxford Semiconductor OX16PCI954 PCI UARTs */
922 	{   "Oxford Semiconductor OX16PCI954 UARTs",
923 	    {	0x1415,	0x9501,	0,	0	},
924 	    {	0xffff,	0xffff,	0,	0	},
925 	    {
926 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
927 		{ PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ },
928 		{ PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ },
929 		{ PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ },
930 	    },
931 	},
932 
933 	/* Oxford Semiconductor OX16PCI954 PCI Parallel port */
934 	{   "Oxford Semiconductor OX16PCI954 Parallel port",
935 	    {	0x1415,	0x9513,	0,	0	},
936 	    {	0xffff,	0xffff,	0,	0	},
937 	    {
938 		{ PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
939 	    },
940 	},
941 
942 	/* Moxa Technologies Co., Ltd. PCI I/O Card 4S RS232/422/485 */
943 	{   "Moxa Technologies, SmartIO C104H/PCI",
944 	    {	0x1393,	0x1040,	0,	0	},
945 	    {	0xffff,	0xffff,	0,	0	},
946 	    {
947 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
948 		{ PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 },
949 		{ PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 },
950 		{ PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 },
951 	    },
952 	},
953 
954 	/* Moxa Technologies Co., Ltd. PCI I/O Card 4S RS232 */
955 	{   "Moxa Technologies, SmartIO CP104/PCI",
956 	    {	0x1393,	0x1041,	0,	0	},
957 	    {	0xffff,	0xffff,	0,	0	},
958 	    {
959 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
960 		{ PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 },
961 		{ PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 },
962 		{ PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 },
963 	    },
964 	},
965 
966 	/* Moxa Technologies Co., Ltd. PCI I/O Card 4S RS232 */
967 	{   "Moxa Technologies, SmartIO CP104-V2/PCI",
968 	    {	0x1393,	0x1042,	0,	0	},
969 	    {	0xffff,	0xffff,	0,	0	},
970 	    {
971 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
972 		{ PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 },
973 		{ PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 },
974 		{ PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 },
975 	    },
976 	},
977 
978 	/* Moxa Technologies Co., Ltd. PCI I/O Card 4S RS232/422/485 */
979 	{   "Moxa Technologies, SmartIO CP-114/PCI",
980 	    {	0x1393,	0x1141,	0,	0	},
981 	    {	0xffff,	0xffff,	0,	0	},
982 	    {
983 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
984 		{ PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 },
985 		{ PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 },
986 		{ PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 },
987 	    },
988 	},
989 
990 	/* Moxa Technologies Co., Ltd. PCI I/O Card 8S RS232 */
991 	{   "Moxa Technologies, SmartIO C168H/PCI",
992 	    {	0x1393,	0x1680,	0,	0	},
993 	    {	0xffff,	0xffff,	0,	0	},
994 	    {
995 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 8 },
996 		{ PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 8 },
997 		{ PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 8 },
998 		{ PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 8 },
999 		{ PUC_PORT_TYPE_COM, 0x18, 0x20, COM_FREQ * 8 },
1000 		{ PUC_PORT_TYPE_COM, 0x18, 0x28, COM_FREQ * 8 },
1001 		{ PUC_PORT_TYPE_COM, 0x18, 0x30, COM_FREQ * 8 },
1002 		{ PUC_PORT_TYPE_COM, 0x18, 0x38, COM_FREQ * 8 },
1003 	    },
1004 	},
1005 
1006 	/* NetMos 1P PCI : 1P */
1007 	{   "NetMos NM9805 1284 Printer port",
1008 	    {	0x9710,	0x9805,	0,	0	},
1009 	    {	0xffff,	0xffff,	0,	0	},
1010 	    {
1011 		{ PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
1012 	    },
1013 	},
1014 
1015 	/* NetMos 2P PCI : 2P */
1016 	{   "NetMos NM9815 Dual 1284 Printer port",
1017 	    {	0x9710,	0x9815,	0,	0	},
1018 	    {	0xffff,	0xffff,	0,	0	},
1019 	    {
1020 		{ PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
1021 		{ PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
1022 	    },
1023 	},
1024 
1025 	/* NetMos 2S PCI NM9835 : 2S */
1026 	{   "NetMos NM9835 Dual UART",
1027 	    {	0x9710, 0x9835, 0x1000, 0x0002	},
1028 	    {	0xffff, 0xffff, 0xffff, 0xffff	},
1029 	    {
1030 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
1031 		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
1032 	    },
1033 	},
1034 
1035 	/* NetMos 2S1P PCI 16C650 : 2S, 1P */
1036 	{   "NetMos NM9835 Dual UART and 1284 Printer port",
1037 	    {	0x9710,	0x9835,	0,	0	},
1038 	    {	0xffff,	0xffff,	0,	0	},
1039 	    {
1040 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
1041 		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
1042 		{ PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 },
1043 	    },
1044 	},
1045 
1046 	/* NetMos 4S1P PCI NM9845 : 4S, 1P */
1047 	{   "NetMos NM9845 Quad UART and 1284 Printer port",
1048 	   {   0x9710, 0x9845, 0x1000, 0x0014  },
1049 	   {   0xffff, 0xffff, 0xffff, 0xffff  },
1050 	   {
1051 	       { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
1052 	       { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
1053 	       { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
1054 	       { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
1055 	       { PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 },
1056 	   },
1057        },
1058 
1059        /* NetMos 6S PCI 16C650 : 6S, 0P */
1060        {   "NetMos NM9845 6 UART",
1061 	   {   0x9710, 0x9845, 0x1000, 0x0006  },
1062 	   {   0xffff, 0xffff, 0xffff, 0xffff  },
1063 	   {
1064 	       { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
1065 	       { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
1066 	       { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
1067 	       { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
1068 	       { PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ },
1069 	       { PUC_PORT_TYPE_COM, 0x24, 0x00, COM_FREQ },
1070 	   },
1071        },
1072 
1073        /* NetMos 4S1P PCI NM9845 : 4S, 1P */
1074        {   "NetMos NM9845 Quad UART and 1284 Printer port (unknown type)",
1075 	    {	0x9710,	0x9845,	0,	0	},
1076 	    {	0xffff,	0xffff,	0,	0	},
1077 	    {
1078 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
1079 		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
1080 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
1081 		{ PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
1082 		{ PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 },
1083 	    },
1084 	},
1085 
1086        /* NetMos 4S1P PCI NM9855 : 4S, 1P */
1087        {   "NetMos NM9855 Quad UART and 1284 Printer port (unknown type)",
1088 	    {	0x9710,	0x9855,	0x1000,	0x0014	},
1089 	    {	0xffff,	0xffff,	0xffff,	0xffff	},
1090 	    {
1091 		{ PUC_PORT_TYPE_LPT, 0x10, 0x00, 0x00 },
1092 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
1093 		{ PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
1094 		{ PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ },
1095 		{ PUC_PORT_TYPE_COM, 0x24, 0x00, COM_FREQ },
1096 	    },
1097 	},
1098 
1099 	/*
1100 	 * This is the Middle Digital, Inc. PCI-Weasel, which
1101 	 * uses a PCI interface implemented in FPGA.
1102 	 */
1103 	{   "Middle Digital, Inc. Weasel serial port",
1104 	    {	0xdeaf,	0x9051,	0,	0	},
1105 	    {	0xffff,	0xffff,	0,	0	},
1106 	    {
1107 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
1108 	    },
1109 	},
1110 
1111 	/* Avlab Technology, Inc. Low Profile PCI 4 Serial: 4S */
1112 	{   "Avlab Low Profile PCI 4 Serial",
1113 	    {	0x14db,	0x2150,	0,	0	},
1114 	    {	0xffff,	0xffff,	0,	0	},
1115 	    {
1116 		{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
1117 		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
1118 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
1119 		{ PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
1120 	    },
1121 	},
1122 
1123 	/*
1124 	 * Perle PCI-RAS 4 Modem ports
1125 	 */
1126 	{   "Perle Systems PCI-RAS 4 modem ports",
1127 	    {	0x10b5, 0x9030, 0x155f, 0xf001	},
1128 	    {	0xffff, 0xffff, 0xffff, 0xffff	},
1129 	    {
1130 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 4 },
1131 		{ PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 4 },
1132 		{ PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 4 },
1133 		{ PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 4 },
1134 	    },
1135 	},
1136 
1137 	/*
1138 	 * Perle PCI-RASV92 4 Modem ports
1139 	 */
1140 	{   "Perle Systems PCI-RASV92 4 modem ports",
1141 	    {	0x10b5, 0x9050, 0x155f, 0xf001	},
1142 	    {	0xffff, 0xffff, 0xffff, 0xffff	},
1143 	    {
1144 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 4 },
1145 		{ PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 4 },
1146 		{ PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 4 },
1147 		{ PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 4 },
1148 	    },
1149 	},
1150 
1151 	/*
1152 	 * Perle PCI-RAS 8 Modem ports
1153 	 */
1154 	{   "Perle Systems PCI-RAS 8 modem ports",
1155 	    {	0x10b5, 0x9030, 0x155f, 0xf010	},
1156 	    {	0xffff, 0xffff, 0xffff, 0xffff	},
1157 	    {
1158 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 4 },
1159 		{ PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 4 },
1160 		{ PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 4 },
1161 		{ PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 4 },
1162 		{ PUC_PORT_TYPE_COM, 0x18, 0x20, COM_FREQ * 4 },
1163 		{ PUC_PORT_TYPE_COM, 0x18, 0x28, COM_FREQ * 4 },
1164 		{ PUC_PORT_TYPE_COM, 0x18, 0x30, COM_FREQ * 4 },
1165 		{ PUC_PORT_TYPE_COM, 0x18, 0x38, COM_FREQ * 4 },
1166 	    },
1167 	},
1168 
1169 	/*
1170 	 * Perle PCI-RASV92 8 Modem ports
1171 	 */
1172 	{   "Perle Systems PCI-RASV92 8 modem ports",
1173 	    {	0x10b5, 0x9050, 0x155f, 0xf010	},
1174 	    {	0xffff, 0xffff, 0xffff, 0xffff	},
1175 	    {
1176 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 4 },
1177 		{ PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 4 },
1178 		{ PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 4 },
1179 		{ PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 4 },
1180 		{ PUC_PORT_TYPE_COM, 0x18, 0x20, COM_FREQ * 4 },
1181 		{ PUC_PORT_TYPE_COM, 0x18, 0x28, COM_FREQ * 4 },
1182 		{ PUC_PORT_TYPE_COM, 0x18, 0x30, COM_FREQ * 4 },
1183 		{ PUC_PORT_TYPE_COM, 0x18, 0x38, COM_FREQ * 4 },
1184 	    },
1185 	},
1186 
1187 	/*
1188 	 * Boca Research Turbo Serial 654 (4 serial port) card.
1189 	 * Appears to be the same as Chase Research PLC PCI-FAST4
1190 	 * and Perle PCI-FAST4 Multi-Port serial cards.
1191 	 */
1192 	{   "Boca Research Turbo Serial 654",
1193 	    {   0x10b5, 0x9050, 0x12e0, 0x0031  },
1194 	    {   0xffff, 0xffff, 0xffff, 0xffff  },
1195 	    {
1196 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 4 },
1197 		{ PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 4 },
1198 		{ PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 4 },
1199 		{ PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 4 },
1200 	    },
1201 	},
1202 
1203 	/*
1204 	 * Boca Research Turbo Serial 658 (8 serial port) card.
1205 	 * Appears to be the same as Chase Research PLC PCI-FAST8
1206 	 * and Perle PCI-FAST8 Multi-Port serial cards.
1207 	 */
1208 	{   "Boca Research Turbo Serial 658",
1209 	    {   0x10b5, 0x9050, 0x12e0, 0x0021  },
1210 	    {   0xffff, 0xffff, 0xffff, 0xffff  },
1211 	    {
1212 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ * 4 },
1213 		{ PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ * 4 },
1214 		{ PUC_PORT_TYPE_COM, 0x18, 0x10, COM_FREQ * 4 },
1215 		{ PUC_PORT_TYPE_COM, 0x18, 0x18, COM_FREQ * 4 },
1216 		{ PUC_PORT_TYPE_COM, 0x18, 0x20, COM_FREQ * 4 },
1217 		{ PUC_PORT_TYPE_COM, 0x18, 0x28, COM_FREQ * 4 },
1218 		{ PUC_PORT_TYPE_COM, 0x18, 0x30, COM_FREQ * 4 },
1219 		{ PUC_PORT_TYPE_COM, 0x18, 0x38, COM_FREQ * 4 },
1220 	    },
1221 	},
1222 
1223 	/*
1224 	 * Addi-Data APCI-7800 8-port serial card.
1225 	 * Uses an AMCC chip as PCI bridge.
1226 	 */
1227 	{   "Addi-Data APCI-7800",
1228 	    {   0x10e8, 0x818e, 0, 0  },
1229 	    {   0xffff, 0xffff, 0, 0  },
1230 	    {
1231 		{ PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ },
1232 		{ PUC_PORT_TYPE_COM, 0x14, 0x08, COM_FREQ },
1233 		{ PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ },
1234 		{ PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ },
1235 		{ PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ },
1236 		{ PUC_PORT_TYPE_COM, 0x1c, 0x08, COM_FREQ },
1237 		{ PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ },
1238 		{ PUC_PORT_TYPE_COM, 0x20, 0x08, COM_FREQ },
1239 	    },
1240 	},
1241 
1242 	{   "EXAR XR17D152",
1243 	    {   0x13a8, 0x0152, 0,      0       },
1244 	    {   0xffff, 0xffff, 0,      0       },
1245 	    {
1246 		{ PUC_PORT_TYPE_COM, 0x10, 0x0000, COM_FREQ * 8 },
1247 		{ PUC_PORT_TYPE_COM, 0x10, 0x0200, COM_FREQ * 8 },
1248 	    },
1249 	},
1250 	{   "EXAR XR17D154",
1251 	    {   0x13a8, 0x0154, 0,      0       },
1252 	    {   0xffff, 0xffff, 0,      0       },
1253 	    {
1254 		{ PUC_PORT_TYPE_COM, 0x10, 0x0000, COM_FREQ * 8 },
1255 		{ PUC_PORT_TYPE_COM, 0x10, 0x0200, COM_FREQ * 8 },
1256 		{ PUC_PORT_TYPE_COM, 0x10, 0x0400, COM_FREQ * 8 },
1257 		{ PUC_PORT_TYPE_COM, 0x10, 0x0600, COM_FREQ * 8 },
1258 	    },
1259 	},
1260 	{   "EXAR XR17D158",
1261 	    {   0x13a8, 0x0158, 0,      0       },
1262 	    {   0xffff, 0xffff, 0,      0       },
1263 	    {
1264 		{ PUC_PORT_TYPE_COM, 0x10, 0x0000, COM_FREQ * 8 },
1265 		{ PUC_PORT_TYPE_COM, 0x10, 0x0200, COM_FREQ * 8 },
1266 		{ PUC_PORT_TYPE_COM, 0x10, 0x0400, COM_FREQ * 8 },
1267 		{ PUC_PORT_TYPE_COM, 0x10, 0x0600, COM_FREQ * 8 },
1268 		{ PUC_PORT_TYPE_COM, 0x10, 0x0800, COM_FREQ * 8 },
1269 		{ PUC_PORT_TYPE_COM, 0x10, 0x0a00, COM_FREQ * 8 },
1270 		{ PUC_PORT_TYPE_COM, 0x10, 0x0c00, COM_FREQ * 8 },
1271 		{ PUC_PORT_TYPE_COM, 0x10, 0x0e00, COM_FREQ * 8 },
1272 	    },
1273 	},
1274 
1275 	{ .name = NULL },
1276 };
1277