了解linux中的音频路由

md.*_*mal 6 linux audio linux-device-driver linux-kernel imx6

我有一个定制的i.MX6板,它有WM8985音频编解码器.我在sound/soc/codecs文件夹中有编解码器驱动程序wm8985.我正在开发机器级驱动程序声音/ soc/fsl/imx-wm8985.c

我将wm8962代码作为参考.我无法理解linux音频子系统中的音频路由概念.

我已将设备树修改为以下wm8962设备树.

   sound {
                compatible = "fsl,imx6q-sabresd-wm8985",
                           "fsl,imx-audio-wm8985";
                model = "wm8985-audio";
                cpu-dai = <&ssi2>;
                audio-codec = <&codec>;
                audio-routing =
                        "Headphone Jack", "HPL",
                        "Headphone Jack", "HPR",
                        "Ext Spk", "SPKL",
                        "Ext Spk", "SPKR",
                        "Mic Bias", "AMIC",
                        "RIN", "Mic Bias",
                        "DMIC", "Mic Bias",
                        "DMICDAT", "DMIC";
                mux-int-port = <2>;
                mux-ext-port = <3>;
                hp-det-gpios = <&gpio7 8 1>; /* same as sabre */
                /*mic-det-gpios = <&gpio1 23 1>;*/ /* move to enet_ref_clk */
        };
Run Code Online (Sandbox Code Playgroud)

它是否正确.能帮助我理解源和接收器的含义吗?如何制作路线..

在此输入图像描述

运行aplay,我收到由于错误的路由而发生的读/写错误.