ASoC: Support configuration of WM8958 microphone bias analogue parameters
The WM8958 has a different microphone bias architecture to WM8994 so needs different configuration to WM8994. Support this in platform data. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
This commit is contained in:
parent
9b7c525dfa
commit
48e028ecca
|
@ -108,13 +108,16 @@ struct wm8994_pdata {
|
|||
*/
|
||||
int micdet_irq;
|
||||
|
||||
/* Microphone biases: 0=0.9*AVDD1 1=0.65*AVVD1 */
|
||||
/* WM8994 microphone biases: 0=0.9*AVDD1 1=0.65*AVVD1 */
|
||||
unsigned int micbias1_lvl:1;
|
||||
unsigned int micbias2_lvl:1;
|
||||
|
||||
/* Jack detect threashold levels, see datasheet for values */
|
||||
/* WM8994 jack detect threashold levels, see datasheet for values */
|
||||
unsigned int jd_scthr:2;
|
||||
unsigned int jd_thr:2;
|
||||
|
||||
/* WM8958 microphone bias configuration */
|
||||
int micbias[2];
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
@ -63,6 +63,8 @@
|
|||
#define WM8994_MICBIAS 0x3A
|
||||
#define WM8994_LDO_1 0x3B
|
||||
#define WM8994_LDO_2 0x3C
|
||||
#define WM8958_MICBIAS1 0x3D
|
||||
#define WM8958_MICBIAS2 0x3E
|
||||
#define WM8994_CHARGE_PUMP_1 0x4C
|
||||
#define WM8958_CHARGE_PUMP_2 0x4D
|
||||
#define WM8994_CLASS_W_1 0x51
|
||||
|
|
|
@ -2855,6 +2855,13 @@ static void wm8994_handle_pdata(struct wm8994_priv *wm8994)
|
|||
else
|
||||
snd_soc_add_controls(wm8994->codec, wm8994_eq_controls,
|
||||
ARRAY_SIZE(wm8994_eq_controls));
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(pdata->micbias); i++) {
|
||||
if (pdata->micbias[i]) {
|
||||
snd_soc_write(codec, WM8958_MICBIAS1 + i,
|
||||
pdata->micbias[i] & 0xffff);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in a new issue