3eeef3e851819fada45509481e30d1143c042d38
[safe/jmp/linux-2.6] / drivers / staging / comedi / drivers / addi-data / APCI1710_Pwm.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_PWM_INIT               0
23 #define APCI1710_PWM_GETINITDATA        1
24
25 #define APCI1710_PWM_DISABLE            0
26 #define APCI1710_PWM_ENABLE             1
27 #define APCI1710_PWM_NEWTIMING          2
28
29 INT i_APCI1710_InsnConfigPWM(comedi_device *dev, comedi_subdevice *s,
30                              comedi_insn *insn, lsampl_t *data);
31
32 INT i_APCI1710_InitPWM(comedi_device *dev,
33                        BYTE b_ModulNbr,
34                        BYTE b_PWM,
35                        BYTE b_ClockSelection,
36                        BYTE b_TimingUnit,
37                        ULONG ul_LowTiming,
38                        ULONG ul_HighTiming,
39                        PULONG pul_RealLowTiming, PULONG pul_RealHighTiming);
40
41 INT i_APCI1710_GetPWMInitialisation(comedi_device *dev,
42                                     BYTE b_ModulNbr,
43                                     BYTE b_PWM,
44                                     PBYTE pb_TimingUnit,
45                                     PULONG pul_LowTiming,
46                                     PULONG pul_HighTiming,
47                                     PBYTE pb_StartLevel,
48                                     PBYTE pb_StopMode,
49                                     PBYTE pb_StopLevel,
50                                     PBYTE pb_ExternGate,
51                                     PBYTE pb_InterruptEnable, PBYTE pb_Enable);
52
53 INT i_APCI1710_InsnWritePWM(comedi_device *dev, comedi_subdevice *s,
54                             comedi_insn *insn, lsampl_t *data);
55
56 INT i_APCI1710_EnablePWM(comedi_device *dev,
57                          BYTE b_ModulNbr,
58                          BYTE b_PWM,
59                          BYTE b_StartLevel,
60                          BYTE b_StopMode,
61                          BYTE b_StopLevel, BYTE b_ExternGate,
62                          BYTE b_InterruptEnable);
63
64 INT i_APCI1710_SetNewPWMTiming(comedi_device *dev,
65                                BYTE b_ModulNbr,
66                                BYTE b_PWM, BYTE b_TimingUnit,
67                                ULONG ul_LowTiming, ULONG ul_HighTiming);
68
69 INT i_APCI1710_DisablePWM(comedi_device *dev, BYTE b_ModulNbr, BYTE b_PWM);
70
71 INT i_APCI1710_InsnReadGetPWMStatus(comedi_device *dev, comedi_subdevice *s,
72                                     comedi_insn *insn, lsampl_t *data);
73
74 INT i_APCI1710_InsnBitsReadPWMInterrupt(comedi_device *dev,
75                                         comedi_subdevice *s,
76                                         comedi_insn *insn, lsampl_t *data);