Scale was returned for currently active channel instead of the specified channel. Signed-off-by: Mitja Spes <mitja@xxxxxxxxx> Fixes: 07914c84ba30 ("iio: adc: Add driver for Microchip MCP3422/3/4 high resolution ADC") --- drivers/iio/adc/mcp3422.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/iio/adc/mcp3422.c b/drivers/iio/adc/mcp3422.c index da353dcb1e9d..3d53de300c89 100644 --- a/drivers/iio/adc/mcp3422.c +++ b/drivers/iio/adc/mcp3422.c @@ -164,8 +164,9 @@ static int mcp3422_read_raw(struct iio_dev *iio, struct mcp3422 *adc = iio_priv(iio); int err; + u8 req_channel = channel->channel; u8 sample_rate = MCP3422_SAMPLE_RATE(adc->config); - u8 pga = MCP3422_PGA(adc->config); + u8 pga = adc->pga[req_channel]; switch (mask) { case IIO_CHAN_INFO_RAW: @@ -175,7 +176,6 @@ static int mcp3422_read_raw(struct iio_dev *iio, return IIO_VAL_INT; case IIO_CHAN_INFO_SCALE: - *val1 = 0; *val2 = mcp3422_scales[sample_rate][pga]; return IIO_VAL_INT_PLUS_NANO; -- 2.34.1