summaryrefslogtreecommitdiff
path: root/drivers/mfd
diff options
context:
space:
mode:
authorLaxman Dewangan <ldewangan@nvidia.com>2013-02-19 13:06:46 +0530
committerMandar Padmawar <mpadmawar@nvidia.com>2013-03-15 07:08:59 -0700
commitd6330823db19136d97fcb92fc8707fc5de7b78f5 (patch)
treeee5b0de94248ffa9c5472335e05154789191baf8 /drivers/mfd
parent941be90682ce054645ecb1a6665e031a9f14ad23 (diff)
mfd: palma: enable cache of SMPS regulator register.
Enable caching of SMPS regulator registers. This reduces the number of i2c transaction from 7 to 1 when changing voltage of rail. bug 1238267 Change-Id: Ida1d1c3a634c1e3c1bf8a8b008aea17aeaa5ced3 Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com> Reviewed-on: http://git-master/r/201949 Reviewed-by: Mandar Padmawar <mpadmawar@nvidia.com> Tested-by: Mandar Padmawar <mpadmawar@nvidia.com>
Diffstat (limited to 'drivers/mfd')
-rw-r--r--drivers/mfd/palmas.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/mfd/palmas.c b/drivers/mfd/palmas.c
index 002838f797c9..7caa13b2863e 100644
--- a/drivers/mfd/palmas.c
+++ b/drivers/mfd/palmas.c
@@ -185,12 +185,22 @@ static const struct mfd_cell palmas_children[] = {
}
};
+static bool is_volatile_palma_func_reg(struct device *dev, unsigned int reg)
+{
+ if ((reg >= (PALMAS_SMPS12_CTRL + 0x20)) &&
+ (reg <= (PALMAS_SMPS9_VOLTAGE + 0x20)))
+ return false;
+ return true;
+}
+
static const struct regmap_config palmas_regmap_config[PALMAS_NUM_CLIENTS] = {
{
.reg_bits = 8,
.val_bits = 8,
.max_register = PALMAS_BASE_TO_REG(PALMAS_PU_PD_OD_BASE,
PALMAS_PRIMARY_SECONDARY_PAD3),
+ .volatile_reg = is_volatile_palma_func_reg,
+ .cache_type = REGCACHE_RBTREE,
},
{
.reg_bits = 8,