iio: core: introduce dB scle: IIO_VAL_INT_PLUS_MICRO_DB
Signed-off-by: Michael Hennerich <michael.hennerich@analog.com> Acked-by: Jonathan Cameron <jic23@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Родитель
49b81a3c74
Коммит
67eedba39e
|
@ -295,26 +295,33 @@ static ssize_t iio_read_channel_info(struct device *dev,
|
|||
struct iio_dev *indio_dev = dev_get_drvdata(dev);
|
||||
struct iio_dev_attr *this_attr = to_iio_dev_attr(attr);
|
||||
int val, val2;
|
||||
bool scale_db = false;
|
||||
int ret = indio_dev->info->read_raw(indio_dev, this_attr->c,
|
||||
&val, &val2, this_attr->address);
|
||||
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
if (ret == IIO_VAL_INT)
|
||||
switch (ret) {
|
||||
case IIO_VAL_INT:
|
||||
return sprintf(buf, "%d\n", val);
|
||||
else if (ret == IIO_VAL_INT_PLUS_MICRO) {
|
||||
case IIO_VAL_INT_PLUS_MICRO_DB:
|
||||
scale_db = true;
|
||||
case IIO_VAL_INT_PLUS_MICRO:
|
||||
if (val2 < 0)
|
||||
return sprintf(buf, "-%d.%06u\n", val, -val2);
|
||||
return sprintf(buf, "-%d.%06u%s\n", val, -val2,
|
||||
scale_db ? " dB" : "");
|
||||
else
|
||||
return sprintf(buf, "%d.%06u\n", val, val2);
|
||||
} else if (ret == IIO_VAL_INT_PLUS_NANO) {
|
||||
return sprintf(buf, "%d.%06u%s\n", val, val2,
|
||||
scale_db ? " dB" : "");
|
||||
case IIO_VAL_INT_PLUS_NANO:
|
||||
if (val2 < 0)
|
||||
return sprintf(buf, "-%d.%09u\n", val, -val2);
|
||||
else
|
||||
return sprintf(buf, "%d.%09u\n", val, val2);
|
||||
} else
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
static ssize_t iio_write_channel_info(struct device *dev,
|
||||
|
|
|
@ -50,5 +50,6 @@ enum iio_modifier {
|
|||
#define IIO_VAL_INT 1
|
||||
#define IIO_VAL_INT_PLUS_MICRO 2
|
||||
#define IIO_VAL_INT_PLUS_NANO 3
|
||||
#define IIO_VAL_INT_PLUS_MICRO_DB 4
|
||||
|
||||
#endif /* _IIO_TYPES_H_ */
|
||||
|
|
Загрузка…
Ссылка в новой задаче