#include <linux/module.h>
#include <linux/delay.h>
#include <linux/comedi/comedi_pci.h>
#define MF624_GPIOC_REG …
#define MF6X4_GPIOC_EOLC …
#define MF6X4_GPIOC_LDAC …
#define MF6X4_GPIOC_DACEN …
#define MF6X4_ADDATA_REG …
#define MF6X4_ADCTRL_REG …
#define MF6X4_ADCTRL_CHAN(x) …
#define MF6X4_DIN_REG …
#define MF6X4_DIN_MASK …
#define MF6X4_DOUT_REG …
#define MF6X4_ADSTART_REG …
#define MF6X4_DAC_REG(x) …
#define MF634_GPIOC_REG …
enum mf6x4_boardid { … };
struct mf6x4_board { … };
static const struct mf6x4_board mf6x4_boards[] = …;
struct mf6x4_private { … };
static int mf6x4_di_insn_bits(struct comedi_device *dev,
struct comedi_subdevice *s,
struct comedi_insn *insn,
unsigned int *data)
{ … }
static int mf6x4_do_insn_bits(struct comedi_device *dev,
struct comedi_subdevice *s,
struct comedi_insn *insn,
unsigned int *data)
{ … }
static int mf6x4_ai_eoc(struct comedi_device *dev,
struct comedi_subdevice *s,
struct comedi_insn *insn,
unsigned long context)
{ … }
static int mf6x4_ai_insn_read(struct comedi_device *dev,
struct comedi_subdevice *s,
struct comedi_insn *insn,
unsigned int *data)
{ … }
static int mf6x4_ao_insn_write(struct comedi_device *dev,
struct comedi_subdevice *s,
struct comedi_insn *insn,
unsigned int *data)
{ … }
static int mf6x4_auto_attach(struct comedi_device *dev, unsigned long context)
{ … }
static void mf6x4_detach(struct comedi_device *dev)
{ … }
static struct comedi_driver mf6x4_driver = …;
static int mf6x4_pci_probe(struct pci_dev *dev, const struct pci_device_id *id)
{ … }
static const struct pci_device_id mf6x4_pci_table[] = …;
MODULE_DEVICE_TABLE(pci, mf6x4_pci_table);
static struct pci_driver mf6x4_pci_driver = …;
module_comedi_pci_driver(…);
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;