mfd: da9061: Fix Failed to set Two-Wire Bus Mode.
authorJens Hillenstedt <jens.hillenstedt@ise.de>
Thu, 15 Sep 2022 09:20:04 +0000 (11:20 +0200)
committerLee Jones <lee@kernel.org>
Wed, 28 Sep 2022 15:17:41 +0000 (16:17 +0100)
In da9062_i2c_probe() regmap_clear_bits() tries to access CONFIG_J
register. As CONFIG_J is not present in da9061_aa_writeable_ranges[] probe
of da9061 fails:

  da9062 2-0058: Entering I2C mode!
  da9062 2-0058: Failed to set Two-Wire Bus Mode.
  da9062: probe of 2-0058 failed with error -5

Add CONFIG_J register to da9061_aa_writeable_ranges[].

Fixes: 5c6f0f456351 ("mfd: da9062: Support SMBus and I2C mode")
Signed-off-by: Jens Hillenstedt <jens.hillenstedt@ise.de>
Reviewed-by: Adam Ward <DLG-Adam.Ward.opensource@dm.renesas.com>
Signed-off-by: Lee Jones <lee@kernel.org>
Link: https://lore.kernel.org/r/20220915092004.168744-1-jens.hillenstedt@ise.de
drivers/mfd/da9062-core.c

index 2774b2c..c2acdbc 100644 (file)
@@ -453,6 +453,7 @@ static const struct regmap_range da9061_aa_writeable_ranges[] = {
        regmap_reg_range(DA9062AA_VBUCK1_B, DA9062AA_VBUCK4_B),
        regmap_reg_range(DA9062AA_VBUCK3_B, DA9062AA_VBUCK3_B),
        regmap_reg_range(DA9062AA_VLDO1_B, DA9062AA_VLDO4_B),
+       regmap_reg_range(DA9062AA_CONFIG_J, DA9062AA_CONFIG_J),
        regmap_reg_range(DA9062AA_GP_ID_0, DA9062AA_GP_ID_19),
 };