Lines Matching +full:8 +full:dev
22 * or 8 differential channels, and three input ranges.
25 * port, bit 0; channel 8 corresponds to the input port, bit 0.
27 * Digital direction configuration: channels 0-7 output, 8-15 input.
47 #define DIO_W 0x04 /* WO 8bit */
48 #define DIO_R 0x05 /* RO 8bit */
49 #define CMD_R1 0x00 /* WO 8bit */
50 #define CMD_R2 0x07 /* RW 8bit */
51 #define CMD_R3 0x05 /* W0 8bit */
52 #define STA_R1 0x00 /* RO 8bit */
53 #define STA_R2 0x01 /* RO 8bit */
55 #define ADCLEAR_R 0x01 /* WO 8bit */
56 #define CDA_R0 0x08 /* RW 8bit */
57 #define CDA_R1 0x09 /* RW 8bit */
58 #define CDA_R2 0x0A /* RW 8bit */
59 #define CMO_R 0x0B /* RO 8bit */
60 #define TIC_R 0x06 /* WO 8bit */
73 static int daq700_dio_insn_bits(struct comedi_device *dev, in daq700_dio_insn_bits() argument
84 outb(s->state & 0xff, dev->iobase + DIO_W); in daq700_dio_insn_bits()
88 val |= inb(dev->iobase + DIO_R) << 8; in daq700_dio_insn_bits()
95 static int daq700_dio_insn_config(struct comedi_device *dev, in daq700_dio_insn_config() argument
102 ret = comedi_dio_insn_config(dev, s, insn, data, 0); in daq700_dio_insn_config()
112 static int daq700_ai_eoc(struct comedi_device *dev, in daq700_ai_eoc() argument
119 status = inb(dev->iobase + STA_R2); in daq700_ai_eoc()
122 status = inb(dev->iobase + STA_R1); in daq700_ai_eoc()
130 static int daq700_ai_rinsn(struct comedi_device *dev, in daq700_ai_rinsn() argument
148 outb(r3_bits | (range & 0x03), dev->iobase + CMD_R3); in daq700_ai_rinsn()
152 outb(chan | 0x80, dev->iobase + CMD_R1); in daq700_ai_rinsn()
159 outb(0x00, dev->iobase + CMD_R2); /* enable ADC conversions */ in daq700_ai_rinsn()
160 outb(0x30, dev->iobase + CMO_R); /* mode 0 out0 L, from H */ in daq700_ai_rinsn()
161 outb(0x00, dev->iobase + ADCLEAR_R); /* clear the ADC FIFO */ in daq700_ai_rinsn()
163 inw(dev->iobase + ADFIFO_R); in daq700_ai_rinsn()
165 outb(0x32, dev->iobase + CMO_R); in daq700_ai_rinsn()
168 ret = comedi_timeout(dev, s, insn, daq700_ai_eoc, 0); in daq700_ai_rinsn()
173 d = inw(dev->iobase + ADFIFO_R); in daq700_ai_rinsn()
194 static void daq700_ai_config(struct comedi_device *dev, in daq700_ai_config() argument
197 unsigned long iobase = dev->iobase; in daq700_ai_config()
208 static int daq700_auto_attach(struct comedi_device *dev, in daq700_auto_attach() argument
211 struct pcmcia_device *link = comedi_to_pcmcia_dev(dev); in daq700_auto_attach()
216 ret = comedi_pcmcia_enable(dev, NULL); in daq700_auto_attach()
219 dev->iobase = link->resource[0]->start; in daq700_auto_attach()
221 ret = comedi_alloc_subdevices(dev, 2); in daq700_auto_attach()
226 s = &dev->subdevices[0]; in daq700_auto_attach()
237 s = &dev->subdevices[1]; in daq700_auto_attach()
244 daq700_ai_config(dev, s); in daq700_auto_attach()