You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

i.MX8MP平台RT5640从Codec无声音及I2C映射、时钟问题求助

i.MX8MP定制板双RT5640音频Codec从设备启用问题求助

问题概述

我正在开发一款基于i.MX8MP SoC的定制板,板载两片RT5640音频Codec芯片(分为主、从设备)。目前已完成基础音频移植,从设备RT5640能在aplay -l中显示,但无法播放音频和录音,特此求助还需配置哪些项以启用该从设备。

硬件连接与I2C映射疑惑

  • 从设备连接I2C4总线,使用SAI3接口;主设备连接I2C3总线,使用SAI2接口
  • 在imx8mp.dtsi文件中发现如下映射关系:
gpio0 = &gpio1;
gpio1 = &gpio2;
gpio2 = &gpio3;
gpio3 = &gpio4;
gpio4 = &gpio5;
i2c0 = &i2c1;
i2c1 = &i2c2;
i2c2 = &i2c3;
i2c3 = &i2c4;
i2c4 = &i2c5;
i2c5 = &i2c6;
  • 我将RT5640节点添加到&i2c4下,编译镜像后反编译dtb文件,发现音频Codec节点位于i2c-3下,对此I2C总线映射存在疑惑,望解惑。

已编写的DTS代码片段

&i2c4 {
    clock-frequency = <400000>;
    pinctrl-names = "default";
    pinctrl-0 = <&pinctrl_i2c4>;
    status = "okay";
    
    codec: rt5640@1c {
        compatible = "realtek,rt5640";
        reg = <0x1c>;
        clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIO_BLK_CTRL_SAI3_MCLK1>;
        clock-names = "mclk";
//      interrupt-parent=<&gpio1>;
        interrupts=<11  IRQ_TYPE_LEVEL_HIGH>;
        realtek,in1-differential = "true";
        realtek,in2-differential = "false";
        realtek,in3-differential = "true";
        realtek,jack-detect-source = <0>;
        SPKVDD1-supply = <&reg_audio_pwr>;
        status = "okay";
    };
    
};
sound-rt5640 {
        compatible = "fsl,imx-audio-rt5640";
        model = "rt5640-audio";
        audio-cpu = <&sai3>;
        audio-codec = <&codec>;
        audio-ascr =<&easrc>;
        audio-routing =
            "Headphone Jack", "HPOL",
            "Headphone Jack", "HPOR",
            "IN2P", "Mic Jack",
            "IN2N", "Mic Jack",
            "Mic Jack", "MICBIAS1";
         };
&sai2 {
    #sound-dai-cells = <0>;
    pinctrl-names = "default";
    pinctrl-0 = <&pinctrl_sai2>;
    assigned-clocks = <&clk IMX8MP_CLK_SAI2>;
    assigned-clock-parents = <&clk IMX8MP_AUDIO_PLL1_OUT>;
    assigned-clock-rates = <12288000>;
    clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIO_BLK_CTRL_SAI2_IPG>, <&clk IMX8MP_CLK_DUMMY>,
        <&audio_blk_ctrl IMX8MP_CLK_AUDIO_BLK_CTRL_SAI2_MCLK1>, <&clk IMX8MP_CLK_DUMMY>,
        <&clk IMX8MP_CLK_DUMMY>;
    clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3";
    fsl,sai-mclk-direction-output;
    status = "okay";
};

&sai3 {
    pinctrl-names = "default";
    pinctrl-0 = <&pinctrl_sai3>;
    assigned-clocks = <&clk IMX8MP_CLK_SAI3>;
    assigned-clock-parents = <&clk IMX8MP_AUDIO_PLL1_OUT>;
    assigned-clock-rates = <12288000>;
    clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIO_BLK_CTRL_SAI3_IPG>, <&clk IMX8MP_CLK_DUMMY>,
         <&audio_blk_ctrl IMX8MP_CLK_AUDIO_BLK_CTRL_SAI3_MCLK1>, <&clk IMX8MP_CLK_DUMMY>,
         <&clk IMX8MP_CLK_DUMMY>;
    clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3";
    fsl,sai-mclk-direction-output;
    status = "okay";
};

播放错误信息

尝试播放wav文件时,始终出现错误:unsupported clock setting 44100 for dai 0,调整采样率格式后问题依旧。


内容的提问来源于stack exchange,提问作者Nikita Gupta

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 11:05:55