115d8826a6a2ed954ce7daf1d321cce99d5c12668Greg Kroah-Hartman/* 215d8826a6a2ed954ce7daf1d321cce99d5c12668Greg Kroah-Hartman * Copyright (C) 2004,2005 ADDI-DATA GmbH for the source code of this module. 315d8826a6a2ed954ce7daf1d321cce99d5c12668Greg Kroah-Hartman * 415d8826a6a2ed954ce7daf1d321cce99d5c12668Greg Kroah-Hartman * ADDI-DATA GmbH 515d8826a6a2ed954ce7daf1d321cce99d5c12668Greg Kroah-Hartman * Dieselstrasse 3 615d8826a6a2ed954ce7daf1d321cce99d5c12668Greg Kroah-Hartman * D-77833 Ottersweier 715d8826a6a2ed954ce7daf1d321cce99d5c12668Greg Kroah-Hartman * Tel: +19(0)7223/9493-0 815d8826a6a2ed954ce7daf1d321cce99d5c12668Greg Kroah-Hartman * Fax: +49(0)7223/9493-92 925417922694e60f04cd4dc8448ada9236f18c532Justin P. Mattock * http://www.addi-data.com 1015d8826a6a2ed954ce7daf1d321cce99d5c12668Greg Kroah-Hartman * info@addi-data.com 1115d8826a6a2ed954ce7daf1d321cce99d5c12668Greg Kroah-Hartman * 1215d8826a6a2ed954ce7daf1d321cce99d5c12668Greg Kroah-Hartman * This program is free software; you can redistribute it and/or modify it 1315d8826a6a2ed954ce7daf1d321cce99d5c12668Greg Kroah-Hartman * under the terms of the GNU General Public License as published by the Free 1415d8826a6a2ed954ce7daf1d321cce99d5c12668Greg Kroah-Hartman * Software Foundation; either version 2 of the License, or (at your option) 1515d8826a6a2ed954ce7daf1d321cce99d5c12668Greg Kroah-Hartman * any later version. 1615d8826a6a2ed954ce7daf1d321cce99d5c12668Greg Kroah-Hartman */ 1715d8826a6a2ed954ce7daf1d321cce99d5c12668Greg Kroah-Hartman 1815d8826a6a2ed954ce7daf1d321cce99d5c12668Greg Kroah-Hartman#define APCI1710_30MHZ 30 1915d8826a6a2ed954ce7daf1d321cce99d5c12668Greg Kroah-Hartman#define APCI1710_33MHZ 33 2015d8826a6a2ed954ce7daf1d321cce99d5c12668Greg Kroah-Hartman#define APCI1710_40MHZ 40 2115d8826a6a2ed954ce7daf1d321cce99d5c12668Greg Kroah-Hartman 2215d8826a6a2ed954ce7daf1d321cce99d5c12668Greg Kroah-Hartman#define APCI1710_PWM_INIT 0 23c995fe9475e062bab6f5a45ed28cd2d3d955ef43ADDI-DATA GmbH#define APCI1710_PWM_GETINITDATA 1 24c995fe9475e062bab6f5a45ed28cd2d3d955ef43ADDI-DATA GmbH 2515d8826a6a2ed954ce7daf1d321cce99d5c12668Greg Kroah-Hartman#define APCI1710_PWM_DISABLE 0 2615d8826a6a2ed954ce7daf1d321cce99d5c12668Greg Kroah-Hartman#define APCI1710_PWM_ENABLE 1 2715d8826a6a2ed954ce7daf1d321cce99d5c12668Greg Kroah-Hartman#define APCI1710_PWM_NEWTIMING 2 2815d8826a6a2ed954ce7daf1d321cce99d5c12668Greg Kroah-Hartman 2974b894e56abcb2403894b268100773f4aabe1999Bill Pembertonint i_APCI1710_InsnConfigPWM(struct comedi_device *dev, struct comedi_subdevice *s, 3090035c0886b256d75bced13b3b3cea5234aff136Bill Pemberton struct comedi_insn *insn, unsigned int *data); 3115d8826a6a2ed954ce7daf1d321cce99d5c12668Greg Kroah-Hartman 3274b894e56abcb2403894b268100773f4aabe1999Bill Pembertonint i_APCI1710_InitPWM(struct comedi_device *dev, 331783fbfe023b7c2b912fbb020e01ff46985aa0abBill Pemberton unsigned char b_ModulNbr, 341783fbfe023b7c2b912fbb020e01ff46985aa0abBill Pemberton unsigned char b_PWM, 351783fbfe023b7c2b912fbb020e01ff46985aa0abBill Pemberton unsigned char b_ClockSelection, 361783fbfe023b7c2b912fbb020e01ff46985aa0abBill Pemberton unsigned char b_TimingUnit, 3782a6e2e7ab47b940d5d1d7c1d13498be27f238f8Bill Pemberton unsigned int ul_LowTiming, 3882a6e2e7ab47b940d5d1d7c1d13498be27f238f8Bill Pemberton unsigned int ul_HighTiming, 39da91b2692e0939b307f9047192d2b9fe07793e7aBill Pemberton unsigned int *pul_RealLowTiming, unsigned int *pul_RealHighTiming); 4015d8826a6a2ed954ce7daf1d321cce99d5c12668Greg Kroah-Hartman 4174b894e56abcb2403894b268100773f4aabe1999Bill Pembertonint i_APCI1710_GetPWMInitialisation(struct comedi_device *dev, 421783fbfe023b7c2b912fbb020e01ff46985aa0abBill Pemberton unsigned char b_ModulNbr, 431783fbfe023b7c2b912fbb020e01ff46985aa0abBill Pemberton unsigned char b_PWM, 44da91b2692e0939b307f9047192d2b9fe07793e7aBill Pemberton unsigned char *pb_TimingUnit, 45da91b2692e0939b307f9047192d2b9fe07793e7aBill Pemberton unsigned int *pul_LowTiming, 46da91b2692e0939b307f9047192d2b9fe07793e7aBill Pemberton unsigned int *pul_HighTiming, 47da91b2692e0939b307f9047192d2b9fe07793e7aBill Pemberton unsigned char *pb_StartLevel, 48da91b2692e0939b307f9047192d2b9fe07793e7aBill Pemberton unsigned char *pb_StopMode, 49da91b2692e0939b307f9047192d2b9fe07793e7aBill Pemberton unsigned char *pb_StopLevel, 50da91b2692e0939b307f9047192d2b9fe07793e7aBill Pemberton unsigned char *pb_ExternGate, 51da91b2692e0939b307f9047192d2b9fe07793e7aBill Pemberton unsigned char *pb_InterruptEnable, unsigned char *pb_Enable); 5215d8826a6a2ed954ce7daf1d321cce99d5c12668Greg Kroah-Hartman 5374b894e56abcb2403894b268100773f4aabe1999Bill Pembertonint i_APCI1710_InsnWritePWM(struct comedi_device *dev, struct comedi_subdevice *s, 5490035c0886b256d75bced13b3b3cea5234aff136Bill Pemberton struct comedi_insn *insn, unsigned int *data); 5515d8826a6a2ed954ce7daf1d321cce99d5c12668Greg Kroah-Hartman 5674b894e56abcb2403894b268100773f4aabe1999Bill Pembertonint i_APCI1710_EnablePWM(struct comedi_device *dev, 571783fbfe023b7c2b912fbb020e01ff46985aa0abBill Pemberton unsigned char b_ModulNbr, 581783fbfe023b7c2b912fbb020e01ff46985aa0abBill Pemberton unsigned char b_PWM, 591783fbfe023b7c2b912fbb020e01ff46985aa0abBill Pemberton unsigned char b_StartLevel, 601783fbfe023b7c2b912fbb020e01ff46985aa0abBill Pemberton unsigned char b_StopMode, 611783fbfe023b7c2b912fbb020e01ff46985aa0abBill Pemberton unsigned char b_StopLevel, unsigned char b_ExternGate, 621783fbfe023b7c2b912fbb020e01ff46985aa0abBill Pemberton unsigned char b_InterruptEnable); 6315d8826a6a2ed954ce7daf1d321cce99d5c12668Greg Kroah-Hartman 6474b894e56abcb2403894b268100773f4aabe1999Bill Pembertonint i_APCI1710_SetNewPWMTiming(struct comedi_device *dev, 651783fbfe023b7c2b912fbb020e01ff46985aa0abBill Pemberton unsigned char b_ModulNbr, 661783fbfe023b7c2b912fbb020e01ff46985aa0abBill Pemberton unsigned char b_PWM, unsigned char b_TimingUnit, 6782a6e2e7ab47b940d5d1d7c1d13498be27f238f8Bill Pemberton unsigned int ul_LowTiming, unsigned int ul_HighTiming); 6815d8826a6a2ed954ce7daf1d321cce99d5c12668Greg Kroah-Hartman 6974b894e56abcb2403894b268100773f4aabe1999Bill Pembertonint i_APCI1710_DisablePWM(struct comedi_device *dev, unsigned char b_ModulNbr, unsigned char b_PWM); 7015d8826a6a2ed954ce7daf1d321cce99d5c12668Greg Kroah-Hartman 7174b894e56abcb2403894b268100773f4aabe1999Bill Pembertonint i_APCI1710_InsnReadGetPWMStatus(struct comedi_device *dev, struct comedi_subdevice *s, 7290035c0886b256d75bced13b3b3cea5234aff136Bill Pemberton struct comedi_insn *insn, unsigned int *data); 7315d8826a6a2ed954ce7daf1d321cce99d5c12668Greg Kroah-Hartman 7474b894e56abcb2403894b268100773f4aabe1999Bill Pembertonint i_APCI1710_InsnBitsReadPWMInterrupt(struct comedi_device *dev, 7534c43922e62708d45e9660eee4b4f1fb7b4bf2c7Bill Pemberton struct comedi_subdevice *s, 7690035c0886b256d75bced13b3b3cea5234aff136Bill Pemberton struct comedi_insn *insn, unsigned int *data); 77