diff options
author | Alex Frid <afrid@nvidia.com> | 2014-02-10 20:02:32 -0800 |
---|---|---|
committer | Aleksandr Frid <afrid@nvidia.com> | 2014-02-14 11:19:28 -0800 |
commit | 8385a936f4234e9419ef361f881f36273a76141b (patch) | |
tree | f9a2a4b33e4dd09078e6c02652db9874cb24457d /drivers/mfd/palmas.c | |
parent | 3a070d8897b223e6bfe8837fd88529fb323ea861 (diff) |
mfd: palmas: Add callback to set access attribute
Added callback to set SMPS voltage selector registers access attribute
as volatile or cached.
Bug 1454969
Change-Id: I9e98d2822a247d4009d4664b77b7f296a79414ea
Signed-off-by: Alex Frid <afrid@nvidia.com>
Reviewed-on: http://git-master/r/365779
Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com>
Diffstat (limited to 'drivers/mfd/palmas.c')
-rw-r--r-- | drivers/mfd/palmas.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/drivers/mfd/palmas.c b/drivers/mfd/palmas.c index 32fd146dd9c4..244b21cbbb80 100644 --- a/drivers/mfd/palmas.c +++ b/drivers/mfd/palmas.c @@ -199,6 +199,24 @@ static bool is_volatile_palmas_func_reg(struct device *dev, unsigned int reg) return true; } +static int palmas_reg_volatile_set(struct device *dev, unsigned int reg, + bool is_volatile) +{ + if ((reg >= PALMAS_BASE_TO_REG(PALMAS_SMPS_BASE, + PALMAS_SMPS12_CTRL)) && + (reg <= PALMAS_BASE_TO_REG(PALMAS_SMPS_BASE, + PALMAS_SMPS9_VOLTAGE))) { + struct palmas *palmas = dev_get_drvdata(dev); + unsigned int bit = PALMAS_REG_TO_FN_ADDR(PALMAS_SMPS_BASE, reg); + if (is_volatile) + set_bit(bit, palmas->volatile_smps_registers); + else + clear_bit(bit, palmas->volatile_smps_registers); + return 0; + } + return -EINVAL; +} + static void palmas_regmap_config0_lock(void *lock) { struct palmas *palmas = lock; @@ -228,6 +246,7 @@ static struct regmap_config palmas_regmap_config[PALMAS_NUM_CLIENTS] = { .max_register = PALMAS_BASE_TO_REG(PALMAS_PU_PD_OD_BASE, PALMAS_PRIMARY_SECONDARY_PAD4), .volatile_reg = is_volatile_palmas_func_reg, + .reg_volatile_set = palmas_reg_volatile_set, .lock = palmas_regmap_config0_lock, .unlock = palmas_regmap_config0_unlock, .cache_type = REGCACHE_RBTREE, |