|
@@ -363,22 +363,20 @@ ssize_t iio_enum_write(struct iio_dev *indio_dev,
|
|
|
}
|
|
|
EXPORT_SYMBOL_GPL(iio_enum_write);
|
|
|
|
|
|
-static ssize_t iio_read_channel_info(struct device *dev,
|
|
|
- struct device_attribute *attr,
|
|
|
- char *buf)
|
|
|
+/**
|
|
|
+ * iio_format_value() - Formats a IIO value into its string representation
|
|
|
+ * @buf: The buffer to which the formated value gets written
|
|
|
+ * @type: One of the IIO_VAL_... constants. This decides how the val and val2
|
|
|
+ * parameters are formatted.
|
|
|
+ * @val: First part of the value, exact meaning depends on the type parameter.
|
|
|
+ * @val2: Second part of the value, exact meaning depends on the type parameter.
|
|
|
+ */
|
|
|
+ssize_t iio_format_value(char *buf, unsigned int type, int val, int val2)
|
|
|
{
|
|
|
- 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,
|
|
|
- &val, &val2, this_attr->address);
|
|
|
|
|
|
- if (ret < 0)
|
|
|
- return ret;
|
|
|
-
|
|
|
- switch (ret) {
|
|
|
+ switch (type) {
|
|
|
case IIO_VAL_INT:
|
|
|
return sprintf(buf, "%d\n", val);
|
|
|
case IIO_VAL_INT_PLUS_MICRO_DB:
|
|
@@ -410,6 +408,22 @@ static ssize_t iio_read_channel_info(struct device *dev,
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+static ssize_t iio_read_channel_info(struct device *dev,
|
|
|
+ struct device_attribute *attr,
|
|
|
+ char *buf)
|
|
|
+{
|
|
|
+ struct iio_dev *indio_dev = dev_to_iio_dev(dev);
|
|
|
+ struct iio_dev_attr *this_attr = to_iio_dev_attr(attr);
|
|
|
+ int val, val2;
|
|
|
+ int ret = indio_dev->info->read_raw(indio_dev, this_attr->c,
|
|
|
+ &val, &val2, this_attr->address);
|
|
|
+
|
|
|
+ if (ret < 0)
|
|
|
+ return ret;
|
|
|
+
|
|
|
+ return iio_format_value(buf, ret, val, val2);
|
|
|
+}
|
|
|
+
|
|
|
/**
|
|
|
* iio_str_to_fixpoint() - Parse a fixed-point number from a string
|
|
|
* @str: The string to parse
|