mirror of
https://github.com/torvalds/linux.git
synced 2026-06-05 21:15:53 +02:00
staging:iio:ad7606: fix voltage scales
[ Upstream commit4ee033301c] Fixes commit17be2a2905("staging: iio: ad7606: replace range/range_available with corresponding scale"). The AD7606 devices don't have a 2.5V voltage range, they have 5V & 10V voltage range, which is selectable via the `gpio_range` descriptor. The scales also seem to have been miscomputed, because when they were applied to the raw values, the results differ from the expected values. After checking the ADC transfer function in the datasheet, these were re-computed. Signed-off-by: Alexandru Ardelean <alexandru.ardelean@analog.com> Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> Signed-off-by: Sasha Levin <sashal@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
38672b5741
commit
73ad886896
|
|
@ -26,9 +26,12 @@
|
|||
|
||||
#include "ad7606.h"
|
||||
|
||||
/* Scales are computed as 2.5/2**16 and 5/2**16 respectively */
|
||||
/*
|
||||
* Scales are computed as 5000/32768 and 10000/32768 respectively,
|
||||
* so that when applied to the raw values they provide mV values
|
||||
*/
|
||||
static const unsigned int scale_avail[2][2] = {
|
||||
{0, 38147}, {0, 76294}
|
||||
{0, 152588}, {0, 305176}
|
||||
};
|
||||
|
||||
static int ad7606_reset(struct ad7606_state *st)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user