ASoC: sdp4430: Configure McPDM offset cancellation
authorPeter Ujfalusi <peter.ujfalusi@ti.com>
Mon, 26 Sep 2011 13:05:59 +0000 (16:05 +0300)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Mon, 26 Sep 2011 21:23:32 +0000 (22:23 +0100)
Based on the values from twl6040 codec (HSOTRIM L/R) we can configure
the McPDM offset cancellation.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
sound/soc/omap/sdp4430.c

index 4200eb4b71a48e19bbc694b7dbe67de7110a5be3..249d84b705fc321fe287053f039438aead13090e 100644 (file)
@@ -121,7 +121,7 @@ static int sdp4430_twl6040_init(struct snd_soc_pcm_runtime *rtd)
 {
        struct snd_soc_codec *codec = rtd->codec;
        struct snd_soc_dapm_context *dapm = &codec->dapm;
-       int ret;
+       int ret, hs_trim;
 
        /* Add SDP4430 specific widgets */
        ret = snd_soc_dapm_new_controls(dapm, sdp4430_twl6040_dapm_widgets,
@@ -144,6 +144,14 @@ static int sdp4430_twl6040_init(struct snd_soc_pcm_runtime *rtd)
        if (ret)
                return ret;
 
+       /*
+        * Configure McPDM offset cancellation based on the HSOTRIM value from
+        * twl6040.
+        */
+       hs_trim = twl6040_get_trim_value(codec, TWL6040_TRIM_HSOTRIM);
+       omap_mcpdm_configure_dn_offsets(rtd, TWL6040_HSF_TRIM_LEFT(hs_trim),
+                                       TWL6040_HSF_TRIM_RIGHT(hs_trim));
+
        /* Headset jack detection */
        ret = snd_soc_jack_new(codec, "Headset Jack",
                                SND_JACK_HEADSET, &hs_jack);