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 = <®_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
相关产品推荐
相关产品推荐

