iio: light: al3320a slightly improve code formatting
authorDavid Heidelberg <david@ixit.cz>
Tue, 11 Feb 2020 19:11:57 +0000 (20:11 +0100)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Sun, 8 Mar 2020 17:28:34 +0000 (17:28 +0000)
- modified to be in part with al3010 driver
- cleanup using bitfield, no functionality change intended

Signed-off-by: David Heidelberg <david@ixit.cz>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/light/al3320a.c

index a21aa99..cd3e25d 100644 (file)
@@ -9,9 +9,9 @@
  * TODO: interrupt support, thresholds
  */
 
-#include <linux/module.h>
-#include <linux/init.h>
+#include <linux/bitfield.h>
 #include <linux/i2c.h>
+#include <linux/module.h>
 
 #include <linux/iio/iio.h>
 #include <linux/iio/sysfs.h>
@@ -36,8 +36,7 @@
 #define AL3320A_CONFIG_DISABLE         0x00
 #define AL3320A_CONFIG_ENABLE          0x01
 
-#define AL3320A_GAIN_SHIFT             1
-#define AL3320A_GAIN_MASK              (BIT(2) | BIT(1))
+#define AL3320A_GAIN_MASK              GENMASK(2, 1)
 
 /* chip params default values */
 #define AL3320A_DEFAULT_MEAN_TIME      4
@@ -90,7 +89,8 @@ static int al3320a_init(struct al3320a_data *data)
                return ret;
 
        ret = i2c_smbus_write_byte_data(data->client, AL3320A_REG_CONFIG_RANGE,
-                                       AL3320A_RANGE_3 << AL3320A_GAIN_SHIFT);
+                                       FIELD_PREP(AL3320A_GAIN_MASK,
+                                                  AL3320A_RANGE_3));
        if (ret < 0)
                return ret;
 
@@ -133,7 +133,7 @@ static int al3320a_read_raw(struct iio_dev *indio_dev,
                if (ret < 0)
                        return ret;
 
-               ret = (ret & AL3320A_GAIN_MASK) >> AL3320A_GAIN_SHIFT;
+               ret = FIELD_GET(AL3320A_GAIN_MASK, ret);
                *val = al3320a_scales[ret][0];
                *val2 = al3320a_scales[ret][1];
 
@@ -152,11 +152,13 @@ static int al3320a_write_raw(struct iio_dev *indio_dev,
        switch (mask) {
        case IIO_CHAN_INFO_SCALE:
                for (i = 0; i < ARRAY_SIZE(al3320a_scales); i++) {
-                       if (val == al3320a_scales[i][0] &&
-                           val2 == al3320a_scales[i][1])
-                               return i2c_smbus_write_byte_data(data->client,
+                       if (val != al3320a_scales[i][0] ||
+                           val2 != al3320a_scales[i][1])
+                               continue;
+
+                       return i2c_smbus_write_byte_data(data->client,
                                        AL3320A_REG_CONFIG_RANGE,
-                                       i << AL3320A_GAIN_SHIFT);
+                                       FIELD_PREP(AL3320A_GAIN_MASK, i));
                }
                break;
        }