iio: imu: inv_mpu6050: add debugfs register r/w interface
authorRohit Sarkar <rohitsarkar5398@gmail.com>
Fri, 27 Mar 2020 13:10:23 +0000 (18:40 +0530)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Sun, 19 Apr 2020 15:56:20 +0000 (16:56 +0100)
The debugfs interface provides direct access to read and write device
registers if debugfs is enabled.

Signed-off-by: Rohit Sarkar <rohitsarkar5398@gmail.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Acked-by: Jean-Baptiste Maneyrol <jmaneyrol@invensense.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/imu/inv_mpu6050/inv_mpu_core.c

index 7cb9ff3d3e940018134b08badc9d3f50ab4cf545..e4b0d368c2f99079c4f39f03d8db8cde95fbf0cd 100644 (file)
@@ -1248,12 +1248,31 @@ static const struct attribute_group inv_attribute_group = {
        .attrs = inv_attributes
 };
 
+static int inv_mpu6050_reg_access(struct iio_dev *indio_dev,
+                                 unsigned int reg,
+                                 unsigned int writeval,
+                                 unsigned int *readval)
+{
+       struct inv_mpu6050_state *st = iio_priv(indio_dev);
+       int ret;
+
+       mutex_lock(&st->lock);
+       if (readval)
+               ret = regmap_read(st->map, reg, readval);
+       else
+               ret = regmap_write(st->map, reg, writeval);
+       mutex_unlock(&st->lock);
+
+       return ret;
+}
+
 static const struct iio_info mpu_info = {
        .read_raw = &inv_mpu6050_read_raw,
        .write_raw = &inv_mpu6050_write_raw,
        .write_raw_get_fmt = &inv_write_raw_get_fmt,
        .attrs = &inv_attribute_group,
        .validate_trigger = inv_mpu6050_validate_trigger,
+       .debugfs_reg_access = &inv_mpu6050_reg_access,
 };
 
 /**