aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/iio/industrialio-core.c5
-rw-r--r--drivers/iio/inkern.c3
-rw-r--r--include/linux/iio/types.h1
3 files changed, 9 insertions, 0 deletions
diff --git a/drivers/iio/industrialio-core.c b/drivers/iio/industrialio-core.c
index 6eb24dbc081e..37650a72b31f 100644
--- a/drivers/iio/industrialio-core.c
+++ b/drivers/iio/industrialio-core.c
@@ -397,6 +397,11 @@ static ssize_t iio_read_channel_info(struct device *dev,
397 val2 = do_div(tmp, 1000000000LL); 397 val2 = do_div(tmp, 1000000000LL);
398 val = tmp; 398 val = tmp;
399 return sprintf(buf, "%d.%09u\n", val, val2); 399 return sprintf(buf, "%d.%09u\n", val, val2);
400 case IIO_VAL_FRACTIONAL_LOG2:
401 tmp = (s64)val * 1000000000LL >> val2;
402 val2 = do_div(tmp, 1000000000LL);
403 val = tmp;
404 return sprintf(buf, "%d.%09u\n", val, val2);
400 default: 405 default:
401 return 0; 406 return 0;
402 } 407 }
diff --git a/drivers/iio/inkern.c b/drivers/iio/inkern.c
index 5230a33886c0..b394621d362c 100644
--- a/drivers/iio/inkern.c
+++ b/drivers/iio/inkern.c
@@ -314,6 +314,9 @@ static int iio_convert_raw_to_processed_unlocked(struct iio_channel *chan,
314 *processed = div_s64(raw64 * (s64)scale_val * scale, 314 *processed = div_s64(raw64 * (s64)scale_val * scale,
315 scale_val2); 315 scale_val2);
316 break; 316 break;
317 case IIO_VAL_FRACTIONAL_LOG2:
318 *processed = (raw64 * (s64)scale_val * scale) >> scale_val2;
319 break;
317 default: 320 default:
318 return -EINVAL; 321 return -EINVAL;
319 } 322 }
diff --git a/include/linux/iio/types.h b/include/linux/iio/types.h
index 5c647ecfd5ba..87b196a2d698 100644
--- a/include/linux/iio/types.h
+++ b/include/linux/iio/types.h
@@ -58,5 +58,6 @@ enum iio_modifier {
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#define IIO_VAL_FRACTIONAL 10
61#define IIO_VAL_FRACTIONAL_LOG2 11
61 62
62#endif /* _IIO_TYPES_H_ */ 63#endif /* _IIO_TYPES_H_ */