diff options
author | H Hartley Sweeten <hartleys@visionengravers.com> | 2012-10-25 22:10:52 (GMT) |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2012-10-26 16:20:03 (GMT) |
commit | 310239e70aab8d958088948449b7e05d6de64b9c (patch) | |
tree | 572f038e3856b67d8f3ec328ff0450dbaf8b241d /drivers | |
parent | fa8eec60259e10a1307f8ff8cdfc6f6db898d4aa (diff) | |
download | linux-fsl-qoriq-310239e70aab8d958088948449b7e05d6de64b9c.tar.xz |
staging: comedi: me_daq: simplify analog output boardinfo
The boards supported by this driver either have analog outputs or don't
have them. Add a new boardinfo value, 'has_ao', to indicate this.
The boards that have analog outputs always have 4, 12-bit channels. Remove
the unnecessary boardinfo and just open-code the values in the subdevice
initialization.
The boards with analog outputs also share the same output range capabilities.
Rename the comedi_lrange to make it common for all board types.
Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/staging/comedi/drivers/me_daq.c | 20 |
1 files changed, 8 insertions, 12 deletions
diff --git a/drivers/staging/comedi/drivers/me_daq.c b/drivers/staging/comedi/drivers/me_daq.c index 686a1c4..ceb5b82 100644 --- a/drivers/staging/comedi/drivers/me_daq.c +++ b/drivers/staging/comedi/drivers/me_daq.c @@ -139,7 +139,7 @@ static const struct comedi_lrange me_ai_range = { } }; -static const struct comedi_lrange me2600_ao_range = { +static const struct comedi_lrange me_ao_range = { 3, { BIP_RANGE(10), BIP_RANGE(5), @@ -150,18 +150,14 @@ static const struct comedi_lrange me2600_ao_range = { struct me_board { const char *name; int device_id; - int ao_chans; - int ao_bits; - const struct comedi_lrange *ao_range; + int has_ao; }; static const struct me_board me_boards[] = { { .name = "me-2600i", .device_id = ME2600_DEVICE_ID, - .ao_chans = 4, - .ao_bits = 12, - .ao_range = &me2600_ao_range, + .has_ao = 1, }, { .name = "me-2000i", .device_id = ME2000_DEVICE_ID, @@ -631,13 +627,13 @@ static int me_attach_pci(struct comedi_device *dev, struct pci_dev *pcidev) s->insn_read = me_ai_insn_read; s = &dev->subdevices[1]; - if (board->ao_chans) { + if (board->has_ao) { s->type = COMEDI_SUBD_AO; s->subdev_flags = SDF_WRITEABLE | SDF_COMMON; - s->n_chan = board->ao_chans; - s->maxdata = (1 << board->ao_bits) - 1; - s->len_chanlist = board->ao_chans; - s->range_table = board->ao_range; + s->n_chan = 4; + s->maxdata = 0x0fff; + s->len_chanlist = 4; + s->range_table = &me_ao_range; s->insn_read = me_ao_insn_read; s->insn_write = me_ao_insn_write; } else { |