diff options
author | Guillaume Stols <gstols@baylibre.com> | 2024-07-02 14:52:51 +0200 |
---|---|---|
committer | Jonathan Cameron <Jonathan.Cameron@huawei.com> | 2024-07-29 21:31:23 +0200 |
commit | 90826e08468ba7fb35d8b39645b22d9e80004afe (patch) | |
tree | b17d1254a5834882af884ad7484a2a552334ce2c /kernel | |
parent | staging: iio: frequency: ad9834: Validate frequency parameter value (diff) | |
download | linux-90826e08468ba7fb35d8b39645b22d9e80004afe.tar.xz linux-90826e08468ba7fb35d8b39645b22d9e80004afe.zip |
iio: adc: ad7606: remove frstdata check for serial mode
The current implementation attempts to recover from an eventual glitch
in the clock by checking frstdata state after reading the first
channel's sample: If frstdata is low, it will reset the chip and
return -EIO.
This will only work in parallel mode, where frstdata pin is set low
after the 2nd sample read starts.
For the serial mode, according to the datasheet, "The FRSTDATA output
returns to a logic low following the 16th SCLK falling edge.", thus
after the Xth pulse, X being the number of bits in a sample, the check
will always be true, and the driver will not work at all in serial
mode if frstdata(optional) is defined in the devicetree as it will
reset the chip, and return -EIO every time read_sample is called.
Hence, this check must be removed for serial mode.
Fixes: b9618c0cacd7 ("staging: IIO: ADC: New driver for AD7606/AD7606-6/AD7606-4")
Signed-off-by: Guillaume Stols <gstols@baylibre.com>
Reviewed-by: Nuno Sa <nuno.sa@analog.com>
Link: https://patch.msgid.link/20240702-cleanup-ad7606-v3-1-18d5ea18770e@baylibre.com
Cc: <Stable@vger.kernel.org>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Diffstat (limited to 'kernel')
0 files changed, 0 insertions, 0 deletions