Regmap config max_register field should contain number of
device last register, however num_reg_defaults_raw field
should be set to register count instead
(usually one register more than max_register).

as3711 driver had both of these fields set to the same value,
fix this by introducing separate defines for max register
number and total count of registers.

Signed-off-by: Maciej S. Szmigiero <m...@maciej.szmigiero.name>
---
 drivers/mfd/as3711.c       | 4 ++--
 include/linux/mfd/as3711.h | 3 ++-
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/drivers/mfd/as3711.c b/drivers/mfd/as3711.c
index 94d67a6e1eb7..09e1483b99bc 100644
--- a/drivers/mfd/as3711.c
+++ b/drivers/mfd/as3711.c
@@ -108,8 +108,8 @@ static const struct regmap_config as3711_regmap_config = {
        .volatile_reg = as3711_volatile_reg,
        .readable_reg = as3711_readable_reg,
        .precious_reg = as3711_precious_reg,
-       .max_register = AS3711_MAX_REGS,
-       .num_reg_defaults_raw = AS3711_MAX_REGS,
+       .max_register = AS3711_MAX_REG,
+       .num_reg_defaults_raw = AS3711_NUM_REGS,
        .cache_type = REGCACHE_RBTREE,
 };
 
diff --git a/include/linux/mfd/as3711.h b/include/linux/mfd/as3711.h
index 38452ce1e892..34cc85864be5 100644
--- a/include/linux/mfd/as3711.h
+++ b/include/linux/mfd/as3711.h
@@ -51,7 +51,8 @@
 #define AS3711_ASIC_ID_1               0x90
 #define AS3711_ASIC_ID_2               0x91
 
-#define AS3711_MAX_REGS                        0x92
+#define AS3711_MAX_REG         AS3711_ASIC_ID_2
+#define AS3711_NUM_REGS                (AS3711_MAX_REG + 1)
 
 /* Regulators */
 enum {

Reply via email to