Skip to content

Commit

Permalink
regulator: sy8827n: Enable REGCACHE_FLAT
Browse files Browse the repository at this point in the history
Enable regmap cache to reduce i2c transactions and corresponding
interrupts if regulator is accessed frequently. Since the register map
is small, we use a FLAT regmap cache.

Signed-off-by: Jisheng Zhang <Jisheng.Zhang@synaptics.com>
Link: https://lore.kernel.org/r/20210803165211.3b00db29@xhacker.debian
Signed-off-by: Mark Brown <broonie@kernel.org>
  • Loading branch information
Jisheng Zhang authored and Mark Brown committed Aug 3, 2021
1 parent 784ed36 commit 6bdd1c6
Showing 1 changed file with 14 additions and 0 deletions.
14 changes: 14 additions & 0 deletions drivers/regulator/sy8827n.c
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,10 @@
#define SY8827N_MODE (1 << 6)
#define SY8827N_VSEL1 1
#define SY8827N_CTRL 2
#define SY8827N_ID1 3
#define SY8827N_ID2 4
#define SY8827N_PGOOD 5
#define SY8827N_MAX (SY8827N_PGOOD + 1)

#define SY8827N_NVOLTAGES 64
#define SY8827N_VSELMIN 600000
Expand Down Expand Up @@ -102,9 +106,19 @@ static int sy8827n_regulator_register(struct sy8827n_device_info *di,
return PTR_ERR_OR_ZERO(rdev);
}

static bool sy8827n_volatile_reg(struct device *dev, unsigned int reg)
{
if (reg == SY8827N_PGOOD)
return true;
return false;
}

static const struct regmap_config sy8827n_regmap_config = {
.reg_bits = 8,
.val_bits = 8,
.volatile_reg = sy8827n_volatile_reg,
.num_reg_defaults_raw = SY8827N_MAX,
.cache_type = REGCACHE_FLAT,
};

static int sy8827n_i2c_probe(struct i2c_client *client)
Expand Down

0 comments on commit 6bdd1c6

Please sign in to comment.