#define boardPCL818 4
#define boardPCL718 5
-/* IO space len */
-#define PCLx1x_RANGE 16
-/* IO space len if we use FIFO */
-#define PCLx1xFIFO_RANGE 32
-
/* W: clear INT request */
#define PCL818_CLRINT 8
/* R: return status byte */
int n_dochan;
const struct comedi_lrange *ai_range_type;
const struct comedi_lrange *ao_range_type;
- unsigned int io_range;
unsigned int IRQbits;
unsigned int DMAbits;
int ai_maxdata;
int ao_maxdata;
- unsigned char fifo;
+ unsigned int has_fifo:1;
int is_818;
};
.n_dochan = 16,
.ai_range_type = &range_pcl818l_l_ai,
.ao_range_type = &range_unipolar5,
- .io_range = PCLx1x_RANGE,
.IRQbits = 0x00fc,
.DMAbits = 0x0a,
.ai_maxdata = 0xfff,
.n_dochan = 16,
.ai_range_type = &range_pcl818h_ai,
.ao_range_type = &range_unipolar5,
- .io_range = PCLx1x_RANGE,
.IRQbits = 0x00fc,
.DMAbits = 0x0a,
.ai_maxdata = 0xfff,
.n_dochan = 16,
.ai_range_type = &range_pcl818h_ai,
.ao_range_type = &range_unipolar5,
- .io_range = PCLx1x_RANGE,
.IRQbits = 0x00fc,
.DMAbits = 0x0a,
.ai_maxdata = 0xfff,
.ao_maxdata = 0xfff,
- .fifo = 1,
+ .has_fifo = 1,
.is_818 = 1,
}, {
.name = "pcl818hg",
.n_dochan = 16,
.ai_range_type = &range_pcl818hg_ai,
.ao_range_type = &range_unipolar5,
- .io_range = PCLx1x_RANGE,
.IRQbits = 0x00fc,
.DMAbits = 0x0a,
.ai_maxdata = 0xfff,
.ao_maxdata = 0xfff,
- .fifo = 1,
+ .has_fifo = 1,
.is_818 = 1,
}, {
.name = "pcl818",
.n_dochan = 16,
.ai_range_type = &range_pcl818h_ai,
.ao_range_type = &range_unipolar5,
- .io_range = PCLx1x_RANGE,
.IRQbits = 0x00fc,
.DMAbits = 0x0a,
.ai_maxdata = 0xfff,
.n_dochan = 16,
.ai_range_type = &range_unipolar5,
.ao_range_type = &range_unipolar5,
- .io_range = PCLx1x_RANGE,
.IRQbits = 0x00fc,
.DMAbits = 0x0a,
.ai_maxdata = 0xfff,
.n_dochan = 16,
.ai_range_type = &range_pcl818h_ai,
.ao_range_type = &range_unipolar5,
- .io_range = PCLx1x_RANGE,
.IRQbits = 0x00fc,
.DMAbits = 0x0a,
.ai_maxdata = 0xfff,
struct pcl818_private {
unsigned int dma; /* used DMA, 0=don't use DMA */
- unsigned int io_range;
unsigned long dmabuf[2]; /* pointers to begin of DMA buffers */
unsigned int dmapages[2]; /* len of DMA buffers in PAGE_SIZEs */
unsigned int hwdmaptr[2]; /* hardware address of DMA buffers */
if (!devpriv)
return -ENOMEM;
- devpriv->io_range = board->io_range;
- if ((board->fifo) && (it->options[2] == -1)) {
- /* we've board with FIFO and we want to use FIFO */
- devpriv->io_range = PCLx1xFIFO_RANGE;
+ /* should we use the FIFO? */
+ if (board->has_fifo && it->options[2] == -1)
devpriv->usefifo = 1;
- }
- ret = comedi_request_region(dev, it->options[0], devpriv->io_range);
+
+ ret = comedi_request_region(dev, it->options[0],
+ devpriv->usefifo ? 0x20 : 0x10);
if (ret)
return ret;