APCI1710_Pwm.h revision 82a6e2e7ab47b940d5d1d7c1d13498be27f238f8
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
29int i_APCI1710_InsnConfigPWM(struct comedi_device *dev, struct comedi_subdevice *s,
30			     struct comedi_insn *insn, unsigned int *data);
31
32int i_APCI1710_InitPWM(struct comedi_device *dev,
33		       unsigned char b_ModulNbr,
34		       unsigned char b_PWM,
35		       unsigned char b_ClockSelection,
36		       unsigned char b_TimingUnit,
37		       unsigned int ul_LowTiming,
38		       unsigned int ul_HighTiming,
39		       unsigned int * pul_RealLowTiming, unsigned int * pul_RealHighTiming);
40
41int i_APCI1710_GetPWMInitialisation(struct comedi_device *dev,
42				    unsigned char b_ModulNbr,
43				    unsigned char b_PWM,
44				    unsigned char * pb_TimingUnit,
45				    unsigned int * pul_LowTiming,
46				    unsigned int * pul_HighTiming,
47				    unsigned char * pb_StartLevel,
48				    unsigned char * pb_StopMode,
49				    unsigned char * pb_StopLevel,
50				    unsigned char * pb_ExternGate,
51				    unsigned char * pb_InterruptEnable, unsigned char * pb_Enable);
52
53int i_APCI1710_InsnWritePWM(struct comedi_device *dev, struct comedi_subdevice *s,
54			    struct comedi_insn *insn, unsigned int *data);
55
56int i_APCI1710_EnablePWM(struct comedi_device *dev,
57			 unsigned char b_ModulNbr,
58			 unsigned char b_PWM,
59			 unsigned char b_StartLevel,
60			 unsigned char b_StopMode,
61			 unsigned char b_StopLevel, unsigned char b_ExternGate,
62			 unsigned char b_InterruptEnable);
63
64int i_APCI1710_SetNewPWMTiming(struct comedi_device *dev,
65			       unsigned char b_ModulNbr,
66			       unsigned char b_PWM, unsigned char b_TimingUnit,
67			       unsigned int ul_LowTiming, unsigned int ul_HighTiming);
68
69int i_APCI1710_DisablePWM(struct comedi_device *dev, unsigned char b_ModulNbr, unsigned char b_PWM);
70
71int i_APCI1710_InsnReadGetPWMStatus(struct comedi_device *dev, struct comedi_subdevice *s,
72				    struct comedi_insn *insn, unsigned int *data);
73
74int i_APCI1710_InsnBitsReadPWMInterrupt(struct comedi_device *dev,
75					struct comedi_subdevice *s,
76					struct comedi_insn *insn, unsigned int *data);
77