aboutsummaryrefslogtreecommitdiffstats
path: root/sound/soc/codecs/wm8962.c
diff options
context:
space:
mode:
authorMark Brown <broonie@opensource.wolfsonmicro.com>2010-09-29 16:24:35 -0400
committerMark Brown <broonie@opensource.wolfsonmicro.com>2010-09-30 12:36:13 -0400
commita4f28c001d9fbe378852771c0734af4f7798d3c0 (patch)
treec556ecd9f97b2a91492434d0c94a7daa7eca9471 /sound/soc/codecs/wm8962.c
parentdee0bb9d0fef4535cc52df84b5165cbe2db383d7 (diff)
ASoC: Provide microphone bias configuration for WM8962
Add the widget for MICBIAS power control and allow configuration of the microphone bias setup via the platform data for the WM8962. When microphone status signals are brought out to GPIO this should be sufficient to enable microphone detection. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Diffstat (limited to 'sound/soc/codecs/wm8962.c')
-rw-r--r--sound/soc/codecs/wm8962.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/sound/soc/codecs/wm8962.c b/sound/soc/codecs/wm8962.c
index 4fa5de873c8b..be34146a775b 100644
--- a/sound/soc/codecs/wm8962.c
+++ b/sound/soc/codecs/wm8962.c
@@ -630,6 +630,8 @@ SND_SOC_DAPM_INPUT("IN4L"),
630SND_SOC_DAPM_INPUT("IN4R"), 630SND_SOC_DAPM_INPUT("IN4R"),
631SND_SOC_DAPM_INPUT("Beep"), 631SND_SOC_DAPM_INPUT("Beep"),
632 632
633SND_SOC_DAPM_MICBIAS("MICBIAS", WM8962_PWR_MGMT_1, 1, 0),
634
633SND_SOC_DAPM_SUPPLY("Class G", WM8962_CHARGE_PUMP_B, 0, 1, NULL, 0), 635SND_SOC_DAPM_SUPPLY("Class G", WM8962_CHARGE_PUMP_B, 0, 1, NULL, 0),
634SND_SOC_DAPM_SUPPLY("SYSCLK", WM8962_CLOCKING2, 5, 0, sysclk_event, 636SND_SOC_DAPM_SUPPLY("SYSCLK", WM8962_CLOCKING2, 5, 0, sysclk_event,
635 SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD), 637 SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD),
@@ -1755,6 +1757,16 @@ static int wm8962_probe(struct snd_soc_codec *codec)
1755 if (pdata->spk_mono) 1757 if (pdata->spk_mono)
1756 wm8962->reg_cache[WM8962_CLASS_D_CONTROL_2] 1758 wm8962->reg_cache[WM8962_CLASS_D_CONTROL_2]
1757 |= WM8962_SPK_MONO; 1759 |= WM8962_SPK_MONO;
1760
1761 /* Micbias setup, detection enable and detection
1762 * threasholds. */
1763 if (pdata->mic_cfg)
1764 snd_soc_update_bits(codec, WM8962_ADDITIONAL_CONTROL_4,
1765 WM8962_MICDET_ENA |
1766 WM8962_MICDET_THR_MASK |
1767 WM8962_MICSHORT_THR_MASK |
1768 WM8962_MICBIAS_LVL,
1769 pdata->mic_cfg);
1758 } 1770 }
1759 1771
1760 /* Latch volume update bits */ 1772 /* Latch volume update bits */