Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
drivers
staging
comedi
drivers
addi-data
APCI1710_INCCPT.h
Go to the documentation of this file.
1
/*
2
* Copyright (C) 2004,2005 ADDI-DATA GmbH for the source code of this module.
3
*
4
* ADDI-DATA GmbH
5
* Dieselstrasse 3
6
* D-77833 Ottersweier
7
* Tel: +19(0)7223/9493-0
8
* Fax: +49(0)7223/9493-92
9
* http://www.addi-data.com
10
*
[email protected]
11
*
12
* This program is free software; you can redistribute it and/or modify it
13
* under the terms of the GNU General Public License as published by the Free
14
* Software Foundation; either version 2 of the License, or (at your option)
15
* any later version.
16
*/
17
18
#define APCI1710_16BIT_COUNTER 0x10
19
#define APCI1710_32BIT_COUNTER 0x0
20
#define APCI1710_QUADRUPLE_MODE 0x0
21
#define APCI1710_DOUBLE_MODE 0x3
22
#define APCI1710_SIMPLE_MODE 0xF
23
#define APCI1710_DIRECT_MODE 0x80
24
#define APCI1710_HYSTERESIS_ON 0x60
25
#define APCI1710_HYSTERESIS_OFF 0x0
26
#define APCI1710_INCREMENT 0x60
27
#define APCI1710_DECREMENT 0x0
28
#define APCI1710_LATCH_COUNTER 0x1
29
#define APCI1710_CLEAR_COUNTER 0x0
30
#define APCI1710_LOW 0x0
31
#define APCI1710_HIGH 0x1
32
33
/*********************/
34
/* Version 0600-0229 */
35
/*********************/
36
#define APCI1710_HIGH_EDGE_CLEAR_COUNTER 0x0
37
#define APCI1710_HIGH_EDGE_LATCH_COUNTER 0x1
38
#define APCI1710_LOW_EDGE_CLEAR_COUNTER 0x2
39
#define APCI1710_LOW_EDGE_LATCH_COUNTER 0x3
40
#define APCI1710_HIGH_EDGE_LATCH_AND_CLEAR_COUNTER 0x4
41
#define APCI1710_LOW_EDGE_LATCH_AND_CLEAR_COUNTER 0x5
42
#define APCI1710_SOURCE_0 0x0
43
#define APCI1710_SOURCE_1 0x1
44
45
#define APCI1710_30MHZ 30
46
#define APCI1710_33MHZ 33
47
#define APCI1710_40MHZ 40
48
49
#define APCI1710_ENABLE_LATCH_INT 0x80
50
#define APCI1710_DISABLE_LATCH_INT (~APCI1710_ENABLE_LATCH_INT)
51
52
#define APCI1710_INDEX_LATCH_COUNTER 0x10
53
#define APCI1710_INDEX_AUTO_MODE 0x8
54
#define APCI1710_ENABLE_INDEX 0x4
55
#define APCI1710_DISABLE_INDEX (~APCI1710_ENABLE_INDEX)
56
#define APCI1710_ENABLE_LATCH_AND_CLEAR 0x8
57
#define APCI1710_DISABLE_LATCH_AND_CLEAR (~APCI1710_ENABLE_LATCH_AND_CLEAR)
58
#define APCI1710_SET_LOW_INDEX_LEVEL 0x4
59
#define APCI1710_SET_HIGH_INDEX_LEVEL (~APCI1710_SET_LOW_INDEX_LEVEL)
60
#define APCI1710_INVERT_INDEX_RFERENCE 0x2
61
#define APCI1710_DEFAULT_INDEX_RFERENCE (~APCI1710_INVERT_INDEX_RFERENCE)
62
63
#define APCI1710_ENABLE_INDEX_INT 0x1
64
#define APCI1710_DISABLE_INDEX_INT (~APCI1710_ENABLE_INDEX_INT)
65
66
#define APCI1710_ENABLE_FREQUENCY 0x4
67
#define APCI1710_DISABLE_FREQUENCY (~APCI1710_ENABLE_FREQUENCY)
68
69
#define APCI1710_ENABLE_FREQUENCY_INT 0x8
70
#define APCI1710_DISABLE_FREQUENCY_INT (~APCI1710_ENABLE_FREQUENCY_INT)
71
72
#define APCI1710_ENABLE_40MHZ_FREQUENCY 0x40
73
#define APCI1710_DISABLE_40MHZ_FREQUENCY (~APCI1710_ENABLE_40MHZ_FREQUENCY)
74
75
#define APCI1710_ENABLE_40MHZ_FILTER 0x80
76
#define APCI1710_DISABLE_40MHZ_FILTER (~APCI1710_ENABLE_40MHZ_FILTER)
77
78
#define APCI1710_ENABLE_COMPARE_INT 0x2
79
#define APCI1710_DISABLE_COMPARE_INT (~APCI1710_ENABLE_COMPARE_INT)
80
81
#define APCI1710_ENABLE_INDEX_ACTION 0x20
82
#define APCI1710_DISABLE_INDEX_ACTION (~APCI1710_ENABLE_INDEX_ACTION)
83
#define APCI1710_REFERENCE_HIGH 0x40
84
#define APCI1710_REFERENCE_LOW (~APCI1710_REFERENCE_HIGH)
85
86
#define APCI1710_TOR_GATE_LOW 0x40
87
#define APCI1710_TOR_GATE_HIGH (~APCI1710_TOR_GATE_LOW)
88
89
/* INSN CONFIG */
90
#define APCI1710_INCCPT_INITCOUNTER 100
91
#define APCI1710_INCCPT_COUNTERAUTOTEST 101
92
#define APCI1710_INCCPT_INITINDEX 102
93
#define APCI1710_INCCPT_INITREFERENCE 103
94
#define APCI1710_INCCPT_INITEXTERNALSTROBE 104
95
#define APCI1710_INCCPT_INITCOMPARELOGIC 105
96
#define APCI1710_INCCPT_INITFREQUENCYMEASUREMENT 106
97
98
/* INSN READ */
99
#define APCI1710_INCCPT_READLATCHREGISTERSTATUS 200
100
#define APCI1710_INCCPT_READLATCHREGISTERVALUE 201
101
#define APCI1710_INCCPT_READ16BITCOUNTERVALUE 202
102
#define APCI1710_INCCPT_READ32BITCOUNTERVALUE 203
103
#define APCI1710_INCCPT_GETINDEXSTATUS 204
104
#define APCI1710_INCCPT_GETREFERENCESTATUS 205
105
#define APCI1710_INCCPT_GETUASSTATUS 206
106
#define APCI1710_INCCPT_GETCBSTATUS 207
107
#define APCI1710_INCCPT_GET16BITCBSTATUS 208
108
#define APCI1710_INCCPT_GETUDSTATUS 209
109
#define APCI1710_INCCPT_GETINTERRUPTUDLATCHEDSTATUS 210
110
#define APCI1710_INCCPT_READFREQUENCYMEASUREMENT 211
111
#define APCI1710_INCCPT_READINTERRUPT 212
112
113
/* INSN BITS */
114
#define APCI1710_INCCPT_CLEARCOUNTERVALUE 300
115
#define APCI1710_INCCPT_CLEARALLCOUNTERVALUE 301
116
#define APCI1710_INCCPT_SETINPUTFILTER 302
117
#define APCI1710_INCCPT_LATCHCOUNTER 303
118
#define APCI1710_INCCPT_SETINDEXANDREFERENCESOURCE 304
119
#define APCI1710_INCCPT_SETDIGITALCHLON 305
120
#define APCI1710_INCCPT_SETDIGITALCHLOFF 306
121
122
/* INSN WRITE */
123
#define APCI1710_INCCPT_ENABLELATCHINTERRUPT 400
124
#define APCI1710_INCCPT_DISABLELATCHINTERRUPT 401
125
#define APCI1710_INCCPT_WRITE16BITCOUNTERVALUE 402
126
#define APCI1710_INCCPT_WRITE32BITCOUNTERVALUE 403
127
#define APCI1710_INCCPT_ENABLEINDEX 404
128
#define APCI1710_INCCPT_DISABLEINDEX 405
129
#define APCI1710_INCCPT_ENABLECOMPARELOGIC 406
130
#define APCI1710_INCCPT_DISABLECOMPARELOGIC 407
131
#define APCI1710_INCCPT_ENABLEFREQUENCYMEASUREMENT 408
132
#define APCI1710_INCCPT_DISABLEFREQUENCYMEASUREMENT 409
133
134
/************ Main Functions *************/
135
int
i_APCI1710_InsnConfigINCCPT
(
struct
comedi_device
*
dev
,
struct
comedi_subdevice
*
s
,
136
struct
comedi_insn
*
insn
,
unsigned
int
*
data
);
137
138
int
i_APCI1710_InsnBitsINCCPT
(
struct
comedi_device
*
dev
,
struct
comedi_subdevice
*
s
,
139
struct
comedi_insn
*
insn
,
unsigned
int
*
data
);
140
141
int
i_APCI1710_InsnWriteINCCPT
(
struct
comedi_device
*
dev
,
struct
comedi_subdevice
*
s
,
142
struct
comedi_insn
*
insn
,
unsigned
int
*
data
);
143
144
int
i_APCI1710_InsnReadINCCPT
(
struct
comedi_device
*
dev
,
struct
comedi_subdevice
*
s
,
145
struct
comedi_insn
*
insn
,
unsigned
int
*
data
);
146
147
/*********** Supplementary Functions********/
148
149
/* INSN CONFIG */
150
int
i_APCI1710_InitCounter
(
struct
comedi_device
*
dev
,
151
unsigned
char
b_ModulNbr
,
152
unsigned
char
b_CounterRange,
153
unsigned
char
b_FirstCounterModus,
154
unsigned
char
b_FirstCounterOption,
155
unsigned
char
b_SecondCounterModus,
156
unsigned
char
b_SecondCounterOption);
157
158
int
i_APCI1710_CounterAutoTest
(
struct
comedi_device
*
dev
,
unsigned
char
* pb_TestStatus);
159
160
int
i_APCI1710_InitIndex
(
struct
comedi_device
*
dev
,
161
unsigned
char
b_ModulNbr
,
162
unsigned
char
b_ReferenceAction,
163
unsigned
char
b_IndexOperation,
unsigned
char
b_AutoMode,
164
unsigned
char
b_InterruptEnable
);
165
166
int
i_APCI1710_InitReference
(
struct
comedi_device
*
dev
,
167
unsigned
char
b_ModulNbr
,
unsigned
char
b_ReferenceLevel);
168
169
int
i_APCI1710_InitExternalStrobe
(
struct
comedi_device
*
dev
,
170
unsigned
char
b_ModulNbr
,
unsigned
char
b_ExternalStrobe,
171
unsigned
char
b_ExternalStrobeLevel);
172
173
int
i_APCI1710_InitCompareLogic
(
struct
comedi_device
*
dev
,
174
unsigned
char
b_ModulNbr
,
unsigned
int
ui_CompareValue);
175
176
int
i_APCI1710_InitFrequencyMeasurement
(
struct
comedi_device
*
dev
,
177
unsigned
char
b_ModulNbr
,
178
unsigned
char
b_PCIInputClock,
179
unsigned
char
b_TimingUnity,
180
unsigned
int
ul_TimingInterval,
181
unsigned
int
*pul_RealTimingInterval);
182
183
/* INSN BITS */
184
int
i_APCI1710_ClearCounterValue
(
struct
comedi_device
*
dev
,
unsigned
char
b_ModulNbr
);
185
186
int
i_APCI1710_ClearAllCounterValue
(
struct
comedi_device
*
dev
);
187
188
int
i_APCI1710_SetInputFilter
(
struct
comedi_device
*
dev
,
189
unsigned
char
b_ModulNbr
,
unsigned
char
b_PCIInputClock,
190
unsigned
char
b_Filter);
191
192
int
i_APCI1710_LatchCounter
(
struct
comedi_device
*
dev
,
193
unsigned
char
b_ModulNbr
,
unsigned
char
b_LatchReg);
194
195
int
i_APCI1710_SetIndexAndReferenceSource
(
struct
comedi_device
*
dev
,
196
unsigned
char
b_ModulNbr
,
197
unsigned
char
b_SourceSelection);
198
199
int
i_APCI1710_SetDigitalChlOn
(
struct
comedi_device
*
dev
,
unsigned
char
b_ModulNbr
);
200
201
int
i_APCI1710_SetDigitalChlOff
(
struct
comedi_device
*
dev
,
unsigned
char
b_ModulNbr
);
202
203
/* INSN WRITE */
204
int
i_APCI1710_EnableLatchInterrupt
(
struct
comedi_device
*
dev
,
unsigned
char
b_ModulNbr
);
205
206
int
i_APCI1710_DisableLatchInterrupt
(
struct
comedi_device
*
dev
,
unsigned
char
b_ModulNbr
);
207
208
int
i_APCI1710_Write16BitCounterValue
(
struct
comedi_device
*
dev
,
209
unsigned
char
b_ModulNbr
,
unsigned
char
b_SelectedCounter,
210
unsigned
int
ui_WriteValue);
211
212
int
i_APCI1710_Write32BitCounterValue
(
struct
comedi_device
*
dev
,
213
unsigned
char
b_ModulNbr
,
unsigned
int
ul_WriteValue);
214
215
int
i_APCI1710_EnableIndex
(
struct
comedi_device
*
dev
,
unsigned
char
b_ModulNbr
);
216
217
int
i_APCI1710_DisableIndex
(
struct
comedi_device
*
dev
,
unsigned
char
b_ModulNbr
);
218
219
int
i_APCI1710_EnableCompareLogic
(
struct
comedi_device
*
dev
,
unsigned
char
b_ModulNbr
);
220
221
int
i_APCI1710_DisableCompareLogic
(
struct
comedi_device
*
dev
,
unsigned
char
b_ModulNbr
);
222
223
int
i_APCI1710_EnableFrequencyMeasurement
(
struct
comedi_device
*
dev
,
224
unsigned
char
b_ModulNbr
,
225
unsigned
char
b_InterruptEnable
);
226
227
int
i_APCI1710_DisableFrequencyMeasurement
(
struct
comedi_device
*
dev
,
228
unsigned
char
b_ModulNbr
);
229
230
/* INSN READ */
231
int
i_APCI1710_ReadLatchRegisterStatus
(
struct
comedi_device
*
dev
,
232
unsigned
char
b_ModulNbr
,
unsigned
char
b_LatchReg,
233
unsigned
char
*pb_LatchStatus);
234
235
int
i_APCI1710_ReadLatchRegisterValue
(
struct
comedi_device
*
dev
,
236
unsigned
char
b_ModulNbr
,
unsigned
char
b_LatchReg,
237
unsigned
int
*pul_LatchValue);
238
239
int
i_APCI1710_Read16BitCounterValue
(
struct
comedi_device
*
dev
,
240
unsigned
char
b_ModulNbr
,
unsigned
char
b_SelectedCounter,
241
unsigned
int
*pui_CounterValue);
242
243
int
i_APCI1710_Read32BitCounterValue
(
struct
comedi_device
*
dev
,
244
unsigned
char
b_ModulNbr
,
unsigned
int
*pul_CounterValue);
245
246
int
i_APCI1710_GetIndexStatus
(
struct
comedi_device
*
dev
,
247
unsigned
char
b_ModulNbr
,
unsigned
char
*pb_IndexStatus);
248
249
int
i_APCI1710_GetReferenceStatus
(
struct
comedi_device
*
dev
,
250
unsigned
char
b_ModulNbr
,
unsigned
char
*pb_ReferenceStatus);
251
252
int
i_APCI1710_GetUASStatus
(
struct
comedi_device
*
dev
,
253
unsigned
char
b_ModulNbr
,
unsigned
char
*pb_UASStatus);
254
255
int
i_APCI1710_GetCBStatus
(
struct
comedi_device
*
dev
,
256
unsigned
char
b_ModulNbr
,
unsigned
char
*pb_CBStatus);
257
258
int
i_APCI1710_Get16BitCBStatus
(
struct
comedi_device
*
dev
,
259
unsigned
char
b_ModulNbr
,
unsigned
char
*pb_CBStatusCounter0,
260
unsigned
char
*pb_CBStatusCounter1);
261
262
int
i_APCI1710_GetUDStatus
(
struct
comedi_device
*
dev
,
263
unsigned
char
b_ModulNbr
,
unsigned
char
*pb_UDStatus);
264
265
int
i_APCI1710_GetInterruptUDLatchedStatus
(
struct
comedi_device
*
dev
,
266
unsigned
char
b_ModulNbr
,
unsigned
char
*pb_UDStatus);
267
268
int
i_APCI1710_ReadFrequencyMeasurement
(
struct
comedi_device
*
dev
,
269
unsigned
char
b_ModulNbr
,
270
unsigned
char
*pb_Status,
unsigned
char
*pb_UDStatus,
271
unsigned
int
*pul_ReadValue);
Generated on Thu Jan 10 2013 14:26:30 for Linux Kernel by
1.8.2