iio: light: apds9960: fix wrong register for gesture gain
authorAlejandro Concepción Rodríguez <asconcepcion@acoro.eu>
Sun, 6 Nov 2022 01:56:51 +0000 (01:56 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 2 Dec 2022 16:41:08 +0000 (17:41 +0100)
commit 0aa60ff5d996d4ecdd4a62699c01f6d00f798d59 upstream.

Gesture Gain Control is in REG_GCONF_2 (0xa3), not in REG_CONFIG_2 (0x90).

Fixes: aff268cd532e ("iio: light: add APDS9960 ALS + promixity driver")
Signed-off-by: Alejandro Concepcion-Rodriguez <asconcepcion@acoro.eu>
Acked-by: Matt Ranostay <matt.ranostay@konsulko.com>
Cc: <Stable@vger.kernel.org>
Link: https://lore.kernel.org/r/EaT-NKC-H4DNX5z4Lg9B6IWPD5TrTrYBr5DYB784wfDKQkTmzPXkoYqyUOrOgJH-xvTsEkFLcVkeAPZRUODEFI5dGziaWXwjpfBNLeNGfNc=@acoro.eu
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/iio/light/apds9960.c

index 4141c0fa7bc46a24014d748b60521f6e512e0cf4..7c4353317337ea628416e45a913699d3aac3e111 100644 (file)
@@ -54,9 +54,6 @@
 #define APDS9960_REG_CONTROL_PGAIN_MASK_SHIFT  2
 
 #define APDS9960_REG_CONFIG_2  0x90
-#define APDS9960_REG_CONFIG_2_GGAIN_MASK       0x60
-#define APDS9960_REG_CONFIG_2_GGAIN_MASK_SHIFT 5
-
 #define APDS9960_REG_ID                0x92
 
 #define APDS9960_REG_STATUS    0x93
@@ -77,6 +74,9 @@
 #define APDS9960_REG_GCONF_1_GFIFO_THRES_MASK_SHIFT    6
 
 #define APDS9960_REG_GCONF_2   0xa3
+#define APDS9960_REG_GCONF_2_GGAIN_MASK                        0x60
+#define APDS9960_REG_GCONF_2_GGAIN_MASK_SHIFT          5
+
 #define APDS9960_REG_GOFFSET_U 0xa4
 #define APDS9960_REG_GOFFSET_D 0xa5
 #define APDS9960_REG_GPULSE    0xa6
@@ -396,9 +396,9 @@ static int apds9960_set_pxs_gain(struct apds9960_data *data, int val)
                        }
 
                        ret = regmap_update_bits(data->regmap,
-                               APDS9960_REG_CONFIG_2,
-                               APDS9960_REG_CONFIG_2_GGAIN_MASK,
-                               idx << APDS9960_REG_CONFIG_2_GGAIN_MASK_SHIFT);
+                               APDS9960_REG_GCONF_2,
+                               APDS9960_REG_GCONF_2_GGAIN_MASK,
+                               idx << APDS9960_REG_GCONF_2_GGAIN_MASK_SHIFT);
                        if (!ret)
                                data->pxs_gain = idx;
                        mutex_unlock(&data->lock);