70 #include "../comedidev.h"
76 #define PCL726_SIZE 16
77 #define PCL727_SIZE 32
80 #define PCL726_DAC0_HI 0
81 #define PCL726_DAC0_LO 1
83 #define PCL726_DO_HI 12
84 #define PCL726_DO_LO 13
85 #define PCL726_DI_HI 14
86 #define PCL726_DI_LO 15
88 #define PCL727_DO_HI 24
89 #define PCL727_DO_LO 25
90 #define PCL727_DI_HI 0
91 #define PCL727_DI_LO 1
111 &range_4_20mA, &range_0_20mA
155 #define devpriv ((struct pcl726_private *)dev->private)
164 for (n = 0; n < insn->
n; n++) {
166 hi = (data[
n] >> 8) & 0xf;
176 devpriv->ao_readback[chan] = data[
n];
189 for (n = 0; n < insn->
n; n++)
190 data[n] =
devpriv->ao_readback[chan];
213 s->
state &= ~data[0];
214 s->
state |= data[0] & data[1];
216 if (data[1] & 0x00ff)
218 if (data[1] & 0xff00)
231 unsigned int iorange;
240 board->
name, iobase);
254 for (i = 0; i < 12; i++) {
261 if (boardtypes[board].IRQbits != 0) {
265 if (((1 << irq) & boardtypes[board].IRQbits) == 0) {
267 ", IRQ %d is out of allowed range,"
268 " DISABLING IT", irq);
274 ", unable to allocate IRQ %d,"
275 " DISABLING IT", irq);
303 for (i = 0; i < board->
n_aochan; i++) {
309 (
"Invalid range for channel %d! Must be 0<=%d<%d\n",
314 if (
devpriv->rangelist[i]->range[0].min ==
315 -
devpriv->rangelist[i]->range[0].max)
363 .driver_name =
"pcl726",
365 .attach = pcl726_attach,
366 .detach = pcl726_detach,
367 .board_name = &boardtypes[0].
name,