On Moorestown, DMIC's output is set to PCM2 mono. And the Moorestown uses MIC2 pseudo-differential configuration.
Signed-off-by: Lu Guanqun guanqun.lu@intel.com --- sound/soc/mid-x86/mrst_machine.c | 6 ++++++ 1 files changed, 6 insertions(+), 0 deletions(-)
diff --git a/sound/soc/mid-x86/mrst_machine.c b/sound/soc/mid-x86/mrst_machine.c index eb52a2b..806d18c 100644 --- a/sound/soc/mid-x86/mrst_machine.c +++ b/sound/soc/mid-x86/mrst_machine.c @@ -91,6 +91,12 @@ static int mrst_audio_init(struct snd_soc_pcm_runtime *runtime) struct snd_soc_dapm_context *dapm = &codec->dapm; int ret;
+ /* DMIC configuration: mono output to PCM2 */ + snd_soc_update_bits(codec, UPD9976_MICCTRL, BIT(1)|BIT(0), 0x1); + + /* Set MIC2 to pseudo-differential */ + snd_soc_update_bits(codec, UPD9976_MICSELVOL, BIT(4), BIT(4)); + snd_soc_dapm_nc_pin(dapm, "LINEINL"); snd_soc_dapm_nc_pin(dapm, "LINEINR"); snd_soc_dapm_nc_pin(dapm, "LINEOUTL");