#include <linux/module.h>
#include <linux/interrupt.h>
#include <linux/comedi/comedidev.h>
#include <linux/comedi/comedi_8254.h>
#define DAS6402_AI_DATA_REG …
#define DAS6402_AI_MUX_REG …
#define DAS6402_AI_MUX_LO(x) …
#define DAS6402_AI_MUX_HI(x) …
#define DAS6402_DI_DO_REG …
#define DAS6402_AO_DATA_REG(x) …
#define DAS6402_AO_LSB_REG(x) …
#define DAS6402_AO_MSB_REG(x) …
#define DAS6402_STATUS_REG …
#define DAS6402_STATUS_FFNE …
#define DAS6402_STATUS_FHALF …
#define DAS6402_STATUS_FFULL …
#define DAS6402_STATUS_XINT …
#define DAS6402_STATUS_INT …
#define DAS6402_STATUS_XTRIG …
#define DAS6402_STATUS_INDGT …
#define DAS6402_STATUS_10MHZ …
#define DAS6402_STATUS_W_CLRINT …
#define DAS6402_STATUS_W_CLRXTR …
#define DAS6402_STATUS_W_CLRXIN …
#define DAS6402_STATUS_W_EXTEND …
#define DAS6402_STATUS_W_ARMED …
#define DAS6402_STATUS_W_POSTMODE …
#define DAS6402_STATUS_W_10MHZ …
#define DAS6402_CTRL_REG …
#define DAS6402_CTRL_TRIG(x) …
#define DAS6402_CTRL_SOFT_TRIG …
#define DAS6402_CTRL_EXT_FALL_TRIG …
#define DAS6402_CTRL_EXT_RISE_TRIG …
#define DAS6402_CTRL_PACER_TRIG …
#define DAS6402_CTRL_BURSTEN …
#define DAS6402_CTRL_XINTE …
#define DAS6402_CTRL_IRQ(x) …
#define DAS6402_CTRL_INTE …
#define DAS6402_TRIG_REG …
#define DAS6402_TRIG_TGEN …
#define DAS6402_TRIG_TGSEL …
#define DAS6402_TRIG_TGPOL …
#define DAS6402_TRIG_PRETRIG …
#define DAS6402_AO_RANGE(_chan, _range) …
#define DAS6402_AO_RANGE_MASK(_chan) …
#define DAS6402_MODE_REG …
#define DAS6402_MODE_RANGE(x) …
#define DAS6402_MODE_POLLED …
#define DAS6402_MODE_FIFONEPTY …
#define DAS6402_MODE_FIFOHFULL …
#define DAS6402_MODE_EOB …
#define DAS6402_MODE_ENHANCED …
#define DAS6402_MODE_SE …
#define DAS6402_MODE_UNI …
#define DAS6402_MODE_DMA(x) …
#define DAS6402_MODE_DMA1 …
#define DAS6402_MODE_DMA3 …
#define DAS6402_TIMER_BASE …
static const struct comedi_lrange das6402_ai_ranges = …;
static const struct comedi_lrange das6402_ao_ranges = …;
struct das6402_boardinfo { … };
static struct das6402_boardinfo das6402_boards[] = …;
struct das6402_private { … };
static void das6402_set_mode(struct comedi_device *dev,
unsigned int mode)
{ … }
static void das6402_set_extended(struct comedi_device *dev,
unsigned int val)
{ … }
static void das6402_clear_all_interrupts(struct comedi_device *dev)
{ … }
static void das6402_ai_clear_eoc(struct comedi_device *dev)
{ … }
static unsigned int das6402_ai_read_sample(struct comedi_device *dev,
struct comedi_subdevice *s)
{ … }
static irqreturn_t das6402_interrupt(int irq, void *d)
{ … }
static void das6402_ai_set_mode(struct comedi_device *dev,
struct comedi_subdevice *s,
unsigned int chanspec,
unsigned int mode)
{ … }
static int das6402_ai_cmd(struct comedi_device *dev,
struct comedi_subdevice *s)
{ … }
static int das6402_ai_check_chanlist(struct comedi_device *dev,
struct comedi_subdevice *s,
struct comedi_cmd *cmd)
{ … }
static int das6402_ai_cmdtest(struct comedi_device *dev,
struct comedi_subdevice *s,
struct comedi_cmd *cmd)
{ … }
static int das6402_ai_cancel(struct comedi_device *dev,
struct comedi_subdevice *s)
{ … }
static void das6402_ai_soft_trig(struct comedi_device *dev)
{ … }
static int das6402_ai_eoc(struct comedi_device *dev,
struct comedi_subdevice *s,
struct comedi_insn *insn,
unsigned long context)
{ … }
static int das6402_ai_insn_read(struct comedi_device *dev,
struct comedi_subdevice *s,
struct comedi_insn *insn,
unsigned int *data)
{ … }
static int das6402_ao_insn_write(struct comedi_device *dev,
struct comedi_subdevice *s,
struct comedi_insn *insn,
unsigned int *data)
{ … }
static int das6402_ao_insn_read(struct comedi_device *dev,
struct comedi_subdevice *s,
struct comedi_insn *insn,
unsigned int *data)
{ … }
static int das6402_di_insn_bits(struct comedi_device *dev,
struct comedi_subdevice *s,
struct comedi_insn *insn,
unsigned int *data)
{ … }
static int das6402_do_insn_bits(struct comedi_device *dev,
struct comedi_subdevice *s,
struct comedi_insn *insn,
unsigned int *data)
{ … }
static void das6402_reset(struct comedi_device *dev)
{ … }
static int das6402_attach(struct comedi_device *dev,
struct comedi_devconfig *it)
{ … }
static struct comedi_driver das6402_driver = …;
module_comedi_driver(…)
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;