#include <linux/module.h>
#include <linux/comedi/comedidev.h>
#define MULTIQ3_DI_REG …
#define MULTIQ3_DO_REG …
#define MULTIQ3_AO_REG …
#define MULTIQ3_AI_REG …
#define MULTIQ3_AI_CONV_REG …
#define MULTIQ3_STATUS_REG …
#define MULTIQ3_STATUS_EOC …
#define MULTIQ3_STATUS_EOC_I …
#define MULTIQ3_CTRL_REG …
#define MULTIQ3_CTRL_AO_CHAN(x) …
#define MULTIQ3_CTRL_RC(x) …
#define MULTIQ3_CTRL_AI_CHAN(x) …
#define MULTIQ3_CTRL_E_CHAN(x) …
#define MULTIQ3_CTRL_EN …
#define MULTIQ3_CTRL_AZ …
#define MULTIQ3_CTRL_CAL …
#define MULTIQ3_CTRL_SH …
#define MULTIQ3_CTRL_CLK …
#define MULTIQ3_CTRL_LD …
#define MULTIQ3_CLK_REG …
#define MULTIQ3_ENC_DATA_REG …
#define MULTIQ3_ENC_CTRL_REG …
#define MULTIQ3_CLOCK_DATA …
#define MULTIQ3_CLOCK_SETUP …
#define MULTIQ3_INPUT_SETUP …
#define MULTIQ3_QUAD_X4 …
#define MULTIQ3_BP_RESET …
#define MULTIQ3_CNTR_RESET …
#define MULTIQ3_TRSFRPR_CTR …
#define MULTIQ3_TRSFRCNTR_OL …
#define MULTIQ3_EFLAG_RESET …
static void multiq3_set_ctrl(struct comedi_device *dev, unsigned int bits)
{ … }
static int multiq3_ai_status(struct comedi_device *dev,
struct comedi_subdevice *s,
struct comedi_insn *insn,
unsigned long context)
{ … }
static int multiq3_ai_insn_read(struct comedi_device *dev,
struct comedi_subdevice *s,
struct comedi_insn *insn,
unsigned int *data)
{ … }
static int multiq3_ao_insn_write(struct comedi_device *dev,
struct comedi_subdevice *s,
struct comedi_insn *insn,
unsigned int *data)
{ … }
static int multiq3_di_insn_bits(struct comedi_device *dev,
struct comedi_subdevice *s,
struct comedi_insn *insn, unsigned int *data)
{ … }
static int multiq3_do_insn_bits(struct comedi_device *dev,
struct comedi_subdevice *s,
struct comedi_insn *insn,
unsigned int *data)
{ … }
static int multiq3_encoder_insn_read(struct comedi_device *dev,
struct comedi_subdevice *s,
struct comedi_insn *insn,
unsigned int *data)
{ … }
static void multiq3_encoder_reset(struct comedi_device *dev,
unsigned int chan)
{ … }
static int multiq3_encoder_insn_config(struct comedi_device *dev,
struct comedi_subdevice *s,
struct comedi_insn *insn,
unsigned int *data)
{ … }
static int multiq3_attach(struct comedi_device *dev,
struct comedi_devconfig *it)
{ … }
static struct comedi_driver multiq3_driver = …;
module_comedi_driver(…);
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;