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_VIBRA_PWM_SET (0x47) */
|
||||||
0x00, /* REG_ANAMIC_GAIN (0x48) */
|
0x00, /* REG_ANAMIC_GAIN (0x48) */
|
||||||
0x00, /* REG_MISC_SET_2 (0x49) */
|
0x00, /* REG_MISC_SET_2 (0x49) */
|
||||||
|
0x00, /* REG_SW_SHADOW (0x4A) - Shadow, non HW register */
|
||||||
};
|
};
|
||||||
|
|
||||||
/* codec private data */
|
/* codec private data */
|
||||||
|
@ -172,7 +173,11 @@ static int twl4030_write(struct snd_soc_codec *codec,
|
||||||
unsigned int reg, unsigned int value)
|
unsigned int reg, unsigned int value)
|
||||||
{
|
{
|
||||||
twl4030_write_reg_cache(codec, reg, 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)
|
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_VIBRA_PWM_SET 0x47
|
||||||
#define TWL4030_REG_ANAMIC_GAIN 0x48
|
#define TWL4030_REG_ANAMIC_GAIN 0x48
|
||||||
#define TWL4030_REG_MISC_SET_2 0x49
|
#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 */
|
/* Bitfield Definitions */
|
||||||
|
|
||||||
|
@ -260,6 +261,10 @@
|
||||||
#define TWL4030_SMOOTH_ANAVOL_EN 0x02
|
#define TWL4030_SMOOTH_ANAVOL_EN 0x02
|
||||||
#define TWL4030_DIGMIC_LR_SWAP_EN 0x01
|
#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_HIFI 0
|
||||||
#define TWL4030_DAI_VOICE 1
|
#define TWL4030_DAI_VOICE 1
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue