Those "ranges:" values for the subdevice 0 and 1 are interesting.
Before kernel version 4.1, the "cb_pcimdas" driver only supported a
single range for the subdevices. The range was from 0.0 to 1.0 with no
units. This was actually a lazy cop-out in the original version of the
driver.
The "comedi_board_info" output above appears to be for a kernel before 4.1.
In kernel version 4.1, the range support for analog input was enhanced
to allow either 4 different unipolar ranges or 4 different bipolar
ranges depending on the setting of the "Analog Input Polarity Switch" on
the board. The driver reads the board's "ADC Channel Status and Switch
Settings Register" during initialization in order to determine whether
the analog inputs are in unipolar or bipolar mode, and also whether they
are in single-ended or differential mode (which also sets the number of
channels to 16 or 8).
The unipolar or bipolar choice is set by the switch, but the 4 different
ranges are set by software.
Since kernel version 4.1, the supported ranges for analog input are:
Bipolar range 0: [-10V, +10V]
Bipolar range 1: [-5V, +5V]
Bipolar range 2: [-2.5V, +2.5V]
Bipolar range 3: [-1.25V, +1,25V]
Unipolar range 0: [0V, +10V]
Unipolar range 1: [0V, +5V]
Unipolar range 2: [0V, +2.5V]
Unipolar range 3: [0V, +1.25V]
(For the analog output subdevice, the range is set by switches and is
not software programmable. The driver allows the available ranges for
the analog output subdevice to be queried, but any attempt to select an
analog output range will be ignored.)
Could your strange scaling issue for analog inputs be due to the
software selecting a different input range now that more supported
ranges are reported since kernel version 4.1? Before kernel version
4.1, the hardware was always programmed to use the 10V range (which
would be either the bipolar or unipolar 10V range according to the
Analog Input Polarity Switch setting).
All the above is relavent for PCIe-DAS1602/16 and PCIM-DAS1602/16 (which
use the cb_pcimdas driver), but not for PCI-DAS1602/16 (which uses the
cb_pcidas driver).