On 12/11/14 16:46, Hartley Sweeten wrote:
OK, so no change needed. Side-note... Currently the board reset also probes the board to try and "verify" that the board is actually a dmm32at. Do you think this is actually necessary?
Not strictly necessary, but may help if the user configures it incorrectly.
I feel the board reset just needs to set the RESETA bit to reset the board. This causes a full reset of all features of the board, including the DACs, the FIFO, the digital I/O, and all internal registers. The other writes to the board registers are not needed since they are only setup the registers for the verify check. The udelay() calls can also probably be removed since there is no mention of a delay needed after the reset in the user manual.
Without knowing for sure (it might be something needed that was neglected from the user manual), I'd leave it in or change it to use usleep_range(), e.g. usleep_range(1000, 10000).
There is still the issue of the SD1/0 bits in the AI status register. These provide feedback of how the jumpers are set to configure the AI channels for single-ended or differential input. This could be worked out so the differential mode actually works.
The all single-ended and all-differential cases should be straightforward. The "half and half" (or rather "third and two-thirds") cases would be tricky as you may end up with a gap in the channel numbers, and the support for subdevices with channel-specific flags (SDF_FLAGS) is currently disabled in the comedi core.
-- -=( Ian Abbott @ MEV Ltd. E-mail: <abbotti@xxxxxxxxx> )=- -=( Web: http://www.mev.co.uk/ )=- _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel