大家好、
需要您的帮助。
我们正在 IMX8MM EVK 板和 A11代码上开发音频模块
更改:
+ sound-tlv320aic31xx{
+ 兼容="简单音频卡";
+ simple-audio-card、name ="tlv320aic31xx-Codec";
+ 简单音频卡、格式="I2S";
+ simple-audio-card、frame-master =<&cpuda2>;
+ simple-audio-card、bitclock-master =<&cpuda2>;
+
+ 简单音频卡、小工具=
+ "麦克风"、"麦克风插孔"、
+ "耳机"、"耳机插孔"、
+ "扬声器"、"扬声器插孔";
+ 简单音频卡,路由=
+ "MIC1LP"、"麦克风插孔"、
+ "MIC1RP"、"麦克风插孔"、
+"MIC1LP" 、"MICBIAS"、
+"MIC1RP" 、"MICBIAS"、
+ "耳机插孔"、"HPL"、
+ "耳机插孔"、"HPR"、
+ "扬声器插孔"、"SPL"、
+ "扬声器插孔"、"SPR";
+
+ cpuda2:简单音频卡、CPU{
+ Sound-Dai =<(赛义1);
+} ;
+
+ 简单音频卡、编解码器{
+ sound-dai =<&tlv320aic31xx>;
+ 系统时钟频率=<12000000>;
+
+} ;
+} ;
I2C3:
+ tlv320aic31xx:编解码器@18{
+ compatible ="ti、tlv320aic3110";
+ reg =<0x18>;
+ pinctrl-0 =<&pinctrl_audio_reset>;
+ RESET-GPIO =<&GPIO4 1 GPIO_ACTIVE_LOW>;
+ #sound-di-cells =<0>;
+ HPVDD-SUPPLY =<_3p3v>;
+ SPRVDD 电源=<_3p3v>;
+ SPLVDD 电源=<_3p3v>;
+ AVDD 电源=<_3p3v>;
+ IOVDD 电源=<_3p3v>;
+ DVDD 电源=<_1p8v>;
+} ;
Saa1{(&S)
+ #sound-di-cells =<0>;
+ pinctrl-names ="default";
+ pinctrl-0 =<&P pinctrl_sa1>;
+ FSL、SAI-MCLK 方向输出;
+ 分配的时钟=<&clk IMX8MM_CLK_SAI1>;
+ 分配的时钟父级=<&clk IMX8MM_AUDIO_PLL1_OUT>;
+ 分配的时钟速率=<49152000>;
+ STATUS ="确定";
+};
+ pinctrl_audio_reset:pinctrl_audio_reset{
+ FSL、引脚=<
+ MX8MM_IOMUXC_SAI1_RXC_GPIO4_IO1 0x13
+ >;
+} ;
+
pinctrl_sai1:sai1grp{
FSL、引脚=<
MX8MM_IOMUXC_SAI1_MCLK_SAI1_MCLK 0xd6
MX8MM_IOMUXC_SAI1_TXFS_SAI1_TX_SYNC 0xd6
- MX8MM_IOMUXC_SAI1_RXD7_SAI1_TX_SYNC 0xd6
+/*MX8MM_IOMUXC_SAI1_RXD7_SAI1_TX_SYNC 0xd6*/
MX8MM_IOMUXC_SAI1_TXC_SAI1_TXC_BCLK 0xd6
MX8MM_IOMUXC_SAI1_TXD0_SAI1_TX_DATAA0 0xd6
- MX8MM_IOMUXC_SAI1_TXD1_SAI1_TX_Data1 0xd6
+ /* MX8MM_IOMUXC_SAI1_TXD1_SAI1_TX_Data1 0xd6
MX8MM_IOMUXC_SAI1_TXD2_SAI1_TX_DATA2 0xd6
MX8MM_IOMUXC_SAI1_TXD3_SAI1_TX_DATA3 0xd6
MX8MM_IOMUXC_SAI1_TXD4_SAI1_TX_DATAA4 0xd6
MX8MM_IOMUXC_SAI1_TXD5_SAI1_TX_Data5 0xd6
MX8MM_IOMUXC_SAI1_TXD6_SAI1_TX_DATAA6 0xd6
- MX8MM_IOMUXC_SAI1_TXD7_SAI1_TX_DATAA7 0xd6
+ MX8MM_IOMUXC_SAI1_TXD7_SAI1_TX_DATAA7 0xd6 */
+ MX8MM_IOMUXC_SAI1_RXD0_SAI1_RX_DATAA0 0xd6
>;
};
输出:
1.编解码器已正确注册
2. MCLK 为11.2MHz 、BCLK 2.8Mhz 和 WCLK 44KHz
|EVK_8mm:/# i2cdump -f -y 2 0x18
0 1 2 3 4 5 6 7 8 9 A b c d e f 0123456789abcdef
i2cdump:I2C_READ_BYTE:无此类器件或地址
1|EVK_8mm:/# i2cdetect -y 2.
0 1 2 3 4 5 6 7 8 9 A b c d e f
00: ------------ ------------ ------
10:------------ ------ UU -------------- ----
20:UU ---------- ------------ ------------
30:------------ ------------ ------------ --
40:------------ ------------ ------ 4D ----
50:---------- ------------ ------------ --
60:------------ -------- 69 ---------------- --
70:------------ ------
错误:
[3.449149] tlv320aic31xx-codec 2-0018:无法同步寄存器0x9f-0x9f。 -6.
[3.456537] tlv320aic31xx-codec 2-0018:无法恢复高速缓存:-6
[3.873907] #0:tlv320aic31xx-编解码器
[190.650287] tlv320aic31xx-codec 2-0018:asoc:tlv320aic31xx-codec.2-0018上的 SoC_component_read_no_lock 错误:-16
[190.661004] tlv320aic31xx-codec 2-0018:asoc:tlv320aic31xx-codec.2-0018上的 SoC_component_read_no_lock 错误:-16