IMX8 Audio接口有SAI 与 ESAI。
确认硬件是采用哪种,然后进行配置。
DTS相关文件: 配置相关: Start Address End Address Region Size Allocation 5907_0000 5907_FFFF 64KB SAI3 5906_0000 5906_FFFF 64KB SAI2 5905_0000 5905_FFFF 64KB SAI1 5904_0000 5904_FFFF 64KB SAI0 5902_0000 5902_FFFF 64KB SPDIF0 5901_0000 5901_FFFF 64KB ESAI0 5900_0000 5900_FFFF 64KB ASRC0 SAI: sound-sai0-card { compatible = "fsl,imx-sai-machine"; model = "sai0-card"; cpu-dai = <&sai0>; audio-codec = <&codec_demo1>;//声卡驱动 codec_dai_str = "codec-sai0"; //asrc-controller = <&asrc0>;//自定义,依据需要 codec-master; }; sound-sai1-card { compatible = "fsl,imx-sai-machine"; model = "sai1-card"; cpu-dai = <&sai1>; audio-codec = <&codec_demo1>;//声卡驱动 codec_dai_str = "codec-sai1"; //asrc-controller = <&asrc1>;//自定义,依据需要 codec-master; }; // ESAI sound-esai0-card { compatible = "fsl,imx-esai0-machine"; model = "esai-card"; esai-controller = <&esai0>; audio-codec = <&codec_esai_demo>;//声卡驱动 //asrc-controller = <&asrc0>;//自定义,依据需要 codec-master; clocks = <&clk IMX8QXP_AUD_MCLKOUT0>; clock-names = "mclk"; power-domains = <&pd_mclk_out0>; assigned-clocks = <&clk IMX8QXP_AUD_MCLKOUT0>; assigned-clock-rates = <12288000>; status = "okay"; }; 声卡的参考驱动: 代码: sound/soc/fsl/imx-wm8960.c SAI声卡: 代码: // machine 部分代码 sound/soc/fsl/imx-sai-audio.c 参考代码: sound/soc/fsl/imx-wm8960.c CPU DAI: sound/soc/fsl/fsl_esai.c Platform: sound/soc/fsl/imx-pcm-dma-v2.c ESAI声卡: 代码: // machine 部分代码 sound/soc/fsl/imx-esai0-audio.c 参考代码: sound/soc/fsl/imx-cs42888.c CPU DAI: sound/soc/fsl/fsl_esai.c Platform: sound/soc/fsl/imx-pcm-dma-v2.c sound/soc/fsl/imx-pcm-dma.c ================================================================================= 声卡的调试: 1. 查看声卡的配置信息 /sys/kernel/debug/regmap 59010000.esai 59050000.sai 59820000.sai 59840000.amix 59040000.sai 59060000.sai 59830000.sai 2. 查看声卡的信息 $ls /proc/asound $cat /proc/asound/cards 0 [sai0card ]: sai0-card - sai0-card sai0-card 1 [sai1card ]: sai1-card - sai1-card sai1-card 3 [esaicard ]: esai-card - esai-card esai-card 3. 查看声卡的设备 ls /dev/snd 4. 查看sys设备file ls /sys/class/sound 5. 调试工具,tinycap/tinyplay 播放:tinyplay /sdcard/test.wav -D 0 //-D 0 声卡1播放 录音:tinycap sdcard/test-rec.wav -D 0 -d 16 //-D0 声卡1 录音 具体参数,要看需要。