imu: bmi160: Add avail frequency and scale attributes
authorDaniel Baluta <daniel.baluta@intel.com>
Fri, 29 Apr 2016 11:42:35 +0000 (14:42 +0300)
committerJonathan Cameron <jic23@kernel.org>
Wed, 4 May 2016 09:51:39 +0000 (10:51 +0100)
Signed-off-by: Daniel Baluta <daniel.baluta@intel.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
drivers/iio/imu/bmi160/bmi160_core.c

index 0bf92b06d7d87a1cfb2ff85ce9662abb5ec07fd3..914e2e7971bebe63c36a518f616847bcb816d2d4 100644 (file)
@@ -20,6 +20,7 @@
 #include <linux/iio/triggered_buffer.h>
 #include <linux/iio/trigger_consumer.h>
 #include <linux/iio/buffer.h>
+#include <linux/iio/sysfs.h>
 
 #include "bmi160.h"
 
@@ -466,10 +467,36 @@ static int bmi160_write_raw(struct iio_dev *indio_dev,
        return 0;
 }
 
+static
+IIO_CONST_ATTR(in_accel_sampling_frequency_available,
+              "0.78125 1.5625 3.125 6.25 12.5 25 50 100 200 400 800 1600");
+static
+IIO_CONST_ATTR(in_anglvel_sampling_frequency_available,
+              "25 50 100 200 400 800 1600 3200");
+static
+IIO_CONST_ATTR(in_accel_scale_available,
+              "0.000598 0.001197 0.002394 0.004788");
+static
+IIO_CONST_ATTR(in_anglvel_scale_available,
+              "0.001065 0.000532 0.000266 0.000133 0.000066");
+
+static struct attribute *bmi160_attrs[] = {
+       &iio_const_attr_in_accel_sampling_frequency_available.dev_attr.attr,
+       &iio_const_attr_in_anglvel_sampling_frequency_available.dev_attr.attr,
+       &iio_const_attr_in_accel_scale_available.dev_attr.attr,
+       &iio_const_attr_in_anglvel_scale_available.dev_attr.attr,
+       NULL,
+};
+
+static const struct attribute_group bmi160_attrs_group = {
+       .attrs = bmi160_attrs,
+};
+
 static const struct iio_info bmi160_info = {
        .driver_module = THIS_MODULE,
        .read_raw = bmi160_read_raw,
        .write_raw = bmi160_write_raw,
+       .attrs = &bmi160_attrs_group,
 };
 
 static const char *bmi160_match_acpi_device(struct device *dev)