[alsa-devel] No sound captured with SGTL5000 on i.MX6 in I²S master mode

Fabio Estevam festevam at gmail.com
Thu Sep 18 19:28:29 CEST 2014


Hi Nicolin,

On Thu, Sep 18, 2014 at 2:05 PM, Nicolin Chen <nicoleotsuka at gmail.com> wrote:

> The problem here should be the AUDMUX configuration issue. The imx-
> sgtl5000.c driver only supports CODEC in master mode. So if you try
> to switch the CODEC slave mode, you shall also change not only the
> CBM_CFM to CBS_CFS but also swap the ext_port and int_port of AUDMUX
> (a little confusing approach here as the configuration of AUDMUX is
> routing the data and clocks from a source port to a destination port
> while each of side, external or internal, might be a source port --
> When using CBM_CFM, the source port should be external port; while
> using CBS_CFS, the source port should be the internal port.)

Thanks for the hint on audmux swap! I can get ssi in master mode to
work correctly with the change below:


--- a/arch/arm/boot/dts/imx6qdl-sabresd.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-sabresd.dtsi
@@ -111,8 +111,8 @@
                        "IN3R", "MICBIAS",
                        "DMIC", "MICBIAS",
                        "DMICDAT", "DMIC";
-               mux-int-port = <2>;
-               mux-ext-port = <3>;
+               mux-int-port = <3>;
+               mux-ext-port = <2>;
        };

        backlight {
diff --git a/sound/soc/fsl/imx-wm8962.c b/sound/soc/fsl/imx-wm8962.c
index 3a3d17c..09ea6a5 100644
--- a/sound/soc/fsl/imx-wm8962.c
+++ b/sound/soc/fsl/imx-wm8962.c
@@ -247,7 +247,7 @@ static int imx_wm8962_probe(struct platform_device *pdev)
        data->dai.platform_of_node = ssi_np;
        data->dai.ops = &imx_hifi_ops;
        data->dai.dai_fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF |
-                           SND_SOC_DAIFMT_CBM_CFM;
+                           SND_SOC_DAIFMT_CBS_CFS;

        data->card.dev = &pdev->dev;
        ret = snd_soc_of_parse_card_name(&data->card, "model");


More information about the Alsa-devel mailing list