Commit 6db70e39 authored by H Hartley Sweeten's avatar H Hartley Sweeten Committed by Greg Kroah-Hartman

staging: comedi: aio_aio12_8: refactor boardininfo

This driver supports three board types with these differences:
  104-AIO12-8 - eight 12-bit analog in, four 12-bit analog out
  104-AI12-8  - eight 12-bit analog in
  104-AO12-4  - four 12-bit analog out

Convert the boardinfo 'ai_nchan' and 'ao_nchan' into bit-field
flags 'has_ai' and 'has_ao' so save a bit of space.
Signed-off-by: default avatarH Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: default avatarIan Abbott <abbotti@mev.co.uk>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent ee4c7709
...@@ -87,21 +87,21 @@ static const struct comedi_lrange aio_aio12_8_range = { ...@@ -87,21 +87,21 @@ static const struct comedi_lrange aio_aio12_8_range = {
struct aio12_8_boardtype { struct aio12_8_boardtype {
const char *name; const char *name;
int ai_nchan; unsigned int has_ai:1;
int ao_nchan; unsigned int has_ao:1;
}; };
static const struct aio12_8_boardtype board_types[] = { static const struct aio12_8_boardtype board_types[] = {
{ {
.name = "aio_aio12_8", .name = "aio_aio12_8",
.ai_nchan = 8, .has_ai = 1,
.ao_nchan = 4, .has_ao = 1,
}, { }, {
.name = "aio_ai12_8", .name = "aio_ai12_8",
.ai_nchan = 8, .has_ai = 1,
}, { }, {
.name = "aio_ao12_8", .name = "aio_ao12_8",
.ao_nchan = 4, .has_ao = 1,
}, },
}; };
...@@ -225,12 +225,12 @@ static int aio_aio12_8_attach(struct comedi_device *dev, ...@@ -225,12 +225,12 @@ static int aio_aio12_8_attach(struct comedi_device *dev,
if (ret) if (ret)
return ret; return ret;
/* Analog Input subdevice */
s = &dev->subdevices[0]; s = &dev->subdevices[0];
if (board->ai_nchan) { if (board->has_ai) {
/* Analog input subdevice */
s->type = COMEDI_SUBD_AI; s->type = COMEDI_SUBD_AI;
s->subdev_flags = SDF_READABLE | SDF_GROUND | SDF_DIFF; s->subdev_flags = SDF_READABLE | SDF_GROUND | SDF_DIFF;
s->n_chan = board->ai_nchan; s->n_chan = 8;
s->maxdata = 0x0fff; s->maxdata = 0x0fff;
s->range_table = &aio_aio12_8_range; s->range_table = &aio_aio12_8_range;
s->insn_read = aio_aio12_8_ai_read; s->insn_read = aio_aio12_8_ai_read;
...@@ -238,9 +238,9 @@ static int aio_aio12_8_attach(struct comedi_device *dev, ...@@ -238,9 +238,9 @@ static int aio_aio12_8_attach(struct comedi_device *dev,
s->type = COMEDI_SUBD_UNUSED; s->type = COMEDI_SUBD_UNUSED;
} }
/* Analog Output subdevice */
s = &dev->subdevices[1]; s = &dev->subdevices[1];
if (board->ao_nchan) { if (board->has_ao) {
/* Analog output subdevice */
s->type = COMEDI_SUBD_AO; s->type = COMEDI_SUBD_AO;
s->subdev_flags = SDF_WRITABLE | SDF_GROUND; s->subdev_flags = SDF_WRITABLE | SDF_GROUND;
s->n_chan = 4; s->n_chan = 4;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment