#include <linux/module.h>
#include <linux/delay.h>
#include <linux/comedi/comedi_pci.h>
#define ICP_MULTI_ADC_CSR …
#define ICP_MULTI_ADC_CSR_ST …
#define ICP_MULTI_ADC_CSR_BSY …
#define ICP_MULTI_ADC_CSR_BI …
#define ICP_MULTI_ADC_CSR_RA …
#define ICP_MULTI_ADC_CSR_DI …
#define ICP_MULTI_ADC_CSR_DI_CHAN(x) …
#define ICP_MULTI_ADC_CSR_SE_CHAN(x) …
#define ICP_MULTI_AI …
#define ICP_MULTI_DAC_CSR …
#define ICP_MULTI_DAC_CSR_ST …
#define ICP_MULTI_DAC_CSR_BSY …
#define ICP_MULTI_DAC_CSR_BI …
#define ICP_MULTI_DAC_CSR_RA …
#define ICP_MULTI_DAC_CSR_CHAN(x) …
#define ICP_MULTI_AO …
#define ICP_MULTI_DI …
#define ICP_MULTI_DO …
#define ICP_MULTI_INT_EN …
#define ICP_MULTI_INT_STAT …
#define ICP_MULTI_INT_ADC_RDY …
#define ICP_MULTI_INT_DAC_RDY …
#define ICP_MULTI_INT_DOUT_ERR …
#define ICP_MULTI_INT_DIN_STAT …
#define ICP_MULTI_INT_CIE0 …
#define ICP_MULTI_INT_CIE1 …
#define ICP_MULTI_INT_CIE2 …
#define ICP_MULTI_INT_CIE3 …
#define ICP_MULTI_INT_MASK …
#define ICP_MULTI_CNTR0 …
#define ICP_MULTI_CNTR1 …
#define ICP_MULTI_CNTR2 …
#define ICP_MULTI_CNTR3 …
static const struct comedi_lrange icp_multi_ranges = …;
static const char range_codes_analog[] = …;
static int icp_multi_ai_eoc(struct comedi_device *dev,
struct comedi_subdevice *s,
struct comedi_insn *insn,
unsigned long context)
{ … }
static int icp_multi_ai_insn_read(struct comedi_device *dev,
struct comedi_subdevice *s,
struct comedi_insn *insn,
unsigned int *data)
{ … }
static int icp_multi_ao_ready(struct comedi_device *dev,
struct comedi_subdevice *s,
struct comedi_insn *insn,
unsigned long context)
{ … }
static int icp_multi_ao_insn_write(struct comedi_device *dev,
struct comedi_subdevice *s,
struct comedi_insn *insn,
unsigned int *data)
{ … }
static int icp_multi_di_insn_bits(struct comedi_device *dev,
struct comedi_subdevice *s,
struct comedi_insn *insn,
unsigned int *data)
{ … }
static int icp_multi_do_insn_bits(struct comedi_device *dev,
struct comedi_subdevice *s,
struct comedi_insn *insn,
unsigned int *data)
{ … }
static int icp_multi_reset(struct comedi_device *dev)
{ … }
static int icp_multi_auto_attach(struct comedi_device *dev,
unsigned long context_unused)
{ … }
static struct comedi_driver icp_multi_driver = …;
static int icp_multi_pci_probe(struct pci_dev *dev,
const struct pci_device_id *id)
{ … }
static const struct pci_device_id icp_multi_pci_table[] = …;
MODULE_DEVICE_TABLE(pci, icp_multi_pci_table);
static struct pci_driver icp_multi_pci_driver = …;
module_comedi_pci_driver(…);
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;