staging: comedi: cb_pcimdas: add external analog output ranges
authorIan Abbott <abbotti@mev.co.uk>
Tue, 7 Jul 2015 17:06:07 +0000 (18:06 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 15 Jul 2015 01:22:19 +0000 (18:22 -0700)
The analog output range is not programmable, but the ranges for each of
the two analog output channels are settable via jumpers.  These jumper
settings are not readable by the driver.  The driver
provides a range table containing all the possible internal ranges
(+/-10V, +/-5V, 0-10V, 0-5V) to provide information to the user
application (although any range selected by the application that differs
from the jumper settings will not produce the expected voltage output).

The range table does not cover all possible ranges of the analog output
channels.  The jumpers also allow an external reference voltage between
0 and 10V to be used as bipolar or unipolar output range.  Add a couple
more ranges to the end of the range table to define these two external
ranges.

Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/comedi/drivers/cb_pcimdas.c

index 4ebf5aae50199083a0104fe59b9867892e00a26a..47e38398921ed26588f1409217f1aafe5bf5c277 100644 (file)
@@ -141,11 +141,13 @@ static const struct comedi_lrange cb_pcimdas_ai_uni_range = {
  * jumper-settable on the board. The settings are not software-readable.
  */
 static const struct comedi_lrange cb_pcimdas_ao_range = {
-       4, {
+       6, {
                BIP_RANGE(10),
                BIP_RANGE(5),
                UNI_RANGE(10),
-               UNI_RANGE(5)
+               UNI_RANGE(5),
+               RANGE_ext(-1, 1),
+               RANGE_ext(0, 1)
        }
 };