107 #ifndef __xpci3xxx_H__
108 #define __xpci3xxx_H__
116 #define xpci3xxx_BOARD_NAME "xpci3xxx"
119 #define xpci3xxx_BOARD_VENDOR_ID 0x15B8
122 #define xpci3002_16_BOARD_DEVICE_ID 0x3002
125 #define xpci3002_8_BOARD_DEVICE_ID 0x3003
128 #define xpci3002_4_BOARD_DEVICE_ID 0x3004
131 #define xpci3003_BOARD_DEVICE_ID 0x300b
134 #define xpci3000_16_BOARD_DEVICE_ID 0x3010
137 #define xpci3000_8_BOARD_DEVICE_ID 0x3011
140 #define xpci3000_4_BOARD_DEVICE_ID 0x3012
143 #define xpci3006_16_BOARD_DEVICE_ID 0x3013
146 #define xpci3006_8_BOARD_DEVICE_ID 0x3014
149 #define xpci3006_4_BOARD_DEVICE_ID 0x3015
152 #define xpci3010_16_BOARD_DEVICE_ID 0x3016
155 #define xpci3010_8_BOARD_DEVICE_ID 0x3017
158 #define xpci3010_4_BOARD_DEVICE_ID 0x3018
161 #define xpci3016_16_BOARD_DEVICE_ID 0x3019
164 #define xpci3016_8_BOARD_DEVICE_ID 0x301a
167 #define xpci3016_4_BOARD_DEVICE_ID 0x301b
170 #define xpci3100_16_BOARD_DEVICE_ID 0x301c
173 #define xpci3100_8_BOARD_DEVICE_ID 0x301d
176 #define xpci3106_16_BOARD_DEVICE_ID 0x301e
178 #define xpci3106_8_BOARD_DEVICE_ID 0x301f
181 #define xpci3110_16_BOARD_DEVICE_ID 0x3020
183 #define xpci3110_8_BOARD_DEVICE_ID 0x3021
186 #define xpci3116_16_BOARD_DEVICE_ID 0x3022
188 #define xpci3116_8_BOARD_DEVICE_ID 0x3023
191 #define xpci3500_BOARD_DEVICE_ID 0x3024
194 #define xpci3501_BOARD_DEVICE_ID 0x3001
197 #define xpci3002_16_AUDI_BOARD_DEVICE_ID 0x3029
200 #define xpci3009_BOARD_DEVICE_ID 0x3028
203 #define xpcie3121_16_8_BOARD_DEVICE_ID 0x302E
204 #define xpcie3121_16_4_BOARD_DEVICE_ID 0x302F
205 #define xpcie3121_8_8_BOARD_DEVICE_ID 0x3030
206 #define xpcie3121_8_4_BOARD_DEVICE_ID 0x3031
207 #define xpcie3121_16_8C_BOARD_DEVICE_ID 0x3032
208 #define xpcie3121_16_4C_BOARD_DEVICE_ID 0x3033
209 #define xpcie3121_8_8C_BOARD_DEVICE_ID 0x3034
210 #define xpcie3121_8_4C_BOARD_DEVICE_ID 0x3035
212 #define xpcie3021_16_BOARD_DEVICE_ID 0x3036
213 #define xpcie3021_8_BOARD_DEVICE_ID 0x3037
214 #define xpcie3021_4_BOARD_DEVICE_ID 0x3038
216 #define xpcie3521_8_BOARD_DEVICE_ID 0x3039
217 #define xpcie3521_4_BOARD_DEVICE_ID 0x303A
218 #define xpcie3521_8C_BOARD_DEVICE_ID 0x303B
219 #define xpcie3521_4C_BOARD_DEVICE_ID 0x303C
222 #define xpcie3126_16_8_BOARD_DEVICE_ID 0x3040
235 #ifndef CONFIG_xpci3xxx_MAX_BOARD_NBR
236 #define CONFIG_xpci3xxx_MAX_BOARD_NBR (3)
240 #define xpci3xxx_MAX_BOARD_NBR CONFIG_xpci3xxx_MAX_BOARD_NBR
243 #define xpci3xxx_MAGIC (char) 'A'
254 #define ADDIDATA_DIFFERENTIAL 1
255 #define ADDIDATA_SINGLE 0
257 #define ADDIDATA_ENABLE 1
258 #define ADDIDATA_DISABLE 0
260 #define ADDIDATA_DIGITAL_INPUT 0
261 #define ADDIDATA_DIGITAL_OUTPUT 1
263 #define ADDIDATA_TIMER 4
264 #define ADDIDATA_WATCHDOG 5
265 #define ADDIDATA_COUNTER 7
267 #define ADDIDATA_ENABLE 1
268 #define ADDIDATA_DISABLE 0
270 #define ADDIDATA_UP 1
271 #define ADDIDATA_DOWN 0
273 #define ADDIDATA_LOW 1
274 #define ADDIDATA_HIGH 2
275 #define ADDIDATA_LOW_HIGH 3
277 #define ADDIDATA_OR 1
278 #define ADDIDATA_AND 2
280 #define ADDIDATA_MAX_TCW 3
282 #define ADDIDATA_MAX_AI 16
283 #define ADDIDATA_1_GAIN 0x0
284 #define ADDIDATA_2_GAIN 0x1
285 #define ADDIDATA_5_GAIN 0x2
286 #define ADDIDATA_10_GAIN 0x3
288 #define ADDIDATA_BIPOLAR 0x0
289 #define ADDIDATA_UNIPOLAR 0x1
291 #define ADDIDATA_NANO_SECOND 0x0
292 #define ADDIDATA_MICRO_SECOND 0x1
293 #define ADDIDATA_MILLI_SECOND 0x2
294 #define ADDIDATA_SECOND 0x3
296 #define ADDIDATA_DELAY_MODE_1 1
297 #define ADDIDATA_DELAY_MODE_2 2
298 #define ADDIDATA_EOC 0x1U
349 #define CMD_xpci3xxx_GetHardwareInformation _IOR(xpci3xxx_MAGIC, 1,long)
388 #define CMD_xpci3xxx_TestInterrupt _IOR(xpci3xxx_MAGIC, 2,long)
410 #define CMD_xpci3xxx_SetTTLPortConfiguration _IOR(xpci3xxx_MAGIC, 3,long)
419 #define CMD_xpci3xxx_ReadEepromHeader_SerialNumber _IOR(xpci3xxx_MAGIC, 4,long)
428 #define CMD_xpci3xxx_GetFirmwareVersion _IOR(xpci3xxx_MAGIC, 5,long)
461 #define CMD_xpci3xxx_InitAnalogInput _IOR(xpci3xxx_MAGIC, 10,long)
484 #define CMD_xpci3xxx_StartAnalogInput _IOR(xpci3xxx_MAGIC, 11,long)
494 #define CMD_xpci3xxx_ReadAnalogInputBit _IOR(xpci3xxx_MAGIC, 12,long)
503 #define CMD_xpci3xxx_ReadAnalogInputValue _IOR(xpci3xxx_MAGIC, 13,long)
577 #define CMD_xpci3xxx_InitAnalogInputAutoRefresh _IOR(xpci3xxx_MAGIC, 14,long)
597 #define CMD_xpci3xxx_StartAnalogInputAutoRefresh _IOR(xpci3xxx_MAGIC, 15,long)
607 #define CMD_xpci3xxx_StopAnalogInputAutoRefresh _IOR(xpci3xxx_MAGIC, 16,long)
620 #define CMD_xpci3xxx_ReadAnalogInputAutoRefreshValueAndCounter _IOR(xpci3xxx_MAGIC, 17,long)
634 #define CMD_xpci3xxx_ReleaseAnalogInputAutoRefresh _IOR(xpci3xxx_MAGIC, 18,long)
716 #define CMD_xpci3xxx_InitAnalogInputSequence _IOR(xpci3xxx_MAGIC, 20,long)
738 #define CMD_xpci3xxx_StartAnalogInputSequence _IOR(xpci3xxx_MAGIC, 21,long)
750 #define CMD_xpci3xxx_StopAnalogInputSequence _IOR(xpci3xxx_MAGIC, 22,long)
765 #define CMD_xpci3xxx_ReleaseAnalogInputSequence _IOR(xpci3xxx_MAGIC, 23,long)
806 #define CMD_xpci3xxx_EnableDisableAnalogInputHardwareTrigger _IOR(xpci3xxx_MAGIC, 40,long)
820 #define CMD_xpci3xxx_GetAnalogInputHardwareTriggerStatus _IOR(xpci3xxx_MAGIC, 41,long)
848 #define CMD_xpci3xxx_EnableDisableAnalogInputSoftwareTrigger _IOR(xpci3xxx_MAGIC, 42,long)
858 #define CMD_xpci3xxx_AnalogInputSoftwareTrigger _IOR(xpci3xxx_MAGIC, 43,long)
869 #define CMD_xpci3xxx_GetAnalogInputSoftwareTriggerStatus _IOR(xpci3xxx_MAGIC, 44,long)
889 #define CMD_xpci3xxx_EnableDisableAnalogInputHardwareGate _IOR(xpci3xxx_MAGIC, 45,long)
900 #define CMD_xpci3xxx_GetAnalogInputHardwareGateStatus _IOR(xpci3xxx_MAGIC, 46,long)
923 #define CMD_xpci3xxx_InitAnalogOutput _IOR(xpci3xxx_MAGIC, 50,long)
935 #define CMD_xpci3xxx_ReadAnalogOutputBit _IOR(xpci3xxx_MAGIC, 51,long)
949 #define CMD_xpci3xxx_WriteAnalogOutputValue _IOR(xpci3xxx_MAGIC, 52,long)
974 #define CMD_xpci3xxx_Read32DigitalInputs _IOR(xpci3xxx_MAGIC, 60,long)
991 #define CMD_xpci3xxx_InitDigitalInputModuleFilter _IOR(xpci3xxx_MAGIC, 61,long)
1008 #define CMD_xpci3xxx_SetDigitalOutputMemoryOn _IOR(xpci3xxx_MAGIC, 72,long)
1020 #define CMD_xpci3xxx_SetDigitalOutputMemoryOff _IOR(xpci3xxx_MAGIC, 73,long)
1042 #define CMD_xpci3xxx_Set32DigitalOutputsOn _IOR(xpci3xxx_MAGIC, 70,long)
1066 #define CMD_xpci3xxx_Set32DigitalOutputsOff _IOR(xpci3xxx_MAGIC, 71,long)
1082 #define CMD_xpci3xxx_Get32DigitalOutputStatus _IOR(xpci3xxx_MAGIC, 74,long)
1159 #define CMD_xpci3xxx_InitTimer _IOR(xpci3xxx_MAGIC, 80,long)
1176 #define CMD_xpci3xxx_ReleaseTimer _IOR(xpci3xxx_MAGIC, 81,long)
1190 #define CMD_xpci3xxx_StartTimer _IOR(xpci3xxx_MAGIC, 82,long)
1200 #define CMD_xpci3xxx_StartAllTimers _IOR(xpci3xxx_MAGIC, 83,long)
1214 #define CMD_xpci3xxx_TriggerTimer _IOR(xpci3xxx_MAGIC, 84,long)
1224 #define CMD_xpci3xxx_TriggerAllTimers _IOR(xpci3xxx_MAGIC, 85,long)
1238 #define CMD_xpci3xxx_StopTimer _IOR(xpci3xxx_MAGIC, 86,long)
1249 #define CMD_xpci3xxx_StopAllTimers _IOR(xpci3xxx_MAGIC, 87,long)
1267 #define CMD_xpci3xxx_ReadTimerValue _IOR(xpci3xxx_MAGIC, 88,long)
1289 #define CMD_xpci3xxx_ReadTimerStatus _IOR(xpci3xxx_MAGIC, 89,long)
1309 #define CMD_xpci3xxx_EnableDisableTimerInterrupt _IOR(xpci3xxx_MAGIC, 90,long)
1331 #define CMD_xpci3xxx_EnableDisableTimerHardwareOutput _IOR(xpci3xxx_MAGIC, 91,long)
1348 #define CMD_xpci3xxx_GetTimerHardwareOutputStatus _IOR(xpci3xxx_MAGIC, 92,long)
1377 #define CMD_xpci3xxx_InitCounter _IOR(xpci3xxx_MAGIC, 100,long)
1395 #define CMD_xpci3xxx_ReleaseCounter _IOR(xpci3xxx_MAGIC, 101,long)
1408 #define CMD_xpci3xxx_StartCounter _IOR(xpci3xxx_MAGIC, 102,long)
1417 #define CMD_xpci3xxx_StartAllCounters _IOR(xpci3xxx_MAGIC, 103,long)
1431 #define CMD_xpci3xxx_TriggerCounter _IOR(xpci3xxx_MAGIC, 104,long)
1440 #define CMD_xpci3xxx_TriggerAllCounters _IOR(xpci3xxx_MAGIC, 105,long)
1453 #define CMD_xpci3xxx_StopCounter _IOR(xpci3xxx_MAGIC, 106,long)
1462 #define CMD_xpci3xxx_StopAllCounters _IOR(xpci3xxx_MAGIC, 107,long)
1476 #define CMD_xpci3xxx_ClearCounter _IOR(xpci3xxx_MAGIC, 108,long)
1492 #define CMD_xpci3xxx_ReadCounterValue _IOR(xpci3xxx_MAGIC, 109,long)
1512 #define CMD_xpci3xxx_ReadCounterStatus _IOR(xpci3xxx_MAGIC, 110,long)
1530 #define CMD_xpci3xxx_EnableDisableCounterInterrupt _IOR(xpci3xxx_MAGIC, 111,long)
1551 #define CMD_xpci3xxx_EnableDisableCounterHardwareOutput _IOR(xpci3xxx_MAGIC, 112,long)
1567 #define CMD_xpci3xxx_GetCounterHardwareOutputStatus _IOR(xpci3xxx_MAGIC, 113,long)
1590 #define CMD_xpci3xxx_InitWatchdog _IOR(xpci3xxx_MAGIC, 120,long)
1603 #define CMD_xpci3xxx_ReleaseWatchdog _IOR(xpci3xxx_MAGIC, 121,long)
1616 #define CMD_xpci3xxx_StartWatchdog _IOR(xpci3xxx_MAGIC, 122,long)
1626 #define CMD_xpci3xxx_StartAllWatchdogs _IOR(xpci3xxx_MAGIC, 123,long)
1639 #define CMD_xpci3xxx_TriggerWatchdog _IOR(xpci3xxx_MAGIC, 124,long)
1648 #define CMD_xpci3xxx_TriggerAllWatchdogs _IOR(xpci3xxx_MAGIC, 125,long)
1662 #define CMD_xpci3xxx_StopWatchdog _IOR(xpci3xxx_MAGIC, 126,long)
1671 #define CMD_xpci3xxx_StopAllWatchdogs _IOR(xpci3xxx_MAGIC, 127,long)
1689 #define CMD_xpci3xxx_ReadWatchdogStatus _IOR(xpci3xxx_MAGIC, 128,long)
1705 #define CMD_xpci3xxx_ReadWatchdogValue _IOR(xpci3xxx_MAGIC, 129,long)
1724 #define CMD_xpci3xxx_EnableDisableWatchdogInterrupt _IOR(xpci3xxx_MAGIC, 130,long)
1744 #define CMD_xpci3xxx_EnableDisableWatchdogHardwareOutput _IOR(xpci3xxx_MAGIC, 131,long)
1760 #define CMD_xpci3xxx_GetWatchdogHardwareOutputStatus _IOR(xpci3xxx_MAGIC, 132,long)
1767 #define __xpci3xxx_UPPER_IOCTL_CMD 132
1773 #define ANALOG_SEQUENCE_START_BITMASK 0x0000000F
1775 #define ANALOG_SEQUENCE_STOP_BITMASK 0x00000F00
1777 #define ADDIDATA_TRIGGER_START_A_SINGLE_CONVERSION 0
1778 #define ADDIDATA_ONE_SHOT_TRIGGER 1
1779 #define ADDIDATA_TRIGGER_START_A_SEQUENCE_SERIES 2
1780 #define ADDIDATA_TRIGGER_START_A_SINGLE_SEQUENCE 3
1781 #define ADDIDATA_TRIGGER_START_A_SCAN_SERIES 6
1782 #define ADDIDATA_TRIGGER_START_A_SINGLE_SCAN 7
1783 #define ADDIDATA_TRIGGER_START_A_AUTO_REFRESH_SERIES 10
1784 #define ADDIDATA_TRIGGER_START_A_SINGLE_AUTO_REFRESH 11
1786 #define ADDIDATA_MAX_INTERRUPT_ANALOG_INPUT_VALUE 100
1791 #define ADDIDATA_MAX_EVENT_COUNTER 256