Deal NXP :
软件环境 :Android7.1.1 BSP :kernel 4.10.0
硬件IMX6Q,不使用asrc,只需要esai接口
您好:正在调试IMX6q 的esai audio的放音,现在只用到三个引脚,如下dts配置(已经查了好几遍,没有其他驱动复用这三个引脚),bitclk 和lrclk(44.1K)在用tinyplay播放音乐的时候都有正确的时钟输出,但数据引脚TX2_RX3没有波形变化,在dma完成函数里加打印,也可以看到打印在播放的时候不停地输出。
dts如下:
dspsi47920_codec: dspsi47920_codec {
#sound-dai-cells = <0>;
compatible = "dspsi47920-codec-play";
};
sound-si47920-esai {
compatible ="fsl,imx-audio-si47920";
model = "imx-si47920";
esai-controller = <&esai>;
// asrc-controller = <&asrc>;//not uesd asrc
audio-codec = <&dspsi47920_codec>;
};
&esai {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_esai>;
assigned-clocks = <&clks IMX6QDL_CLK_ESAI_SEL>,
<&clks IMX6QDL_CLK_ESAI_EXTAL>;
assigned-clock-parents = <&clks IMX6QDL_CLK_PLL4_AUDIO_DIV>;
assigned-clock-rates = <722534400>, <22579200>;
status = "okay";
fsl,esai-synchronous;
};
pinctrl_esai: esaigrp {
fsl,pins = <
MX6QDL_PAD_ENET_CRS_DV__ESAI_TX_CLK 0x1b030
MX6QDL_PAD_ENET_RXD1__ESAI_TX_FS 0x1b030
MX6QDL_PAD_ENET_TXD1__ESAI_TX2_RX3 0x1b030
>;
};
期待你的尽快回答,已经搁置还几天。非常感谢。
HI jimmychan :
不需要asrc是可以的,如果默认是从TX0输出的话,esai 的代码是不需要修改的,由于我们的硬件是从ESAI_TX2输出,esai的驱动代码是需要稍微改动一下。
Dear NXP:
我这里实在没有找到原因。
我做了个实验,将MX6QDL_PAD_ENET_TXD1配置为普通的人GPIO功能 MX6QDL_PAD_ENET_TXD1__GPIO1_IO29
做如下的控制:
测量GPIO的引脚变化高低正常。
还请NXP同事辛苦分析一下,为何MX6QDL_PAD_ENET_TXD1__ESAI_TX2_RX3功能不正常。非常感谢!!!