IMX93 音频解码芯片es8388的驱动适配(未整理笔记)
使用的音频解码芯片是es8388:
驱动:
dmesg会有加载的声卡日志:
- dmesg |grep -i ALSA -A 10
编解码器(Codec)
查看声卡:
- cat /proc/asound/cards
边录边播:-d5 5秒
- arecord -d5 -Dhw:0,0 -r48000 -c2 -fS16_LE -traw | aplay -Dhw:0,0 -r48000 -c2 -fS16_LE
播放48khz 16bit的立体音:
- aplay -r 48000 -f S16_LE -c 2 weed-eater-16bit-48khz-zoom-r24-73143.mp3
soc的音频部分:
- yangx@u20:~/linux/IMX93/IAC-IMX93XX-MB-BETA-V1_00/kernel$ git diff arch/arm64/configs/imx93_qiyang_defconfig
- diff --git a/arch/arm64/configs/imx93_qiyang_defconfig b/arch/arm64/configs/imx93_qiyang_defconfig
- index 68593902d49a..785189946777 100644
- --- a/arch/arm64/configs/imx93_qiyang_defconfig
- +++ b/arch/arm64/configs/imx93_qiyang_defconfig
- @@ -668,10 +668,10 @@ CONFIG_SND_SOC_FSL_EASRC=m
- CONFIG_SND_SOC_FSL_XCVR=m
- CONFIG_SND_SOC_FSL_ESAI_CLIENT=y
- CONFIG_SND_SOC_FSL_RPMSG=m
- -CONFIG_SND_IMX_SOC=m
- +CONFIG_SND_IMX_SOC=y
- CONFIG_SND_SOC_IMX_SGTL5000=m
- CONFIG_SND_SOC_IMX_SPDIF=m
- -CONFIG_SND_SOC_FSL_ASOC_CARD=m
- +CONFIG_SND_SOC_FSL_ASOC_CARD=y
- CONFIG_SND_SOC_IMX_AUDMIX=m
- CONFIG_SND_SOC_IMX_HDMI=m
- CONFIG_SND_SOC_IMX_CARD=m
设备树:
hp-det-gpio 是耳机检测
spk-con-gpio 是扬声器的连接
spk-con-gpio 是扬声器的连接
fsl,sai-mclk-direction-output;
这个属性表明 SAI1 设备的主时钟(MCLK)是输出的。MCLK通常用于同步外部音频设备,例如音频编解码器。
原理图:
音频放大器(AMP)电路
对应 GPIO_AUD_AMP_nSD 引脚使能
数字音频接口用于向ES8388输入DAC数据,并从中输出ADC数据。数字音频接口使用四个引脚:
ASDOUT:ADC数据输出
DSDIN :DAC数据输入
LRCK : Left/Right data alignment clock
SCLK :位时钟,用于同步
sys用户空间:
- cat /proc/asound/devices
软件播放:
- # 显示声卡列表
- aplay -l
引脚图:
时钟比率:
为32倍,或者24倍,或者其他查看RM手册。
根设备树:
分频出来的时钟,实际上使用的时钟:
es8388的音频时钟设置:
44.1khz的时钟算出来的 第一行 = 第二行 X 第三行。
第一行的频率可以放到sai1中的指定频率。
8MP的分频:
本文来自博客园,作者:潇汀,转载请注明原文链接:https://www.cnblogs.com/allalonewithyou/p/18010708,个人邮箱:yaonie4444@foxmail.com