regulator: sy8827n: Enable REGCACHE_FLAT
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>
This commit is contained in:
Родитель
784ed36958
Коммит
6bdd1c672a
|
@ -19,6 +19,10 @@
|
||||||
#define SY8827N_MODE (1 << 6)
|
#define SY8827N_MODE (1 << 6)
|
||||||
#define SY8827N_VSEL1 1
|
#define SY8827N_VSEL1 1
|
||||||
#define SY8827N_CTRL 2
|
#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_NVOLTAGES 64
|
||||||
#define SY8827N_VSELMIN 600000
|
#define SY8827N_VSELMIN 600000
|
||||||
|
@ -102,9 +106,19 @@ static int sy8827n_regulator_register(struct sy8827n_device_info *di,
|
||||||
return PTR_ERR_OR_ZERO(rdev);
|
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 = {
|
static const struct regmap_config sy8827n_regmap_config = {
|
||||||
.reg_bits = 8,
|
.reg_bits = 8,
|
||||||
.val_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)
|
static int sy8827n_i2c_probe(struct i2c_client *client)
|
||||||
|
|
Загрузка…
Ссылка в новой задаче