|
@@ -366,6 +366,7 @@ static ssize_t iio_read_channel_info(struct device *dev,
|
|
|
{
|
|
|
struct iio_dev *indio_dev = dev_to_iio_dev(dev);
|
|
|
struct iio_dev_attr *this_attr = to_iio_dev_attr(attr);
|
|
|
+ unsigned long long tmp;
|
|
|
int val, val2;
|
|
|
bool scale_db = false;
|
|
|
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,
|
|
|
return sprintf(buf, "-%d.%09u\n", val, -val2);
|
|
|
else
|
|
|
return sprintf(buf, "%d.%09u\n", val, val2);
|
|
|
+ case IIO_VAL_FRACTIONAL:
|
|
|
+ tmp = div_s64((s64)val * 1000000000LL, val2);
|
|
|
+ val2 = do_div(tmp, 1000000000LL);
|
|
|
+ val = tmp;
|
|
|
+ return sprintf(buf, "%d.%09u\n", val, val2);
|
|
|
default:
|
|
|
return 0;
|
|
|
}
|