Lines Matching +full:0 +full:x408

33  *	[0] - base io address
71 #define DAS16_DMA_SIZE 0xff00 /* size in bytes of allocated dma buffer */
76 #define DAS16_TRIG_REG 0x00
77 #define DAS16_AI_LSB_REG 0x00
78 #define DAS16_AI_MSB_REG 0x01
79 #define DAS16_MUX_REG 0x02
80 #define DAS16_DIO_REG 0x03
81 #define DAS16_AO_LSB_REG(x) ((x) ? 0x06 : 0x04)
82 #define DAS16_AO_MSB_REG(x) ((x) ? 0x07 : 0x05)
83 #define DAS16_STATUS_REG 0x08
88 #define DAS16_CTRL_REG 0x09
90 #define DAS16_CTRL_IRQ(x) (((x) & 0x7) << 4)
92 #define DAS16_CTRL_PACING_MASK (3 << 0)
93 #define DAS16_CTRL_INT_PACER (3 << 0)
94 #define DAS16_CTRL_EXT_PACER (2 << 0)
95 #define DAS16_CTRL_SOFT_PACER (0 << 0)
96 #define DAS16_PACER_REG 0x0a
97 #define DAS16_PACER_BURST_LEN(x) (((x) & 0xf) << 4)
99 #define DAS16_PACER_TRIG0 BIT(0)
100 #define DAS16_GAIN_REG 0x0b
101 #define DAS16_TIMER_BASE_REG 0x0c /* to 0x0f */
103 #define DAS1600_CONV_REG 0x404
105 #define DAS1600_BURST_REG 0x405
107 #define DAS1600_ENABLE_REG 0x406
109 #define DAS1600_STATUS_REG 0x407
114 #define DAS1600_STATUS_CLK_10MHZ BIT(0)
179 static const int das16jr_gainlist[] = { 8, 0, 1, 2, 3, 4, 5, 6, 7 };
180 static const int das16jr_16_gainlist[] = { 0, 1, 2, 3, 4, 5, 6, 7 };
181 static const int das1600_gainlist[] = { 0, 1, 2, 3 };
184 das16_pg_none = 0,
232 .ai_maxdata = 0x0fff,
237 .i8255_offset = 0x10,
238 .size = 0x14,
239 .id = 0x00,
242 .ai_maxdata = 0x0fff,
247 .i8255_offset = 0x10,
248 .size = 0x14,
249 .id = 0x00,
252 .ai_maxdata = 0x0fff,
257 .i8255_offset = 0x10,
258 .size = 0x14,
259 .id = 0x00,
262 .ai_maxdata = 0x0fff,
267 .i8255_offset = 0x10,
268 .size = 0x14,
269 .id = 0x80,
272 .ai_maxdata = 0x0fff,
277 .i8255_offset = 0x10,
278 .size = 0x14,
279 .id = 0x80,
282 .ai_maxdata = 0x0fff,
285 .size = 0x10,
286 .id = 0x00,
289 .ai_maxdata = 0x0fff,
292 .size = 0x10,
293 .id = 0x00,
296 .ai_maxdata = 0xffff,
299 .size = 0x10,
300 .id = 0x00,
303 .ai_maxdata = 0xffff,
306 .size = 0x10,
307 .id = 0x00,
310 .ai_maxdata = 0x0fff,
314 .i8255_offset = 0x400,
315 .size = 0x408,
316 .id = 0x20,
319 .ai_maxdata = 0x0fff,
323 .i8255_offset = 0x400,
324 .size = 0x408,
325 .id = 0x20,
328 .ai_maxdata = 0x0fff,
331 .size = 0x408,
332 .id = 0xc0,
335 .ai_maxdata = 0x0fff,
338 .size = 0x408,
339 .id = 0xc0,
342 .ai_maxdata = 0x0fff,
347 .i8255_offset = 0x400,
348 .size = 0x408,
349 .id = 0xc0,
352 .ai_maxdata = 0x0fff,
357 .i8255_offset = 0x400,
358 .size = 0x408,
359 .id = 0xc0,
362 .ai_maxdata = 0x0fff,
365 .size = 0x408,
366 .id = 0xc0,
369 .ai_maxdata = 0x0fff,
372 .size = 0x408,
373 .id = 0xc0,
376 .ai_maxdata = 0xffff,
379 .size = 0x408,
380 .id = 0xc0,
383 .ai_maxdata = 0x0fff,
388 .i8255_offset = 0x400,
389 .size = 0x408,
390 .id = 0xc0,
393 .ai_maxdata = 0x0fff,
398 .i8255_offset = 0x400,
399 .size = 0x408,
400 .id = 0xc0,
403 .ai_maxdata = 0xffff,
408 .i8255_offset = 0x400,
409 .size = 0x408,
410 .id = 0xc0,
413 .ai_maxdata = 0x0fff,
416 .size = 0x14,
417 .id = 0xf0,
496 nbytes = 0; in das16_interrupt()
559 unsigned int chan0 = CR_CHAN(cmd->chanlist[0]); in das16_ai_check_chanlist()
560 unsigned int range0 = CR_RANGE(cmd->chanlist[0]); in das16_ai_check_chanlist()
580 return 0; in das16_ai_check_chanlist()
588 int err = 0; in das16_cmd_test()
631 err |= comedi_check_trigger_arg_is(&cmd->start_arg, 0); in das16_cmd_test()
634 err |= comedi_check_trigger_arg_is(&cmd->scan_begin_arg, 0); in das16_cmd_test()
654 err |= comedi_check_trigger_arg_is(&cmd->stop_arg, 0); in das16_cmd_test()
674 if (cmd->chanlist && cmd->chanlist_len > 0) in das16_cmd_test()
680 return 0; in das16_cmd_test()
699 unsigned int first_chan = CR_CHAN(cmd->chanlist[0]); in das16_cmd_exec()
701 unsigned int range = CR_RANGE(cmd->chanlist[0]); in das16_cmd_exec()
721 byte = 0; in das16_cmd_exec()
729 outb(0, dev->iobase + DAS1600_BURST_REG); in das16_cmd_exec()
735 dma->cur_dma = 0; in das16_cmd_exec()
736 das16_ai_setup_dma(dev, s, 0); in das16_cmd_exec()
754 outb(0, dev->iobase + DAS1600_CONV_REG); in das16_cmd_exec()
757 return 0; in das16_cmd_exec()
777 devpriv->timer_running = 0; in das16_cancel()
782 outb(0, dev->iobase + DAS1600_BURST_REG); in das16_cancel()
786 return 0; in das16_cancel()
799 for (i = 0; i < num_samples; i++) { in das16_ai_munge()
801 if (s->maxdata == 0x0fff) in das16_ai_munge()
815 if ((status & DAS16_STATUS_BUSY) == 0) in das16_ai_eoc()
816 return 0; in das16_ai_eoc()
834 for (i = 0; i < insn->n; i++) { in das16_ai_insn_read()
836 outb_p(0, dev->iobase + DAS16_TRIG_REG); in das16_ai_insn_read()
838 ret = comedi_timeout(dev, s, insn, das16_ai_eoc, 0); in das16_ai_insn_read()
844 if (s->maxdata == 0x0fff) in das16_ai_insn_read()
862 for (i = 0; i < insn->n; i++) { in das16_ao_insn_write()
869 outb(val & 0xff, dev->iobase + DAS16_AO_LSB_REG(chan)); in das16_ao_insn_write()
870 outb((val >> 8) & 0xff, dev->iobase + DAS16_AO_MSB_REG(chan)); in das16_ao_insn_write()
881 data[1] = inb(dev->iobase + DAS16_DIO_REG) & 0xf; in das16_di_insn_bits()
905 diobits = inb(dev->iobase + DAS16_DIO_REG) & 0xf0; in das16_probe()
908 "requested board's id bits are incorrect (0x%x != 0x%x)\n", in das16_probe()
913 return 0; in das16_probe()
918 outb(0, dev->iobase + DAS16_STATUS_REG); in das16_reset()
919 outb(0, dev->iobase + DAS16_CTRL_REG); in das16_reset()
920 outb(0, dev->iobase + DAS16_PACER_REG); in das16_reset()
927 timer_setup(&devpriv->timer, das16_timer_interrupt, 0); in das16_alloc_dma()
1038 if (board->size < 0x400) { in das16_attach()
1039 ret = comedi_request_region(dev, it->options[0], board->size); in das16_attach()
1043 ret = comedi_request_region(dev, it->options[0], 0x10); in das16_attach()
1047 ret = __comedi_request_region(dev, dev->iobase + 0x400, in das16_attach()
1048 board->size & 0x3ff); in das16_attach()
1051 devpriv->extra_iobase = dev->iobase + 0x400; in das16_attach()
1071 osc_base, I8254_IO8, 0); in das16_attach()
1084 s = &dev->subdevices[0]; in das16_attach()
1113 s->maxdata = 0x0fff; in das16_attach()
1160 outb(0, dev->iobase + DAS1600_CONV_REG); in das16_attach()
1161 outb(0, dev->iobase + DAS1600_BURST_REG); in das16_attach()
1164 return 0; in das16_attach()
1179 board->size & 0x3ff); in das16_detach()
1190 .board_name = &das16_boards[0].name,
1192 .offset = sizeof(das16_boards[0]),