diff options
author | Lionel Xu <r63889@freescale.com> | 2009-08-19 14:17:25 +0800 |
---|---|---|
committer | Justin Waters <justin.waters@timesys.com> | 2009-10-13 11:05:20 -0400 |
commit | 295e131666093291735326de579fa3cdac293b11 (patch) | |
tree | 0dfd4ed120627e85ee96ff5036cfcfaad165b8e0 | |
parent | 76655a77f0ac39ef2fa819609da0cfb88150505d (diff) |
ENGR00115163 MX233 ALSA: Resolve arecord problem
Supply a bias voltage to external microphone to make it work, since there is
no vddio_p supplied to microphone on evk board.
Signed-off-by: Lionel Xu <r63889@freescale.com>
-rw-r--r-- | sound/soc/codecs/stmp378x_codec.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/sound/soc/codecs/stmp378x_codec.c b/sound/soc/codecs/stmp378x_codec.c index 7e15810756de..30d96c6f4dca 100644 --- a/sound/soc/codecs/stmp378x_codec.c +++ b/sound/soc/codecs/stmp378x_codec.c @@ -538,6 +538,10 @@ stmp378x_codec_adc_power_on(struct stmp378x_codec_priv *stmp378x_adc) HW_AUDIOIN_ADCVOL_SET( BF_AUDIOIN_ADCVOL_SELECT_RIGHT(BV_AUDIOIN_ADCVOL_SELECT__MIC)); + /* Supply bias voltage to microphone */ + HW_AUDIOIN_MICLINE_SET(BF_AUDIOIN_MICLINE_MIC_RESISTOR(2)); + HW_AUDIOIN_MICLINE_SET(BM_AUDIOIN_MICLINE_MIC_SELECT); + /* Set max ADC volume */ reg = HW_AUDIOIN_ADCVOLUME_RD(); reg &= ~BM_AUDIOIN_ADCVOLUME_VOLUME_LEFT; @@ -560,6 +564,9 @@ stmp378x_codec_adc_power_down(struct stmp378x_codec_priv *stmp378x_adc) /* Gate ADC clocks */ HW_AUDIOIN_CTRL_SET(BM_AUDIOIN_CTRL_CLKGATE); HW_AUDIOIN_ANACLKCTRL_SET(BM_AUDIOIN_ANACLKCTRL_CLKGATE); + + /* Disable bias voltage to microphone*/ + HW_AUDIOIN_MICLINE_SET(BF_AUDIOIN_MICLINE_MIC_RESISTOR(0)); } static void |