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 */ 17c995fe9475e062bab6f5a45ed28cd2d3d955ef43ADDI-DATA GmbH/********* Definitions for APCI-2016 card *****/ 18c995fe9475e062bab6f5a45ed28cd2d3d955ef43ADDI-DATA GmbH 19c995fe9475e062bab6f5a45ed28cd2d3d955ef43ADDI-DATA GmbH#define APCI2016_BOARD_VENDOR_ID 0x15B8 20c995fe9475e062bab6f5a45ed28cd2d3d955ef43ADDI-DATA GmbH#define APCI2016_ADDRESS_RANGE 8 21c995fe9475e062bab6f5a45ed28cd2d3d955ef43ADDI-DATA GmbH 222696fb57e6af653dd8b4df41b16754579f42fc78Bill Pemberton/* DIGITAL INPUT-OUTPUT DEFINE */ 23c995fe9475e062bab6f5a45ed28cd2d3d955ef43ADDI-DATA GmbH 24c995fe9475e062bab6f5a45ed28cd2d3d955ef43ADDI-DATA GmbH#define APCI2016_DIGITAL_OP 0x04 25c995fe9475e062bab6f5a45ed28cd2d3d955ef43ADDI-DATA GmbH#define APCI2016_DIGITAL_OP_RW 4 26c995fe9475e062bab6f5a45ed28cd2d3d955ef43ADDI-DATA GmbH 272696fb57e6af653dd8b4df41b16754579f42fc78Bill Pemberton/* ADDIDATA Enable Disable */ 28c995fe9475e062bab6f5a45ed28cd2d3d955ef43ADDI-DATA GmbH 29c995fe9475e062bab6f5a45ed28cd2d3d955ef43ADDI-DATA GmbH#define ADDIDATA_ENABLE 1 30c995fe9475e062bab6f5a45ed28cd2d3d955ef43ADDI-DATA GmbH#define ADDIDATA_DISABLE 0 31c995fe9475e062bab6f5a45ed28cd2d3d955ef43ADDI-DATA GmbH 322696fb57e6af653dd8b4df41b16754579f42fc78Bill Pemberton/* TIMER COUNTER WATCHDOG DEFINES */ 33c995fe9475e062bab6f5a45ed28cd2d3d955ef43ADDI-DATA GmbH 34c995fe9475e062bab6f5a45ed28cd2d3d955ef43ADDI-DATA GmbH#define ADDIDATA_WATCHDOG 2 35c995fe9475e062bab6f5a45ed28cd2d3d955ef43ADDI-DATA GmbH#define APCI2016_DIGITAL_OP_WATCHDOG 0 36c995fe9475e062bab6f5a45ed28cd2d3d955ef43ADDI-DATA GmbH#define APCI2016_WATCHDOG_ENABLEDISABLE 12 37c995fe9475e062bab6f5a45ed28cd2d3d955ef43ADDI-DATA GmbH#define APCI2016_WATCHDOG_RELOAD_VALUE 4 38c995fe9475e062bab6f5a45ed28cd2d3d955ef43ADDI-DATA GmbH#define APCI2016_WATCHDOG_STATUS 16 39c995fe9475e062bab6f5a45ed28cd2d3d955ef43ADDI-DATA GmbH 402696fb57e6af653dd8b4df41b16754579f42fc78Bill Pemberton/* Hardware Layer functions for Apci2016 */ 41c995fe9475e062bab6f5a45ed28cd2d3d955ef43ADDI-DATA GmbH 422696fb57e6af653dd8b4df41b16754579f42fc78Bill Pemberton/* DO */ 4334c43922e62708d45e9660eee4b4f1fb7b4bf2c7Bill Pembertonint i_APCI2016_ConfigDigitalOutput(struct comedi_device *dev, struct comedi_subdevice *s, 4490035c0886b256d75bced13b3b3cea5234aff136Bill Pemberton struct comedi_insn *insn, unsigned int *data); 45c995fe9475e062bab6f5a45ed28cd2d3d955ef43ADDI-DATA GmbH 4634c43922e62708d45e9660eee4b4f1fb7b4bf2c7Bill Pembertonint i_APCI2016_WriteDigitalOutput(struct comedi_device *dev, struct comedi_subdevice *s, 4790035c0886b256d75bced13b3b3cea5234aff136Bill Pemberton struct comedi_insn *insn, unsigned int *data); 48c995fe9475e062bab6f5a45ed28cd2d3d955ef43ADDI-DATA GmbH 4934c43922e62708d45e9660eee4b4f1fb7b4bf2c7Bill Pembertonint i_APCI2016_BitsDigitalOutput(struct comedi_device *dev, struct comedi_subdevice *s, 5090035c0886b256d75bced13b3b3cea5234aff136Bill Pemberton struct comedi_insn *insn, unsigned int *data); 51c995fe9475e062bab6f5a45ed28cd2d3d955ef43ADDI-DATA GmbH 522696fb57e6af653dd8b4df41b16754579f42fc78Bill Pemberton/* 532696fb57e6af653dd8b4df41b16754579f42fc78Bill Pemberton* TIMER 542696fb57e6af653dd8b4df41b16754579f42fc78Bill Pemberton* timer value is passed as u seconds 552696fb57e6af653dd8b4df41b16754579f42fc78Bill Pemberton*/ 56c995fe9475e062bab6f5a45ed28cd2d3d955ef43ADDI-DATA GmbH 5734c43922e62708d45e9660eee4b4f1fb7b4bf2c7Bill Pembertonint i_APCI2016_ConfigWatchdog(struct comedi_device *dev, struct comedi_subdevice *s, 5890035c0886b256d75bced13b3b3cea5234aff136Bill Pemberton struct comedi_insn *insn, unsigned int *data); 59c995fe9475e062bab6f5a45ed28cd2d3d955ef43ADDI-DATA GmbH 6034c43922e62708d45e9660eee4b4f1fb7b4bf2c7Bill Pembertonint i_APCI2016_StartStopWriteWatchdog(struct comedi_device *dev, struct comedi_subdevice *s, 6190035c0886b256d75bced13b3b3cea5234aff136Bill Pemberton struct comedi_insn *insn, unsigned int *data); 62c995fe9475e062bab6f5a45ed28cd2d3d955ef43ADDI-DATA GmbH 6334c43922e62708d45e9660eee4b4f1fb7b4bf2c7Bill Pembertonint i_APCI2016_ReadWatchdog(struct comedi_device *dev, struct comedi_subdevice *s, 6490035c0886b256d75bced13b3b3cea5234aff136Bill Pemberton struct comedi_insn *insn, unsigned int *data); 65c995fe9475e062bab6f5a45ed28cd2d3d955ef43ADDI-DATA GmbH 662696fb57e6af653dd8b4df41b16754579f42fc78Bill Pemberton/* Interrupt functions..... */ 67c995fe9475e062bab6f5a45ed28cd2d3d955ef43ADDI-DATA GmbH 682696fb57e6af653dd8b4df41b16754579f42fc78Bill Pemberton/* void v_APCI2016_Interrupt(int irq, void *d); */ 69c995fe9475e062bab6f5a45ed28cd2d3d955ef43ADDI-DATA GmbH 702696fb57e6af653dd8b4df41b16754579f42fc78Bill Pemberton/* void v_APCI2016_Interrupt(int irq, void *d); */ 712696fb57e6af653dd8b4df41b16754579f42fc78Bill Pemberton/* RESET */ 7274b894e56abcb2403894b268100773f4aabe1999Bill Pembertonint i_APCI2016_Reset(struct comedi_device *dev); 73