summaryrefslogtreecommitdiffstats
path: root/sound/soc/codecs/twl4030.c
diff options
context:
space:
mode:
authorPeter Ujfalusi2009-05-25 10:12:12 +0200
committerMark Brown2009-05-25 12:54:14 +0200
commitf3b5d3002d5b43d277dedc1e044d02f2a40a43c5 (patch)
tree6f71f26af0f468a14940023135f5115078ca3aa1 /sound/soc/codecs/twl4030.c
parentASoC: TWL4030: Handsfree pop removal redesign (diff)
downloadkernel-qcow2-linux-f3b5d3002d5b43d277dedc1e044d02f2a40a43c5.tar.gz
kernel-qcow2-linux-f3b5d3002d5b43d277dedc1e044d02f2a40a43c5.tar.xz
kernel-qcow2-linux-f3b5d3002d5b43d277dedc1e044d02f2a40a43c5.zip
ASoC: TWL4030: Add shadow register
Shadow, non HW register for dealing with the HandsfreeL/R muting. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@nokia.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Diffstat (limited to 'sound/soc/codecs/twl4030.c')
-rw-r--r--sound/soc/codecs/twl4030.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/sound/soc/codecs/twl4030.c b/sound/soc/codecs/twl4030.c
index 17ddcb265134..989446dabcda 100644
--- a/sound/soc/codecs/twl4030.c
+++ b/sound/soc/codecs/twl4030.c
@@ -115,6 +115,7 @@ static const u8 twl4030_reg[TWL4030_CACHEREGNUM] = {
0x00, /* REG_VIBRA_PWM_SET (0x47) */
0x00, /* REG_ANAMIC_GAIN (0x48) */
0x00, /* REG_MISC_SET_2 (0x49) */
+ 0x00, /* REG_SW_SHADOW (0x4A) - Shadow, non HW register */
};
/* codec private data */
@@ -172,7 +173,11 @@ static int twl4030_write(struct snd_soc_codec *codec,
unsigned int reg, unsigned int value)
{
twl4030_write_reg_cache(codec, reg, value);
- return twl4030_i2c_write_u8(TWL4030_MODULE_AUDIO_VOICE, value, reg);
+ if (likely(reg < TWL4030_REG_SW_SHADOW))
+ return twl4030_i2c_write_u8(TWL4030_MODULE_AUDIO_VOICE, value,
+ reg);
+ else
+ return 0;
}
static void twl4030_codec_enable(struct snd_soc_codec *codec, int enable)