Unverified Commit 6bdd1c67 authored by Jisheng Zhang's avatar Jisheng Zhang Committed by Mark Brown
Browse files

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: default avatarJisheng Zhang <Jisheng.Zhang@synaptics.com>
Link: https://lore.kernel.org/r/20210803165211.3b00db29@xhacker.debian


Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent 784ed369
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -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
@@ -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)