ASoC: qcom: apq8016-sbc: add mic support
authorSrinivas Kandagatla <srinivas.kandagatla@linaro.org>
Thu, 11 Feb 2016 12:18:45 +0000 (12:18 +0000)
committerMark Brown <broonie@kernel.org>
Fri, 19 Feb 2016 16:20:18 +0000 (01:20 +0900)
This patch add mic support on apq8016-sbc board aka db410c. Tested it
with headset mic.

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Acked-by: Kenneth Westfield <kwestfie@codeaurora.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/qcom/apq8016_sbc.c

index 1efdf0088ecdff4eac700492dfc5bf90270e288c..1289543c8fb2594dfa4a9d6f9be16f70d0e67c5c 100644 (file)
@@ -30,6 +30,7 @@ struct apq8016_sbc_data {
        struct snd_soc_dai_link dai_link[];     /* dynamically allocated */
 };
 
+#define MIC_CTRL_TER_WS_SLAVE_SEL      BIT(21)
 #define MIC_CTRL_QUA_WS_SLAVE_SEL_10   BIT(17)
 #define MIC_CTRL_TLMM_SCLK_EN          BIT(1)
 #define        SPKR_CTL_PRI_WS_SLAVE_SEL_11    (BIT(17) | BIT(16))
@@ -53,6 +54,12 @@ static int apq8016_sbc_dai_init(struct snd_soc_pcm_runtime *rtd)
                        MIC_CTRL_TLMM_SCLK_EN,
                        pdata->mic_iomux);
                break;
+       case MI2S_TERTIARY:
+               writel(readl(pdata->mic_iomux) | MIC_CTRL_TER_WS_SLAVE_SEL |
+                       MIC_CTRL_TLMM_SCLK_EN,
+                       pdata->mic_iomux);
+
+               break;
 
        default:
                dev_err(card->dev, "unsupported cpu dai configuration\n");
@@ -126,9 +133,6 @@ static struct apq8016_sbc_data *apq8016_sbc_parse_of(struct snd_soc_card *card)
                }
 
                link->platform_of_node = link->cpu_of_node;
-               /* For now we only support playback */
-               link->playback_only = true;
-
                ret = of_property_read_string(np, "link-name", &link->name);
                if (ret) {
                        dev_err(card->dev, "error getting codec dai_link name\n");