aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mfd/wm5102-tables.c
diff options
context:
space:
mode:
authorMark Brown <broonie@opensource.wolfsonmicro.com>2012-12-11 16:51:39 +0900
committerSamuel Ortiz <sameo@linux.intel.com>2013-02-14 00:22:45 +0100
commit025d982079502b1d6c7c428504eb64c5059a2e80 (patch)
treef6e83de7a0dcb26708db5db7f284d608df11c72e /drivers/mfd/wm5102-tables.c
parentrtc: palmas: Add RTC driver Palmas series PMIC (diff)
downloadlinux-dev-025d982079502b1d6c7c428504eb64c5059a2e80.tar.xz
linux-dev-025d982079502b1d6c7c428504eb64c5059a2e80.zip
mfd: wm5102: Mark only extant DSP registers volatile
Since regmap sometimes uses volatile as a proxy for readable simply having a blanket condition can mark too many registers as readable. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Diffstat (limited to 'drivers/mfd/wm5102-tables.c')
-rw-r--r--drivers/mfd/wm5102-tables.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/drivers/mfd/wm5102-tables.c b/drivers/mfd/wm5102-tables.c
index 1133a64c2dc9..ee0a109f5ce9 100644
--- a/drivers/mfd/wm5102-tables.c
+++ b/drivers/mfd/wm5102-tables.c
@@ -1831,9 +1831,6 @@ static bool wm5102_readable_register(struct device *dev, unsigned int reg)
static bool wm5102_volatile_register(struct device *dev, unsigned int reg)
{
- if (reg > 0xffff)
- return true;
-
switch (reg) {
case ARIZONA_SOFTWARE_RESET:
case ARIZONA_DEVICE_REVISION:
@@ -1878,7 +1875,13 @@ static bool wm5102_volatile_register(struct device *dev, unsigned int reg)
case ARIZONA_MIC_DETECT_3:
return true;
default:
- return false;
+ if ((reg >= 0x100000 && reg < 0x106000) ||
+ (reg >= 0x180000 && reg < 0x180800) ||
+ (reg >= 0x190000 && reg < 0x194800) ||
+ (reg >= 0x1a8000 && reg < 0x1a9800))
+ return true;
+ else
+ return false;
}
}