lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Tue, 28 Sep 2021 15:31:39 +0200 From: Miquel Raynal <miquel.raynal@...tlin.com> To: Jonathan Cameron <jic23@...nel.org>, Lars-Peter Clausen <lars@...afoo.de>, Lee Jones <lee.jones@...aro.org> Cc: Peter Meerwald-Stadler <pmeerw@...erw.net>, Rob Herring <robh+dt@...nel.org>, Dmitry Torokhov <dmitry.torokhov@...il.com>, bcousson@...libre.com, Tony Lindgren <tony@...mide.com>, linux-iio@...r.kernel.org, devicetree@...r.kernel.org, linux-omap@...r.kernel.org, Thomas Petazzoni <thomas.petazzoni@...tlin.com>, Vignesh Raghavendra <vigneshr@...com>, Lokesh Vutla <lokeshvutla@...com>, Tero Kristo <kristo@...nel.org>, Ryan Barnett <ryan.barnett@...lins.com>, Grygorii Strashko <grygorii.strashko@...com>, Jason Reeder <jreeder@...com>, <linux-kernel@...r.kernel.org>, Miquel Raynal <miquel.raynal@...tlin.com>, Jonathan Cameron <Jonathan.Cameron@...wei.com> Subject: [PATCH v4 44/48] iio: adc: ti_am335x_adc: Add the scale information Without the scale, the values returned to the user are just a picture of the input voltage against the full scale range of the ADC. We need to provide the actual conversion factor to get milli-Volts values. Signed-off-by: Miquel Raynal <miquel.raynal@...tlin.com> Acked-by: Jonathan Cameron <Jonathan.Cameron@...wei.com> --- drivers/iio/adc/ti_am335x_adc.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/drivers/iio/adc/ti_am335x_adc.c b/drivers/iio/adc/ti_am335x_adc.c index e7dba10b29b4..867690b6c2dd 100644 --- a/drivers/iio/adc/ti_am335x_adc.c +++ b/drivers/iio/adc/ti_am335x_adc.c @@ -417,6 +417,7 @@ static int tiadc_channel_init(struct device *dev, struct iio_dev *indio_dev, chan->indexed = 1; chan->channel = adc_dev->channel_line[i]; chan->info_mask_separate = BIT(IIO_CHAN_INFO_RAW); + chan->info_mask_shared_by_type = BIT(IIO_CHAN_INFO_SCALE); chan->datasheet_name = chan_name_ain[chan->channel]; chan->scan_index = i; chan->scan_type.sign = 'u'; @@ -441,6 +442,23 @@ static int tiadc_read_raw(struct iio_dev *indio_dev, unsigned long timeout; int ret; + switch (mask) { + case IIO_CHAN_INFO_RAW: + break; + case IIO_CHAN_INFO_SCALE: + switch (chan->type) { + case IIO_VOLTAGE: + *val = 1800; + *val2 = chan->scan_type.realbits; + return IIO_VAL_FRACTIONAL_LOG2; + default: + return -EINVAL; + } + break; + default: + return -EINVAL; + } + if (iio_buffer_enabled(indio_dev)) return -EBUSY; -- 2.27.0
Powered by blists - more mailing lists