APCI1710_Pwm.h revision 90035c0886b256d75bced13b3b3cea5234aff136
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		       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
41INT i_APCI1710_GetPWMInitialisation(struct 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
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			 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
64INT i_APCI1710_SetNewPWMTiming(struct comedi_device *dev,
65			       BYTE b_ModulNbr,
66			       BYTE b_PWM, BYTE b_TimingUnit,
67			       ULONG ul_LowTiming, ULONG ul_HighTiming);
68
69INT i_APCI1710_DisablePWM(struct comedi_device *dev, BYTE b_ModulNbr, BYTE 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