Merge branch 'for-2.6.31' of git://git.linux-nfs.org/projects/trondmy/nfs-2.6
[pandora-kernel.git] / drivers / staging / comedi / drivers / addi-data / APCI1710_Chrono.h
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  *      info@addi-data.com
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_30MHZ                  30
19 #define APCI1710_33MHZ                  33
20 #define APCI1710_40MHZ                  40
21
22 #define APCI1710_SINGLE                 0
23 #define APCI1710_CONTINUOUS             1
24
25 #define APCI1710_CHRONO_PROGRESS_STATUS 0
26 #define APCI1710_CHRONO_READVALUE       1
27 #define APCI1710_CHRONO_CONVERTVALUE    2
28 #define APCI1710_CHRONO_READINTERRUPT   3
29
30 #define APCI1710_CHRONO_SET_CHANNELON   0
31 #define APCI1710_CHRONO_SET_CHANNELOFF  1
32 #define APCI1710_CHRONO_READ_CHANNEL    2
33 #define APCI1710_CHRONO_READ_PORT       3
34
35 /*
36  * CHRONOMETER INISIALISATION FUNCTION
37  */
38 int i_APCI1710_InsnConfigInitChrono(struct comedi_device *dev, struct comedi_subdevice *s,
39                                     struct comedi_insn *insn, unsigned int *data);
40
41 int i_APCI1710_InsnWriteEnableDisableChrono(struct comedi_device *dev,
42                                             struct comedi_subdevice *s,
43                                             struct comedi_insn *insn,
44                                             unsigned int *data);
45
46 /*
47  * CHRONOMETER READ FUNCTION
48  */
49 int i_APCI1710_InsnReadChrono(struct comedi_device *dev, struct comedi_subdevice *s,
50                               struct comedi_insn *insn, unsigned int *data);
51
52 int i_APCI1710_GetChronoProgressStatus(struct comedi_device *dev,
53                                        unsigned char b_ModulNbr, unsigned char *pb_ChronoStatus);
54
55 int i_APCI1710_ReadChronoValue(struct comedi_device *dev,
56                                unsigned char b_ModulNbr,
57                                unsigned int ui_TimeOut, unsigned char *pb_ChronoStatus,
58                                unsigned int *pul_ChronoValue);
59
60 int i_APCI1710_ConvertChronoValue(struct comedi_device *dev,
61                                   unsigned char b_ModulNbr,
62                                   unsigned int ul_ChronoValue,
63                                   unsigned int *pul_Hour,
64                                   unsigned char *pb_Minute,
65                                   unsigned char *pb_Second,
66                                   unsigned int *pui_MilliSecond, unsigned int *pui_MicroSecond,
67                                   unsigned int *pui_NanoSecond);
68
69 /*
70  * CHRONOMETER DIGITAL INPUT OUTPUT FUNCTION
71  */
72 int i_APCI1710_InsnBitsChronoDigitalIO(struct comedi_device *dev,
73                                        struct comedi_subdevice *s, struct comedi_insn *insn,
74                                        unsigned int *data);