diff options
author | Axel Lin <axel.lin@ingics.com> | 2015-07-19 04:14:23 +0300 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2015-07-20 20:18:46 +0300 |
commit | 0443de7e7e559eab7df2566d0e46940f753db51d (patch) | |
tree | 6902ccb157f2d80f5457d3fa2f39ccaa8fd63ad5 /sound/soc/codecs/cs4349.c | |
parent | da304ac37efc1900892b5067c65f0ab8acfe3955 (diff) | |
download | linux-0443de7e7e559eab7df2566d0e46940f753db51d.tar.xz |
ASoC: cs4349: Set .writeable_reg for cs4349_regmap
The first valid register index is 1 rather than 0, and the CS4349_CHIPID
is readonly. So set .writeable_reg to avoid writing to these registers.
Signed-off-by: Axel Lin <axel.lin@ingics.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound/soc/codecs/cs4349.c')
-rw-r--r-- | sound/soc/codecs/cs4349.c | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/sound/soc/codecs/cs4349.c b/sound/soc/codecs/cs4349.c index 4885695e35a7..a6604a34db34 100644 --- a/sound/soc/codecs/cs4349.c +++ b/sound/soc/codecs/cs4349.c @@ -54,14 +54,17 @@ struct cs4349_private { static bool cs4349_readable_register(struct device *dev, unsigned int reg) { switch (reg) { - case CS4349_CHIPID: - case CS4349_MODE: - case CS4349_VMI: - case CS4349_MUTE: - case CS4349_VOLA: - case CS4349_VOLB: - case CS4349_RMPFLT: - case CS4349_MISC: + case CS4349_CHIPID ... CS4349_MISC: + return true; + default: + return false; + } +} + +static bool cs4349_writeable_register(struct device *dev, unsigned int reg) +{ + switch (reg) { + case CS4349_MODE ... CS4349_MISC: return true; default: return false; @@ -270,6 +273,7 @@ static const struct regmap_config cs4349_regmap = { .reg_defaults = cs4349_reg_defaults, .num_reg_defaults = ARRAY_SIZE(cs4349_reg_defaults), .readable_reg = cs4349_readable_register, + .writeable_reg = cs4349_writeable_register, .cache_type = REGCACHE_RBTREE, }; |