Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

regulator: da9211: add cache_type

Add regmap_cache to reduce wakeups events of interrupt if regulator is
accessed frequently. This results in saving more power.

Suggested-by: Daniel Kurtz <djkurtz@chromium.org>
Signed-off-by: Hsin-Yi Wang <hsinyi@chromium.org>
Acked-by: Adam Thomson <Adam.Thomson.Opensource@diasemi.com>
Link: https://lore.kernel.org/r/20200812133101.2513317-1-hsinyi@chromium.org
Signed-off-by: Mark Brown <broonie@kernel.org>

authored by

Hsin-Yi Wang and committed by
Mark Brown
989e08c3 4cf12735

+14
+14
drivers/regulator/da9211-regulator.c
··· 51 51 }, 52 52 }; 53 53 54 + static bool da9211_volatile_reg(struct device *dev, unsigned int reg) 55 + { 56 + switch (reg) { 57 + case DA9211_REG_STATUS_A: 58 + case DA9211_REG_STATUS_B: 59 + case DA9211_REG_EVENT_A: 60 + case DA9211_REG_EVENT_B: 61 + return true; 62 + } 63 + return false; 64 + } 65 + 54 66 static const struct regmap_config da9211_regmap_config = { 55 67 .reg_bits = 8, 56 68 .val_bits = 8, 57 69 .max_register = 5 * 128, 70 + .volatile_reg = da9211_volatile_reg, 71 + .cache_type = REGCACHE_RBTREE, 58 72 .ranges = da9211_regmap_range, 59 73 .num_ranges = ARRAY_SIZE(da9211_regmap_range), 60 74 };