Hello Everyone:
开发板使用的是imx8mm,上面的芯片是wm8524,安卓上层的APP能够播放声音。
现在用imx8mm重新画了一块板子,重新移植了一个新的codec音频驱动aw8838,和平台的衔接基本完成,如何将这个新的驱动和Android方面的文件联系起来,这样上层的播放软件能够播放音乐文件,底层能够播放声音?
Android目前是Android9的,需要修改哪些文件,怎么修改,还请各位大佬指导一下。万分感谢!
Best Wishs
CheLL
Hi CheLL,
对于android 9 BSP,audio Hal 层在 ~/android_build/vendor/nxp-opensource/imx/alsa中,你可以看到这里所有的声卡结构:
1. 每个声卡都有一个config_xxx.h文件,wm8524是config_wm8524.h文件。
那么对你的codec aw8838,应该也要创建一个config_aw8838.h文件,文件内容参考config_wm8524.h文件内容。
(前提是:你的aw8838 codec的输入输入方式与wm8524类似,比如wm8524只有三线,Bitclk / LRCLK / SDIN,只能播放,不能录音)
2. 在tinyalsa_hal.c中,把你的声卡加入进去
(1)#include "config_aw8838.h"
(2)struct audio_card *audio_card_list = { ......}
类似这样:
struct audio_card *audio_card_list[SUPPORT_CARD_NUM] = {
&wm8958_card,
&wm8962_card,
&hdmi_card,
/* &usbaudio_card, */
&spdif_card,
&cs42888_card,
&wm8960_card,
&wm8750_card,
&sii902x_card,
&rpmsg_card,
&wm8524_card,
&aw8838_card,
&cdnhdmi_card,
&xtor_card,
&ak4458_card,
&ak5558_card,
&ak4497_card,
&sgtl5000_card,
&xtor_pico_card,
&rt5645_card,
&micfil_card,
&null_card,
};
大体上需要上面的步骤,更多的一些细节,请注意查看代码,边调试边修改代码即可。
Have a nice day!
B.R,
Weidong