[ARM] mfd: cpcap-audio: Switch CODEC into network mode
authorChris Fries <C.Fries@motorola.com>
Wed, 20 Oct 2010 18:06:23 +0000 (13:06 -0500)
committerIliyan Malchev <malchev@google.com>
Wed, 20 Oct 2010 18:26:05 +0000 (11:26 -0700)
CODEC can support I2S or Network data modes.  Switch to Network mode to cleanly
support single-channel capture.

Signed-off-by: Iliyan Malchev <malchev@google.com>
drivers/mfd/cpcap-audio-core.c

index ec19105f4dfb951e2f9f0e5c8346e19f6ae26039..8393fdda2da607aeb597f4dc795a490fba73bca3 100644 (file)
@@ -580,15 +580,25 @@ static void cpcap_audio_configure_codec(struct cpcap_audio_state *state,
        if (state->rat_type != CPCAP_AUDIO_RAT_NONE)
                cdai_changes.value |= CPCAP_BIT_CLK_IN_SEL;
 
-       cdai_changes.value |= CPCAP_BIT_CDC_PLL_SEL | CPCAP_BIT_CLK_INV;
+       cdai_changes.value |= CPCAP_BIT_CDC_PLL_SEL;
 #if 0
        cdai_changes.value |= CPCAP_BIT_DIG_AUD_IN;
 #endif
 
+#ifdef CODEC_IS_I2S_MODE
+       cdai_changes.value |= CPCAP_BIT_CLK_INV;
        /* Setting I2S mode */
        cdai_changes.value |= CPCAP_BIT_CDC_DIG_AUD_FS0 |
                        CPCAP_BIT_CDC_DIG_AUD_FS1 |
                        CPCAP_BIT_MIC2_TIMESLOT0;
+#else
+       /* Setting CODEC mode */
+       /* FS:  Not inverted.
+        * Clk: Not inverted.
+        * TS2/TS1/TS0 not set, using timeslot 0 for mic1.
+        */
+       cdai_changes.value |= CPCAP_BIT_CDC_DIG_AUD_FS0;
+#endif
 
        /* OK, now start paranoid codec sequence */
        /* FIRST, make sure the frequency config is right... */