mirror of https://gitee.com/openkylin/linux.git
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>
This commit is contained in:
parent
5a2e9a48b1
commit
f3b5d3002d
|
@ -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)
|
||||
|
|
|
@ -92,8 +92,9 @@
|
|||
#define TWL4030_REG_VIBRA_PWM_SET 0x47
|
||||
#define TWL4030_REG_ANAMIC_GAIN 0x48
|
||||
#define TWL4030_REG_MISC_SET_2 0x49
|
||||
#define TWL4030_REG_SW_SHADOW 0x4A
|
||||
|
||||
#define TWL4030_CACHEREGNUM (TWL4030_REG_MISC_SET_2 + 1)
|
||||
#define TWL4030_CACHEREGNUM (TWL4030_REG_SW_SHADOW + 1)
|
||||
|
||||
/* Bitfield Definitions */
|
||||
|
||||
|
@ -260,6 +261,10 @@
|
|||
#define TWL4030_SMOOTH_ANAVOL_EN 0x02
|
||||
#define TWL4030_DIGMIC_LR_SWAP_EN 0x01
|
||||
|
||||
/* TWL4030_REG_SW_SHADOW (0x4A) Fields */
|
||||
#define TWL4030_HFL_EN 0x01
|
||||
#define TWL4030_HFR_EN 0x02
|
||||
|
||||
#define TWL4030_DAI_HIFI 0
|
||||
#define TWL4030_DAI_VOICE 1
|
||||
|
||||
|
|
Loading…
Reference in New Issue