diff options
| -rw-r--r-- | drivers/iio/industrialio-core.c | 6 | ||||
| -rw-r--r-- | include/linux/iio/types.h | 1 |
2 files changed, 7 insertions, 0 deletions
diff --git a/drivers/iio/industrialio-core.c b/drivers/iio/industrialio-core.c index 0499330d6e98..6eb24dbc081e 100644 --- a/drivers/iio/industrialio-core.c +++ b/drivers/iio/industrialio-core.c | |||
| @@ -366,6 +366,7 @@ static ssize_t iio_read_channel_info(struct device *dev, | |||
| 366 | { | 366 | { |
| 367 | struct iio_dev *indio_dev = dev_to_iio_dev(dev); | 367 | struct iio_dev *indio_dev = dev_to_iio_dev(dev); |
| 368 | struct iio_dev_attr *this_attr = to_iio_dev_attr(attr); | 368 | struct iio_dev_attr *this_attr = to_iio_dev_attr(attr); |
| 369 | unsigned long long tmp; | ||
| 369 | int val, val2; | 370 | int val, val2; |
| 370 | bool scale_db = false; | 371 | bool scale_db = false; |
| 371 | int ret = indio_dev->info->read_raw(indio_dev, this_attr->c, | 372 | int ret = indio_dev->info->read_raw(indio_dev, this_attr->c, |
| @@ -391,6 +392,11 @@ static ssize_t iio_read_channel_info(struct device *dev, | |||
| 391 | return sprintf(buf, "-%d.%09u\n", val, -val2); | 392 | return sprintf(buf, "-%d.%09u\n", val, -val2); |
| 392 | else | 393 | else |
| 393 | return sprintf(buf, "%d.%09u\n", val, val2); | 394 | return sprintf(buf, "%d.%09u\n", val, val2); |
| 395 | case IIO_VAL_FRACTIONAL: | ||
| 396 | tmp = div_s64((s64)val * 1000000000LL, val2); | ||
| 397 | val2 = do_div(tmp, 1000000000LL); | ||
| 398 | val = tmp; | ||
| 399 | return sprintf(buf, "%d.%09u\n", val, val2); | ||
| 394 | default: | 400 | default: |
| 395 | return 0; | 401 | return 0; |
| 396 | } | 402 | } |
diff --git a/include/linux/iio/types.h b/include/linux/iio/types.h index 44e397705d7f..5c647ecfd5ba 100644 --- a/include/linux/iio/types.h +++ b/include/linux/iio/types.h | |||
| @@ -57,5 +57,6 @@ enum iio_modifier { | |||
| 57 | #define IIO_VAL_INT_PLUS_MICRO 2 | 57 | #define IIO_VAL_INT_PLUS_MICRO 2 |
| 58 | #define IIO_VAL_INT_PLUS_NANO 3 | 58 | #define IIO_VAL_INT_PLUS_NANO 3 |
| 59 | #define IIO_VAL_INT_PLUS_MICRO_DB 4 | 59 | #define IIO_VAL_INT_PLUS_MICRO_DB 4 |
| 60 | #define IIO_VAL_FRACTIONAL 10 | ||
| 60 | 61 | ||
| 61 | #endif /* _IIO_TYPES_H_ */ | 62 | #endif /* _IIO_TYPES_H_ */ |
