]> git.karo-electronics.de Git - karo-tx-linux.git/blob - drivers/staging/comedi/drivers/addi_apci_3xxx.c
d26982386765a15900f434f9797e15e18f4ff595
[karo-tx-linux.git] / drivers / staging / comedi / drivers / addi_apci_3xxx.c
1 #include "../comedidev.h"
2 #include "comedi_fc.h"
3
4 #include "addi-data/addi_common.h"
5 #include "addi-data/addi_amcc_s5933.h"
6
7 #define CONFIG_APCI_3XXX 1
8
9 #define ADDIDATA_DRIVER_NAME    "addi_apci_3xxx"
10
11 #include "addi-data/addi_eeprom.c"
12 #include "addi-data/hwdrv_apci3xxx.c"
13
14 static const struct addi_board boardtypes[] = {
15         {
16                 .pc_DriverName          = "apci3000-16",
17                 .i_VendorId             = PCI_VENDOR_ID_ADDIDATA,
18                 .i_DeviceId             = 0x3010,
19                 .i_IorangeBase0         = 256,
20                 .i_IorangeBase1         = 256,
21                 .i_IorangeBase2         = 256,
22                 .i_IorangeBase3         = 256,
23                 .i_PCIEeprom            = ADDIDATA_NO_EEPROM,
24                 .pc_EepromChip          = ADDIDATA_9054,
25                 .i_NbrAiChannel         = 16,
26                 .i_NbrAiChannelDiff     = 8,
27                 .i_AiChannelList        = 16,
28                 .i_AiMaxdata            = 4095,
29                 .pr_AiRangelist         = &range_apci3XXX_ai,
30                 .i_NbrTTLChannel        = 24,
31                 .b_AvailableConvertUnit = 6,
32                 .ui_MinAcquisitiontimeNs = 10000,
33                 .interrupt              = v_APCI3XXX_Interrupt,
34                 .reset                  = i_APCI3XXX_Reset,
35                 .ai_config              = i_APCI3XXX_InsnConfigAnalogInput,
36                 .ai_read                = i_APCI3XXX_InsnReadAnalogInput,
37                 .ttl_config             = i_APCI3XXX_InsnConfigInitTTLIO,
38                 .ttl_bits               = i_APCI3XXX_InsnBitsTTLIO,
39                 .ttl_read               = i_APCI3XXX_InsnReadTTLIO,
40                 .ttl_write              = i_APCI3XXX_InsnWriteTTLIO,
41         }, {
42                 .pc_DriverName          = "apci3000-8",
43                 .i_VendorId             = PCI_VENDOR_ID_ADDIDATA,
44                 .i_DeviceId             = 0x300F,
45                 .i_IorangeBase0         = 256,
46                 .i_IorangeBase1         = 256,
47                 .i_IorangeBase2         = 256,
48                 .i_IorangeBase3         = 256,
49                 .i_PCIEeprom            = ADDIDATA_NO_EEPROM,
50                 .pc_EepromChip          = ADDIDATA_9054,
51                 .i_NbrAiChannel         = 8,
52                 .i_NbrAiChannelDiff     = 4,
53                 .i_AiChannelList        = 8,
54                 .i_AiMaxdata            = 4095,
55                 .pr_AiRangelist         = &range_apci3XXX_ai,
56                 .i_NbrTTLChannel        = 24,
57                 .b_AvailableConvertUnit = 6,
58                 .ui_MinAcquisitiontimeNs = 10000,
59                 .interrupt              = v_APCI3XXX_Interrupt,
60                 .reset                  = i_APCI3XXX_Reset,
61                 .ai_config              = i_APCI3XXX_InsnConfigAnalogInput,
62                 .ai_read                = i_APCI3XXX_InsnReadAnalogInput,
63                 .ttl_config             = i_APCI3XXX_InsnConfigInitTTLIO,
64                 .ttl_bits               = i_APCI3XXX_InsnBitsTTLIO,
65                 .ttl_read               = i_APCI3XXX_InsnReadTTLIO,
66                 .ttl_write              = i_APCI3XXX_InsnWriteTTLIO,
67         }, {
68                 .pc_DriverName          = "apci3000-4",
69                 .i_VendorId             = PCI_VENDOR_ID_ADDIDATA,
70                 .i_DeviceId             = 0x300E,
71                 .i_IorangeBase0         = 256,
72                 .i_IorangeBase1         = 256,
73                 .i_IorangeBase2         = 256,
74                 .i_IorangeBase3         = 256,
75                 .i_PCIEeprom            = ADDIDATA_NO_EEPROM,
76                 .pc_EepromChip          = ADDIDATA_9054,
77                 .i_NbrAiChannel         = 4,
78                 .i_NbrAiChannelDiff     = 2,
79                 .i_AiChannelList        = 4,
80                 .i_AiMaxdata            = 4095,
81                 .pr_AiRangelist         = &range_apci3XXX_ai,
82                 .i_NbrTTLChannel        = 24,
83                 .b_AvailableConvertUnit = 6,
84                 .ui_MinAcquisitiontimeNs = 10000,
85                 .interrupt              = v_APCI3XXX_Interrupt,
86                 .reset                  = i_APCI3XXX_Reset,
87                 .ai_config              = i_APCI3XXX_InsnConfigAnalogInput,
88                 .ai_read                = i_APCI3XXX_InsnReadAnalogInput,
89                 .ttl_config             = i_APCI3XXX_InsnConfigInitTTLIO,
90                 .ttl_bits               = i_APCI3XXX_InsnBitsTTLIO,
91                 .ttl_read               = i_APCI3XXX_InsnReadTTLIO,
92                 .ttl_write              = i_APCI3XXX_InsnWriteTTLIO,
93         }, {
94                 .pc_DriverName          = "apci3006-16",
95                 .i_VendorId             = PCI_VENDOR_ID_ADDIDATA,
96                 .i_DeviceId             = 0x3013,
97                 .i_IorangeBase0         = 256,
98                 .i_IorangeBase1         = 256,
99                 .i_IorangeBase2         = 256,
100                 .i_IorangeBase3         = 256,
101                 .i_PCIEeprom            = ADDIDATA_NO_EEPROM,
102                 .pc_EepromChip          = ADDIDATA_9054,
103                 .i_NbrAiChannel         = 16,
104                 .i_NbrAiChannelDiff     = 8,
105                 .i_AiChannelList        = 16,
106                 .i_AiMaxdata            = 65535,
107                 .pr_AiRangelist         = &range_apci3XXX_ai,
108                 .i_NbrTTLChannel        = 24,
109                 .b_AvailableConvertUnit = 6,
110                 .ui_MinAcquisitiontimeNs = 10000,
111                 .interrupt              = v_APCI3XXX_Interrupt,
112                 .reset                  = i_APCI3XXX_Reset,
113                 .ai_config              = i_APCI3XXX_InsnConfigAnalogInput,
114                 .ai_read                = i_APCI3XXX_InsnReadAnalogInput,
115                 .ttl_config             = i_APCI3XXX_InsnConfigInitTTLIO,
116                 .ttl_bits               = i_APCI3XXX_InsnBitsTTLIO,
117                 .ttl_read               = i_APCI3XXX_InsnReadTTLIO,
118                 .ttl_write              = i_APCI3XXX_InsnWriteTTLIO,
119         }, {
120                 .pc_DriverName          = "apci3006-8",
121                 .i_VendorId             = PCI_VENDOR_ID_ADDIDATA,
122                 .i_DeviceId             = 0x3014,
123                 .i_IorangeBase0         = 256,
124                 .i_IorangeBase1         = 256,
125                 .i_IorangeBase2         = 256,
126                 .i_IorangeBase3         = 256,
127                 .i_PCIEeprom            = ADDIDATA_NO_EEPROM,
128                 .pc_EepromChip          = ADDIDATA_9054,
129                 .i_NbrAiChannel         = 8,
130                 .i_NbrAiChannelDiff     = 4,
131                 .i_AiChannelList        = 8,
132                 .i_AiMaxdata            = 65535,
133                 .pr_AiRangelist         = &range_apci3XXX_ai,
134                 .i_NbrTTLChannel        = 24,
135                 .b_AvailableConvertUnit = 6,
136                 .ui_MinAcquisitiontimeNs = 10000,
137                 .interrupt              = v_APCI3XXX_Interrupt,
138                 .reset                  = i_APCI3XXX_Reset,
139                 .ai_config              = i_APCI3XXX_InsnConfigAnalogInput,
140                 .ai_read                = i_APCI3XXX_InsnReadAnalogInput,
141                 .ttl_config             = i_APCI3XXX_InsnConfigInitTTLIO,
142                 .ttl_bits               = i_APCI3XXX_InsnBitsTTLIO,
143                 .ttl_read               = i_APCI3XXX_InsnReadTTLIO,
144                 .ttl_write              = i_APCI3XXX_InsnWriteTTLIO,
145         }, {
146                 .pc_DriverName          = "apci3006-4",
147                 .i_VendorId             = PCI_VENDOR_ID_ADDIDATA,
148                 .i_DeviceId             = 0x3015,
149                 .i_IorangeBase0         = 256,
150                 .i_IorangeBase1         = 256,
151                 .i_IorangeBase2         = 256,
152                 .i_IorangeBase3         = 256,
153                 .i_PCIEeprom            = ADDIDATA_NO_EEPROM,
154                 .pc_EepromChip          = ADDIDATA_9054,
155                 .i_NbrAiChannel         = 4,
156                 .i_NbrAiChannelDiff     = 2,
157                 .i_AiChannelList        = 4,
158                 .i_AiMaxdata            = 65535,
159                 .pr_AiRangelist         = &range_apci3XXX_ai,
160                 .i_NbrTTLChannel        = 24,
161                 .b_AvailableConvertUnit = 6,
162                 .ui_MinAcquisitiontimeNs = 10000,
163                 .interrupt              = v_APCI3XXX_Interrupt,
164                 .reset                  = i_APCI3XXX_Reset,
165                 .ai_config              = i_APCI3XXX_InsnConfigAnalogInput,
166                 .ai_read                = i_APCI3XXX_InsnReadAnalogInput,
167                 .ttl_config             = i_APCI3XXX_InsnConfigInitTTLIO,
168                 .ttl_bits               = i_APCI3XXX_InsnBitsTTLIO,
169                 .ttl_read               = i_APCI3XXX_InsnReadTTLIO,
170                 .ttl_write              = i_APCI3XXX_InsnWriteTTLIO,
171         }, {
172                 .pc_DriverName          = "apci3010-16",
173                 .i_VendorId             = PCI_VENDOR_ID_ADDIDATA,
174                 .i_DeviceId             = 0x3016,
175                 .i_IorangeBase0         = 256,
176                 .i_IorangeBase1         = 256,
177                 .i_IorangeBase2         = 256,
178                 .i_IorangeBase3         = 256,
179                 .i_PCIEeprom            = ADDIDATA_NO_EEPROM,
180                 .pc_EepromChip          = ADDIDATA_9054,
181                 .i_NbrAiChannel         = 16,
182                 .i_NbrAiChannelDiff     = 8,
183                 .i_AiChannelList        = 16,
184                 .i_AiMaxdata            = 4095,
185                 .pr_AiRangelist         = &range_apci3XXX_ai,
186                 .i_NbrDiChannel         = 4,
187                 .i_NbrDoChannel         = 4,
188                 .i_DoMaxdata            = 1,
189                 .i_NbrTTLChannel        = 24,
190                 .b_AvailableConvertUnit = 6,
191                 .ui_MinAcquisitiontimeNs = 5000,
192                 .interrupt              = v_APCI3XXX_Interrupt,
193                 .reset                  = i_APCI3XXX_Reset,
194                 .ai_config              = i_APCI3XXX_InsnConfigAnalogInput,
195                 .ai_read                = i_APCI3XXX_InsnReadAnalogInput,
196                 .di_read                = i_APCI3XXX_InsnReadDigitalInput,
197                 .di_bits                = i_APCI3XXX_InsnBitsDigitalInput,
198                 .do_write               = i_APCI3XXX_InsnWriteDigitalOutput,
199                 .do_bits                = i_APCI3XXX_InsnBitsDigitalOutput,
200                 .do_read                = i_APCI3XXX_InsnReadDigitalOutput,
201                 .ttl_config             = i_APCI3XXX_InsnConfigInitTTLIO,
202                 .ttl_bits               = i_APCI3XXX_InsnBitsTTLIO,
203                 .ttl_read               = i_APCI3XXX_InsnReadTTLIO,
204                 .ttl_write              = i_APCI3XXX_InsnWriteTTLIO,
205         }, {
206                 .pc_DriverName          = "apci3010-8",
207                 .i_VendorId             = PCI_VENDOR_ID_ADDIDATA,
208                 .i_DeviceId             = 0x3017,
209                 .i_IorangeBase0         = 256,
210                 .i_IorangeBase1         = 256,
211                 .i_IorangeBase2         = 256,
212                 .i_IorangeBase3         = 256,
213                 .i_PCIEeprom            = ADDIDATA_NO_EEPROM,
214                 .pc_EepromChip          = ADDIDATA_9054,
215                 .i_NbrAiChannel         = 8,
216                 .i_NbrAiChannelDiff     = 4,
217                 .i_AiChannelList        = 8,
218                 .i_AiMaxdata            = 4095,
219                 .pr_AiRangelist         = &range_apci3XXX_ai,
220                 .i_NbrDiChannel         = 4,
221                 .i_NbrDoChannel         = 4,
222                 .i_DoMaxdata            = 1,
223                 .i_NbrTTLChannel        = 24,
224                 .b_AvailableConvertUnit = 6,
225                 .ui_MinAcquisitiontimeNs = 5000,
226                 .interrupt              = v_APCI3XXX_Interrupt,
227                 .reset                  = i_APCI3XXX_Reset,
228                 .ai_config              = i_APCI3XXX_InsnConfigAnalogInput,
229                 .ai_read                = i_APCI3XXX_InsnReadAnalogInput,
230                 .di_read                = i_APCI3XXX_InsnReadDigitalInput,
231                 .di_bits                = i_APCI3XXX_InsnBitsDigitalInput,
232                 .do_write               = i_APCI3XXX_InsnWriteDigitalOutput,
233                 .do_bits                = i_APCI3XXX_InsnBitsDigitalOutput,
234                 .do_read                = i_APCI3XXX_InsnReadDigitalOutput,
235                 .ttl_config             = i_APCI3XXX_InsnConfigInitTTLIO,
236                 .ttl_bits               = i_APCI3XXX_InsnBitsTTLIO,
237                 .ttl_read               = i_APCI3XXX_InsnReadTTLIO,
238                 .ttl_write              = i_APCI3XXX_InsnWriteTTLIO,
239         }, {
240                 .pc_DriverName          = "apci3010-4",
241                 .i_VendorId             = PCI_VENDOR_ID_ADDIDATA,
242                 .i_DeviceId             = 0x3018,
243                 .i_IorangeBase0         = 256,
244                 .i_IorangeBase1         = 256,
245                 .i_IorangeBase2         = 256,
246                 .i_IorangeBase3         = 256,
247                 .i_PCIEeprom            = ADDIDATA_NO_EEPROM,
248                 .pc_EepromChip          = ADDIDATA_9054,
249                 .i_NbrAiChannel         = 4,
250                 .i_NbrAiChannelDiff     = 2,
251                 .i_AiChannelList        = 4,
252                 .i_AiMaxdata            = 4095,
253                 .pr_AiRangelist         = &range_apci3XXX_ai,
254                 .i_NbrDiChannel         = 4,
255                 .i_NbrDoChannel         = 4,
256                 .i_DoMaxdata            = 1,
257                 .i_NbrTTLChannel        = 24,
258                 .b_AvailableConvertUnit = 6,
259                 .ui_MinAcquisitiontimeNs = 5000,
260                 .interrupt              = v_APCI3XXX_Interrupt,
261                 .reset                  = i_APCI3XXX_Reset,
262                 .ai_config              = i_APCI3XXX_InsnConfigAnalogInput,
263                 .ai_read                = i_APCI3XXX_InsnReadAnalogInput,
264                 .di_read                = i_APCI3XXX_InsnReadDigitalInput,
265                 .di_bits                = i_APCI3XXX_InsnBitsDigitalInput,
266                 .do_write               = i_APCI3XXX_InsnWriteDigitalOutput,
267                 .do_bits                = i_APCI3XXX_InsnBitsDigitalOutput,
268                 .do_read                = i_APCI3XXX_InsnReadDigitalOutput,
269                 .ttl_config             = i_APCI3XXX_InsnConfigInitTTLIO,
270                 .ttl_bits               = i_APCI3XXX_InsnBitsTTLIO,
271                 .ttl_read               = i_APCI3XXX_InsnReadTTLIO,
272                 .ttl_write              = i_APCI3XXX_InsnWriteTTLIO,
273         }, {
274                 .pc_DriverName          = "apci3016-16",
275                 .i_VendorId             = PCI_VENDOR_ID_ADDIDATA,
276                 .i_DeviceId             = 0x3019,
277                 .i_IorangeBase0         = 256,
278                 .i_IorangeBase1         = 256,
279                 .i_IorangeBase2         = 256,
280                 .i_IorangeBase3         = 256,
281                 .i_PCIEeprom            = ADDIDATA_NO_EEPROM,
282                 .pc_EepromChip          = ADDIDATA_9054,
283                 .i_NbrAiChannel         = 16,
284                 .i_NbrAiChannelDiff     = 8,
285                 .i_AiChannelList        = 16,
286                 .i_AiMaxdata            = 65535,
287                 .pr_AiRangelist         = &range_apci3XXX_ai,
288                 .i_NbrDiChannel         = 4,
289                 .i_NbrDoChannel         = 4,
290                 .i_DoMaxdata            = 1,
291                 .i_NbrTTLChannel        = 24,
292                 .b_AvailableConvertUnit = 6,
293                 .ui_MinAcquisitiontimeNs = 5000,
294                 .interrupt              = v_APCI3XXX_Interrupt,
295                 .reset                  = i_APCI3XXX_Reset,
296                 .ai_config              = i_APCI3XXX_InsnConfigAnalogInput,
297                 .ai_read                = i_APCI3XXX_InsnReadAnalogInput,
298                 .di_read                = i_APCI3XXX_InsnReadDigitalInput,
299                 .di_bits                = i_APCI3XXX_InsnBitsDigitalInput,
300                 .do_write               = i_APCI3XXX_InsnWriteDigitalOutput,
301                 .do_bits                = i_APCI3XXX_InsnBitsDigitalOutput,
302                 .do_read                = i_APCI3XXX_InsnReadDigitalOutput,
303                 .ttl_config             = i_APCI3XXX_InsnConfigInitTTLIO,
304                 .ttl_bits               = i_APCI3XXX_InsnBitsTTLIO,
305                 .ttl_read               = i_APCI3XXX_InsnReadTTLIO,
306                 .ttl_write              = i_APCI3XXX_InsnWriteTTLIO,
307         }, {
308                 .pc_DriverName          = "apci3016-8",
309                 .i_VendorId             = PCI_VENDOR_ID_ADDIDATA,
310                 .i_DeviceId             = 0x301A,
311                 .i_IorangeBase0         = 256,
312                 .i_IorangeBase1         = 256,
313                 .i_IorangeBase2         = 256,
314                 .i_IorangeBase3         = 256,
315                 .i_PCIEeprom            = ADDIDATA_NO_EEPROM,
316                 .pc_EepromChip          = ADDIDATA_9054,
317                 .i_NbrAiChannel         = 8,
318                 .i_NbrAiChannelDiff     = 4,
319                 .i_AiChannelList        = 8,
320                 .i_AiMaxdata            = 65535,
321                 .pr_AiRangelist         = &range_apci3XXX_ai,
322                 .i_NbrDiChannel         = 4,
323                 .i_NbrDoChannel         = 4,
324                 .i_DoMaxdata            = 1,
325                 .i_NbrTTLChannel        = 24,
326                 .b_AvailableConvertUnit = 6,
327                 .ui_MinAcquisitiontimeNs = 5000,
328                 .interrupt              = v_APCI3XXX_Interrupt,
329                 .reset                  = i_APCI3XXX_Reset,
330                 .ai_config              = i_APCI3XXX_InsnConfigAnalogInput,
331                 .ai_read                = i_APCI3XXX_InsnReadAnalogInput,
332                 .di_read                = i_APCI3XXX_InsnReadDigitalInput,
333                 .di_bits                = i_APCI3XXX_InsnBitsDigitalInput,
334                 .do_write               = i_APCI3XXX_InsnWriteDigitalOutput,
335                 .do_bits                = i_APCI3XXX_InsnBitsDigitalOutput,
336                 .do_read                = i_APCI3XXX_InsnReadDigitalOutput,
337                 .ttl_config             = i_APCI3XXX_InsnConfigInitTTLIO,
338                 .ttl_bits               = i_APCI3XXX_InsnBitsTTLIO,
339                 .ttl_read               = i_APCI3XXX_InsnReadTTLIO,
340                 .ttl_write              = i_APCI3XXX_InsnWriteTTLIO,
341         }, {
342                 .pc_DriverName          = "apci3016-4",
343                 .i_VendorId             = PCI_VENDOR_ID_ADDIDATA,
344                 .i_DeviceId             = 0x301B,
345                 .i_IorangeBase0         = 256,
346                 .i_IorangeBase1         = 256,
347                 .i_IorangeBase2         = 256,
348                 .i_IorangeBase3         = 256,
349                 .i_PCIEeprom            = ADDIDATA_NO_EEPROM,
350                 .pc_EepromChip          = ADDIDATA_9054,
351                 .i_NbrAiChannel         = 4,
352                 .i_NbrAiChannelDiff     = 2,
353                 .i_AiChannelList        = 4,
354                 .i_AiMaxdata            = 65535,
355                 .pr_AiRangelist         = &range_apci3XXX_ai,
356                 .i_NbrDiChannel         = 4,
357                 .i_NbrDoChannel         = 4,
358                 .i_DoMaxdata            = 1,
359                 .i_NbrTTLChannel        = 24,
360                 .b_AvailableConvertUnit = 6,
361                 .ui_MinAcquisitiontimeNs = 5000,
362                 .interrupt              = v_APCI3XXX_Interrupt,
363                 .reset                  = i_APCI3XXX_Reset,
364                 .ai_config              = i_APCI3XXX_InsnConfigAnalogInput,
365                 .ai_read                = i_APCI3XXX_InsnReadAnalogInput,
366                 .di_read                = i_APCI3XXX_InsnReadDigitalInput,
367                 .di_bits                = i_APCI3XXX_InsnBitsDigitalInput,
368                 .do_write               = i_APCI3XXX_InsnWriteDigitalOutput,
369                 .do_bits                = i_APCI3XXX_InsnBitsDigitalOutput,
370                 .do_read                = i_APCI3XXX_InsnReadDigitalOutput,
371                 .ttl_config             = i_APCI3XXX_InsnConfigInitTTLIO,
372                 .ttl_bits               = i_APCI3XXX_InsnBitsTTLIO,
373                 .ttl_read               = i_APCI3XXX_InsnReadTTLIO,
374                 .ttl_write              = i_APCI3XXX_InsnWriteTTLIO,
375         }, {
376                 .pc_DriverName          = "apci3100-16-4",
377                 .i_VendorId             = PCI_VENDOR_ID_ADDIDATA,
378                 .i_DeviceId             = 0x301C,
379                 .i_IorangeBase0         = 256,
380                 .i_IorangeBase1         = 256,
381                 .i_IorangeBase2         = 256,
382                 .i_IorangeBase3         = 256,
383                 .i_PCIEeprom            = ADDIDATA_NO_EEPROM,
384                 .pc_EepromChip          = ADDIDATA_9054,
385                 .i_NbrAiChannel         = 16,
386                 .i_NbrAiChannelDiff     = 8,
387                 .i_AiChannelList        = 16,
388                 .i_NbrAoChannel         = 4,
389                 .i_AiMaxdata            = 4095,
390                 .i_AoMaxdata            = 4095,
391                 .pr_AiRangelist         = &range_apci3XXX_ai,
392                 .pr_AoRangelist         = &range_apci3XXX_ao,
393                 .i_NbrTTLChannel        = 24,
394                 .b_AvailableConvertUnit = 6,
395                 .ui_MinAcquisitiontimeNs = 10000,
396                 .interrupt              = v_APCI3XXX_Interrupt,
397                 .reset                  = i_APCI3XXX_Reset,
398                 .ai_config              = i_APCI3XXX_InsnConfigAnalogInput,
399                 .ai_read                = i_APCI3XXX_InsnReadAnalogInput,
400                 .ao_write               = i_APCI3XXX_InsnWriteAnalogOutput,
401                 .ttl_config             = i_APCI3XXX_InsnConfigInitTTLIO,
402                 .ttl_bits               = i_APCI3XXX_InsnBitsTTLIO,
403                 .ttl_read               = i_APCI3XXX_InsnReadTTLIO,
404                 .ttl_write              = i_APCI3XXX_InsnWriteTTLIO,
405         }, {
406                 .pc_DriverName          = "apci3100-8-4",
407                 .i_VendorId             = PCI_VENDOR_ID_ADDIDATA,
408                 .i_DeviceId             = 0x301D,
409                 .i_IorangeBase0         = 256,
410                 .i_IorangeBase1         = 256,
411                 .i_IorangeBase2         = 256,
412                 .i_IorangeBase3         = 256,
413                 .i_PCIEeprom            = ADDIDATA_NO_EEPROM,
414                 .pc_EepromChip          = ADDIDATA_9054,
415                 .i_NbrAiChannel         = 8,
416                 .i_NbrAiChannelDiff     = 4,
417                 .i_AiChannelList        = 8,
418                 .i_NbrAoChannel         = 4,
419                 .i_AiMaxdata            = 4095,
420                 .i_AoMaxdata            = 4095,
421                 .pr_AiRangelist         = &range_apci3XXX_ai,
422                 .pr_AoRangelist         = &range_apci3XXX_ao,
423                 .i_NbrTTLChannel        = 24,
424                 .b_AvailableConvertUnit = 6,
425                 .ui_MinAcquisitiontimeNs = 10000,
426                 .interrupt              = v_APCI3XXX_Interrupt,
427                 .reset                  = i_APCI3XXX_Reset,
428                 .ai_config              = i_APCI3XXX_InsnConfigAnalogInput,
429                 .ai_read                = i_APCI3XXX_InsnReadAnalogInput,
430                 .ao_write               = i_APCI3XXX_InsnWriteAnalogOutput,
431                 .ttl_config             = i_APCI3XXX_InsnConfigInitTTLIO,
432                 .ttl_bits               = i_APCI3XXX_InsnBitsTTLIO,
433                 .ttl_read               = i_APCI3XXX_InsnReadTTLIO,
434                 .ttl_write              = i_APCI3XXX_InsnWriteTTLIO,
435         }, {
436                 .pc_DriverName          = "apci3106-16-4",
437                 .i_VendorId             = PCI_VENDOR_ID_ADDIDATA,
438                 .i_DeviceId             = 0x301E,
439                 .i_IorangeBase0         = 256,
440                 .i_IorangeBase1         = 256,
441                 .i_IorangeBase2         = 256,
442                 .i_IorangeBase3         = 256,
443                 .i_PCIEeprom            = ADDIDATA_NO_EEPROM,
444                 .pc_EepromChip          = ADDIDATA_9054,
445                 .i_NbrAiChannel         = 16,
446                 .i_NbrAiChannelDiff     = 8,
447                 .i_AiChannelList        = 16,
448                 .i_NbrAoChannel         = 4,
449                 .i_AiMaxdata            = 65535,
450                 .i_AoMaxdata            = 4095,
451                 .pr_AiRangelist         = &range_apci3XXX_ai,
452                 .pr_AoRangelist         = &range_apci3XXX_ao,
453                 .i_NbrTTLChannel        = 24,
454                 .b_AvailableConvertUnit = 6,
455                 .ui_MinAcquisitiontimeNs = 10000,
456                 .interrupt              = v_APCI3XXX_Interrupt,
457                 .reset                  = i_APCI3XXX_Reset,
458                 .ai_config              = i_APCI3XXX_InsnConfigAnalogInput,
459                 .ai_read                = i_APCI3XXX_InsnReadAnalogInput,
460                 .ao_write               = i_APCI3XXX_InsnWriteAnalogOutput,
461                 .ttl_config             = i_APCI3XXX_InsnConfigInitTTLIO,
462                 .ttl_bits               = i_APCI3XXX_InsnBitsTTLIO,
463                 .ttl_read               = i_APCI3XXX_InsnReadTTLIO,
464                 .ttl_write              = i_APCI3XXX_InsnWriteTTLIO,
465         }, {
466                 .pc_DriverName          = "apci3106-8-4",
467                 .i_VendorId             = PCI_VENDOR_ID_ADDIDATA,
468                 .i_DeviceId             = 0x301F,
469                 .i_IorangeBase0         = 256,
470                 .i_IorangeBase1         = 256,
471                 .i_IorangeBase2         = 256,
472                 .i_IorangeBase3         = 256,
473                 .i_PCIEeprom            = ADDIDATA_NO_EEPROM,
474                 .pc_EepromChip          = ADDIDATA_9054,
475                 .i_NbrAiChannel         = 8,
476                 .i_NbrAiChannelDiff     = 4,
477                 .i_AiChannelList        = 8,
478                 .i_NbrAoChannel         = 4,
479                 .i_AiMaxdata            = 65535,
480                 .i_AoMaxdata            = 4095,
481                 .pr_AiRangelist         = &range_apci3XXX_ai,
482                 .pr_AoRangelist         = &range_apci3XXX_ao,
483                 .i_NbrTTLChannel        = 24,
484                 .b_AvailableConvertUnit = 6,
485                 .ui_MinAcquisitiontimeNs = 10000,
486                 .interrupt              = v_APCI3XXX_Interrupt,
487                 .reset                  = i_APCI3XXX_Reset,
488                 .ai_config              = i_APCI3XXX_InsnConfigAnalogInput,
489                 .ai_read                = i_APCI3XXX_InsnReadAnalogInput,
490                 .ao_write               = i_APCI3XXX_InsnWriteAnalogOutput,
491                 .ttl_config             = i_APCI3XXX_InsnConfigInitTTLIO,
492                 .ttl_bits               = i_APCI3XXX_InsnBitsTTLIO,
493                 .ttl_read               = i_APCI3XXX_InsnReadTTLIO,
494                 .ttl_write              = i_APCI3XXX_InsnWriteTTLIO,
495         }, {
496                 .pc_DriverName          = "apci3110-16-4",
497                 .i_VendorId             = PCI_VENDOR_ID_ADDIDATA,
498                 .i_DeviceId             = 0x3020,
499                 .i_IorangeBase0         = 256,
500                 .i_IorangeBase1         = 256,
501                 .i_IorangeBase2         = 256,
502                 .i_IorangeBase3         = 256,
503                 .i_PCIEeprom            = ADDIDATA_NO_EEPROM,
504                 .pc_EepromChip          = ADDIDATA_9054,
505                 .i_NbrAiChannel         = 16,
506                 .i_NbrAiChannelDiff     = 8,
507                 .i_AiChannelList        = 16,
508                 .i_NbrAoChannel         = 4,
509                 .i_AiMaxdata            = 4095,
510                 .i_AoMaxdata            = 4095,
511                 .pr_AiRangelist         = &range_apci3XXX_ai,
512                 .pr_AoRangelist         = &range_apci3XXX_ao,
513                 .i_NbrDiChannel         = 4,
514                 .i_NbrDoChannel         = 4,
515                 .i_DoMaxdata            = 1,
516                 .i_NbrTTLChannel        = 24,
517                 .b_AvailableConvertUnit = 6,
518                 .ui_MinAcquisitiontimeNs = 5000,
519                 .interrupt              = v_APCI3XXX_Interrupt,
520                 .reset                  = i_APCI3XXX_Reset,
521                 .ai_config              = i_APCI3XXX_InsnConfigAnalogInput,
522                 .ai_read                = i_APCI3XXX_InsnReadAnalogInput,
523                 .ao_write               = i_APCI3XXX_InsnWriteAnalogOutput,
524                 .di_read                = i_APCI3XXX_InsnReadDigitalInput,
525                 .di_bits                = i_APCI3XXX_InsnBitsDigitalInput,
526                 .do_write               = i_APCI3XXX_InsnWriteDigitalOutput,
527                 .do_bits                = i_APCI3XXX_InsnBitsDigitalOutput,
528                 .do_read                = i_APCI3XXX_InsnReadDigitalOutput,
529                 .ttl_config             = i_APCI3XXX_InsnConfigInitTTLIO,
530                 .ttl_bits               = i_APCI3XXX_InsnBitsTTLIO,
531                 .ttl_read               = i_APCI3XXX_InsnReadTTLIO,
532                 .ttl_write              = i_APCI3XXX_InsnWriteTTLIO,
533         }, {
534                 .pc_DriverName          = "apci3110-8-4",
535                 .i_VendorId             = PCI_VENDOR_ID_ADDIDATA,
536                 .i_DeviceId             = 0x3021,
537                 .i_IorangeBase0         = 256,
538                 .i_IorangeBase1         = 256,
539                 .i_IorangeBase2         = 256,
540                 .i_IorangeBase3         = 256,
541                 .i_PCIEeprom            = ADDIDATA_NO_EEPROM,
542                 .pc_EepromChip          = ADDIDATA_9054,
543                 .i_NbrAiChannel         = 8,
544                 .i_NbrAiChannelDiff     = 4,
545                 .i_AiChannelList        = 8,
546                 .i_NbrAoChannel         = 4,
547                 .i_AiMaxdata            = 4095,
548                 .i_AoMaxdata            = 4095,
549                 .pr_AiRangelist         = &range_apci3XXX_ai,
550                 .pr_AoRangelist         = &range_apci3XXX_ao,
551                 .i_NbrDiChannel         = 4,
552                 .i_NbrDoChannel         = 4,
553                 .i_DoMaxdata            = 1,
554                 .i_NbrTTLChannel        = 24,
555                 .b_AvailableConvertUnit = 6,
556                 .ui_MinAcquisitiontimeNs = 5000,
557                 .interrupt              = v_APCI3XXX_Interrupt,
558                 .reset                  = i_APCI3XXX_Reset,
559                 .ai_config              = i_APCI3XXX_InsnConfigAnalogInput,
560                 .ai_read                = i_APCI3XXX_InsnReadAnalogInput,
561                 .ao_write               = i_APCI3XXX_InsnWriteAnalogOutput,
562                 .di_read                = i_APCI3XXX_InsnReadDigitalInput,
563                 .di_bits                = i_APCI3XXX_InsnBitsDigitalInput,
564                 .do_write               = i_APCI3XXX_InsnWriteDigitalOutput,
565                 .do_bits                = i_APCI3XXX_InsnBitsDigitalOutput,
566                 .do_read                = i_APCI3XXX_InsnReadDigitalOutput,
567                 .ttl_config             = i_APCI3XXX_InsnConfigInitTTLIO,
568                 .ttl_bits               = i_APCI3XXX_InsnBitsTTLIO,
569                 .ttl_read               = i_APCI3XXX_InsnReadTTLIO,
570                 .ttl_write              = i_APCI3XXX_InsnWriteTTLIO,
571         }, {
572                 .pc_DriverName          = "apci3116-16-4",
573                 .i_VendorId             = PCI_VENDOR_ID_ADDIDATA,
574                 .i_DeviceId             = 0x3022,
575                 .i_IorangeBase0         = 256,
576                 .i_IorangeBase1         = 256,
577                 .i_IorangeBase2         = 256,
578                 .i_IorangeBase3         = 256,
579                 .i_PCIEeprom            = ADDIDATA_NO_EEPROM,
580                 .pc_EepromChip          = ADDIDATA_9054,
581                 .i_NbrAiChannel         = 16,
582                 .i_NbrAiChannelDiff     = 8,
583                 .i_AiChannelList        = 16,
584                 .i_NbrAoChannel         = 4,
585                 .i_AiMaxdata            = 65535,
586                 .i_AoMaxdata            = 4095,
587                 .pr_AiRangelist         = &range_apci3XXX_ai,
588                 .pr_AoRangelist         = &range_apci3XXX_ao,
589                 .i_NbrDiChannel         = 4,
590                 .i_NbrDoChannel         = 4,
591                 .i_DoMaxdata            = 1,
592                 .i_NbrTTLChannel        = 24,
593                 .b_AvailableConvertUnit = 6,
594                 .ui_MinAcquisitiontimeNs = 5000,
595                 .interrupt              = v_APCI3XXX_Interrupt,
596                 .reset                  = i_APCI3XXX_Reset,
597                 .ai_config              = i_APCI3XXX_InsnConfigAnalogInput,
598                 .ai_read                = i_APCI3XXX_InsnReadAnalogInput,
599                 .ao_write               = i_APCI3XXX_InsnWriteAnalogOutput,
600                 .di_read                = i_APCI3XXX_InsnReadDigitalInput,
601                 .di_bits                = i_APCI3XXX_InsnBitsDigitalInput,
602                 .do_write               = i_APCI3XXX_InsnWriteDigitalOutput,
603                 .do_bits                = i_APCI3XXX_InsnBitsDigitalOutput,
604                 .do_read                = i_APCI3XXX_InsnReadDigitalOutput,
605                 .ttl_config             = i_APCI3XXX_InsnConfigInitTTLIO,
606                 .ttl_bits               = i_APCI3XXX_InsnBitsTTLIO,
607                 .ttl_read               = i_APCI3XXX_InsnReadTTLIO,
608                 .ttl_write              = i_APCI3XXX_InsnWriteTTLIO,
609         }, {
610                 .pc_DriverName          = "apci3116-8-4",
611                 .i_VendorId             = PCI_VENDOR_ID_ADDIDATA,
612                 .i_DeviceId             = 0x3023,
613                 .i_IorangeBase0         = 256,
614                 .i_IorangeBase1         = 256,
615                 .i_IorangeBase2         = 256,
616                 .i_IorangeBase3         = 256,
617                 .i_PCIEeprom            = ADDIDATA_NO_EEPROM,
618                 .pc_EepromChip          = ADDIDATA_9054,
619                 .i_NbrAiChannel         = 8,
620                 .i_NbrAiChannelDiff     = 4,
621                 .i_AiChannelList        = 8,
622                 .i_NbrAoChannel         = 4,
623                 .i_AiMaxdata            = 65535,
624                 .i_AoMaxdata            = 4095,
625                 .pr_AiRangelist         = &range_apci3XXX_ai,
626                 .pr_AoRangelist         = &range_apci3XXX_ao,
627                 .i_NbrDiChannel         = 4,
628                 .i_NbrDoChannel         = 4,
629                 .i_DoMaxdata            = 1,
630                 .i_NbrTTLChannel        = 24,
631                 .b_AvailableConvertUnit = 6,
632                 .ui_MinAcquisitiontimeNs = 5000,
633                 .interrupt              = v_APCI3XXX_Interrupt,
634                 .reset                  = i_APCI3XXX_Reset,
635                 .ai_config              = i_APCI3XXX_InsnConfigAnalogInput,
636                 .ai_read                = i_APCI3XXX_InsnReadAnalogInput,
637                 .ao_write               = i_APCI3XXX_InsnWriteAnalogOutput,
638                 .di_read                = i_APCI3XXX_InsnReadDigitalInput,
639                 .di_bits                = i_APCI3XXX_InsnBitsDigitalInput,
640                 .do_write               = i_APCI3XXX_InsnWriteDigitalOutput,
641                 .do_bits                = i_APCI3XXX_InsnBitsDigitalOutput,
642                 .do_read                = i_APCI3XXX_InsnReadDigitalOutput,
643                 .ttl_config             = i_APCI3XXX_InsnConfigInitTTLIO,
644                 .ttl_bits               = i_APCI3XXX_InsnBitsTTLIO,
645                 .ttl_read               = i_APCI3XXX_InsnReadTTLIO,
646                 .ttl_write              = i_APCI3XXX_InsnWriteTTLIO,
647         }, {
648                 .pc_DriverName          = "apci3003",
649                 .i_VendorId             = PCI_VENDOR_ID_ADDIDATA,
650                 .i_DeviceId             = 0x300B,
651                 .i_IorangeBase0         = 256,
652                 .i_IorangeBase1         = 256,
653                 .i_IorangeBase2         = 256,
654                 .i_IorangeBase3         = 256,
655                 .i_PCIEeprom            = ADDIDATA_NO_EEPROM,
656                 .pc_EepromChip          = ADDIDATA_9054,
657                 .i_NbrAiChannelDiff     = 4,
658                 .i_AiChannelList        = 4,
659                 .i_AiMaxdata            = 65535,
660                 .pr_AiRangelist         = &range_apci3XXX_ai,
661                 .i_NbrDiChannel         = 4,
662                 .i_NbrDoChannel         = 4,
663                 .i_DoMaxdata            = 1,
664                 .b_AvailableConvertUnit = 7,
665                 .ui_MinAcquisitiontimeNs = 2500,
666                 .interrupt              = v_APCI3XXX_Interrupt,
667                 .reset                  = i_APCI3XXX_Reset,
668                 .ai_config              = i_APCI3XXX_InsnConfigAnalogInput,
669                 .ai_read                = i_APCI3XXX_InsnReadAnalogInput,
670                 .di_read                = i_APCI3XXX_InsnReadDigitalInput,
671                 .di_bits                = i_APCI3XXX_InsnBitsDigitalInput,
672                 .do_write               = i_APCI3XXX_InsnWriteDigitalOutput,
673                 .do_bits                = i_APCI3XXX_InsnBitsDigitalOutput,
674                 .do_read                = i_APCI3XXX_InsnReadDigitalOutput,
675         }, {
676                 .pc_DriverName          = "apci3002-16",
677                 .i_VendorId             = PCI_VENDOR_ID_ADDIDATA,
678                 .i_DeviceId             = 0x3002,
679                 .i_IorangeBase0         = 256,
680                 .i_IorangeBase1         = 256,
681                 .i_IorangeBase2         = 256,
682                 .i_IorangeBase3         = 256,
683                 .i_PCIEeprom            = ADDIDATA_NO_EEPROM,
684                 .pc_EepromChip          = ADDIDATA_9054,
685                 .i_NbrAiChannelDiff     = 16,
686                 .i_AiChannelList        = 16,
687                 .i_AiMaxdata            = 65535,
688                 .pr_AiRangelist         = &range_apci3XXX_ai,
689                 .i_NbrDiChannel         = 4,
690                 .i_NbrDoChannel         = 4,
691                 .i_DoMaxdata            = 1,
692                 .b_AvailableConvertUnit = 6,
693                 .ui_MinAcquisitiontimeNs = 5000,
694                 .interrupt              = v_APCI3XXX_Interrupt,
695                 .reset                  = i_APCI3XXX_Reset,
696                 .ai_config              = i_APCI3XXX_InsnConfigAnalogInput,
697                 .ai_read                = i_APCI3XXX_InsnReadAnalogInput,
698                 .di_read                = i_APCI3XXX_InsnReadDigitalInput,
699                 .di_bits                = i_APCI3XXX_InsnBitsDigitalInput,
700                 .do_write               = i_APCI3XXX_InsnWriteDigitalOutput,
701                 .do_bits                = i_APCI3XXX_InsnBitsDigitalOutput,
702                 .do_read                = i_APCI3XXX_InsnReadDigitalOutput,
703         }, {
704                 .pc_DriverName          = "apci3002-8",
705                 .i_VendorId             = PCI_VENDOR_ID_ADDIDATA,
706                 .i_DeviceId             = 0x3003,
707                 .i_IorangeBase0         = 256,
708                 .i_IorangeBase1         = 256,
709                 .i_IorangeBase2         = 256,
710                 .i_IorangeBase3         = 256,
711                 .i_PCIEeprom            = ADDIDATA_NO_EEPROM,
712                 .pc_EepromChip          = ADDIDATA_9054,
713                 .i_NbrAiChannelDiff     = 8,
714                 .i_AiChannelList        = 8,
715                 .i_AiMaxdata            = 65535,
716                 .pr_AiRangelist         = &range_apci3XXX_ai,
717                 .i_NbrDiChannel         = 4,
718                 .i_NbrDoChannel         = 4,
719                 .i_DoMaxdata            = 1,
720                 .b_AvailableConvertUnit = 6,
721                 .ui_MinAcquisitiontimeNs = 5000,
722                 .interrupt              = v_APCI3XXX_Interrupt,
723                 .reset                  = i_APCI3XXX_Reset,
724                 .ai_config              = i_APCI3XXX_InsnConfigAnalogInput,
725                 .ai_read                = i_APCI3XXX_InsnReadAnalogInput,
726                 .di_read                = i_APCI3XXX_InsnReadDigitalInput,
727                 .di_bits                = i_APCI3XXX_InsnBitsDigitalInput,
728                 .do_write               = i_APCI3XXX_InsnWriteDigitalOutput,
729                 .do_bits                = i_APCI3XXX_InsnBitsDigitalOutput,
730                 .do_read                = i_APCI3XXX_InsnReadDigitalOutput,
731         }, {
732                 .pc_DriverName          = "apci3002-4",
733                 .i_VendorId             = PCI_VENDOR_ID_ADDIDATA,
734                 .i_DeviceId             = 0x3004,
735                 .i_IorangeBase0         = 256,
736                 .i_IorangeBase1         = 256,
737                 .i_IorangeBase2         = 256,
738                 .i_IorangeBase3         = 256,
739                 .i_PCIEeprom            = ADDIDATA_NO_EEPROM,
740                 .pc_EepromChip          = ADDIDATA_9054,
741                 .i_NbrAiChannelDiff     = 4,
742                 .i_AiChannelList        = 4,
743                 .i_AiMaxdata            = 65535,
744                 .pr_AiRangelist         = &range_apci3XXX_ai,
745                 .i_NbrDiChannel         = 4,
746                 .i_NbrDoChannel         = 4,
747                 .i_DoMaxdata            = 1,
748                 .b_AvailableConvertUnit = 6,
749                 .ui_MinAcquisitiontimeNs = 5000,
750                 .interrupt              = v_APCI3XXX_Interrupt,
751                 .reset                  = i_APCI3XXX_Reset,
752                 .ai_config              = i_APCI3XXX_InsnConfigAnalogInput,
753                 .ai_read                = i_APCI3XXX_InsnReadAnalogInput,
754                 .di_read                = i_APCI3XXX_InsnReadDigitalInput,
755                 .di_bits                = i_APCI3XXX_InsnBitsDigitalInput,
756                 .do_write               = i_APCI3XXX_InsnWriteDigitalOutput,
757                 .do_bits                = i_APCI3XXX_InsnBitsDigitalOutput,
758                 .do_read                = i_APCI3XXX_InsnReadDigitalOutput,
759         }, {
760                 .pc_DriverName          = "apci3500",
761                 .i_VendorId             = PCI_VENDOR_ID_ADDIDATA,
762                 .i_DeviceId             = 0x3024,
763                 .i_IorangeBase0         = 256,
764                 .i_IorangeBase1         = 256,
765                 .i_IorangeBase2         = 256,
766                 .i_IorangeBase3         = 256,
767                 .i_PCIEeprom            = ADDIDATA_NO_EEPROM,
768                 .pc_EepromChip          = ADDIDATA_9054,
769                 .i_NbrAoChannel         = 4,
770                 .i_AoMaxdata            = 4095,
771                 .pr_AoRangelist         = &range_apci3XXX_ao,
772                 .i_NbrTTLChannel        = 24,
773                 .interrupt              = v_APCI3XXX_Interrupt,
774                 .reset                  = i_APCI3XXX_Reset,
775                 .ao_write               = i_APCI3XXX_InsnWriteAnalogOutput,
776                 .ttl_config             = i_APCI3XXX_InsnConfigInitTTLIO,
777                 .ttl_bits               = i_APCI3XXX_InsnBitsTTLIO,
778                 .ttl_read               = i_APCI3XXX_InsnReadTTLIO,
779                 .ttl_write              = i_APCI3XXX_InsnWriteTTLIO,
780         },
781 };
782
783 static DEFINE_PCI_DEVICE_TABLE(addi_apci_tbl) = {
784         { PCI_DEVICE(PCI_VENDOR_ID_ADDIDATA, 0x3010) },
785         { PCI_DEVICE(PCI_VENDOR_ID_ADDIDATA, 0x300f) },
786         { PCI_DEVICE(PCI_VENDOR_ID_ADDIDATA, 0x300e) },
787         { PCI_DEVICE(PCI_VENDOR_ID_ADDIDATA, 0x3013) },
788         { PCI_DEVICE(PCI_VENDOR_ID_ADDIDATA, 0x3014) },
789         { PCI_DEVICE(PCI_VENDOR_ID_ADDIDATA, 0x3015) },
790         { PCI_DEVICE(PCI_VENDOR_ID_ADDIDATA, 0x3016) },
791         { PCI_DEVICE(PCI_VENDOR_ID_ADDIDATA, 0x3017) },
792         { PCI_DEVICE(PCI_VENDOR_ID_ADDIDATA, 0x3018) },
793         { PCI_DEVICE(PCI_VENDOR_ID_ADDIDATA, 0x3019) },
794         { PCI_DEVICE(PCI_VENDOR_ID_ADDIDATA, 0x301a) },
795         { PCI_DEVICE(PCI_VENDOR_ID_ADDIDATA, 0x301b) },
796         { PCI_DEVICE(PCI_VENDOR_ID_ADDIDATA, 0x301c) },
797         { PCI_DEVICE(PCI_VENDOR_ID_ADDIDATA, 0x301d) },
798         { PCI_DEVICE(PCI_VENDOR_ID_ADDIDATA, 0x301e) },
799         { PCI_DEVICE(PCI_VENDOR_ID_ADDIDATA, 0x301f) },
800         { PCI_DEVICE(PCI_VENDOR_ID_ADDIDATA, 0x3020) },
801         { PCI_DEVICE(PCI_VENDOR_ID_ADDIDATA, 0x3021) },
802         { PCI_DEVICE(PCI_VENDOR_ID_ADDIDATA, 0x3022) },
803         { PCI_DEVICE(PCI_VENDOR_ID_ADDIDATA, 0x3023) },
804         { PCI_DEVICE(PCI_VENDOR_ID_ADDIDATA, 0x300B) },
805         { PCI_DEVICE(PCI_VENDOR_ID_ADDIDATA, 0x3002) },
806         { PCI_DEVICE(PCI_VENDOR_ID_ADDIDATA, 0x3003) },
807         { PCI_DEVICE(PCI_VENDOR_ID_ADDIDATA, 0x3004) },
808         { PCI_DEVICE(PCI_VENDOR_ID_ADDIDATA, 0x3024) },
809         { 0 }
810 };
811 MODULE_DEVICE_TABLE(pci, addi_apci_tbl);
812
813 #include "addi-data/addi_common.c"
814
815 MODULE_AUTHOR("Comedi http://www.comedi.org");
816 MODULE_DESCRIPTION("Comedi low-level driver");
817 MODULE_LICENSE("GPL");