Commit ccba40e9 authored by Victor Colombo's avatar Victor Colombo Committed by Jonathan Cameron

staging:iio:ad2s90: Add IIO_CHAN_INFO_SCALE to channel spec and read_raw

This patch adds the IIO_CHAN_INFO_SCALE mask to ad2s90_chan and
implements the relative read behavior at ad2s90_read_raw.
Signed-off-by: default avatarVictor Colombo <victorcolombo@gmail.com>
Signed-off-by: default avatarMatheus Tavares <matheus.bernardino@usp.br>
Signed-off-by: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
parent f14a283c
...@@ -34,17 +34,29 @@ static int ad2s90_read_raw(struct iio_dev *indio_dev, ...@@ -34,17 +34,29 @@ static int ad2s90_read_raw(struct iio_dev *indio_dev,
int ret; int ret;
struct ad2s90_state *st = iio_priv(indio_dev); struct ad2s90_state *st = iio_priv(indio_dev);
mutex_lock(&st->lock); switch (m) {
ret = spi_read(st->sdev, st->rx, 2); case IIO_CHAN_INFO_SCALE:
if (ret < 0) { /* 2 * Pi / 2^12 */
*val = 6283; /* mV */
*val2 = 12;
return IIO_VAL_FRACTIONAL_LOG2;
case IIO_CHAN_INFO_RAW:
mutex_lock(&st->lock);
ret = spi_read(st->sdev, st->rx, 2);
if (ret < 0) {
mutex_unlock(&st->lock);
return ret;
}
*val = (((u16)(st->rx[0])) << 4) | ((st->rx[1] & 0xF0) >> 4);
mutex_unlock(&st->lock); mutex_unlock(&st->lock);
return ret;
}
*val = (((u16)(st->rx[0])) << 4) | ((st->rx[1] & 0xF0) >> 4);
mutex_unlock(&st->lock); return IIO_VAL_INT;
default:
break;
}
return IIO_VAL_INT; return -EINVAL;
} }
static const struct iio_info ad2s90_info = { static const struct iio_info ad2s90_info = {
...@@ -55,7 +67,7 @@ static const struct iio_chan_spec ad2s90_chan = { ...@@ -55,7 +67,7 @@ static const struct iio_chan_spec ad2s90_chan = {
.type = IIO_ANGL, .type = IIO_ANGL,
.indexed = 1, .indexed = 1,
.channel = 0, .channel = 0,
.info_mask_separate = BIT(IIO_CHAN_INFO_RAW), .info_mask_separate = BIT(IIO_CHAN_INFO_RAW) | BIT(IIO_CHAN_INFO_SCALE),
}; };
static int ad2s90_probe(struct spi_device *spi) static int ad2s90_probe(struct spi_device *spi)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment