imx8mm的codec如何添加到Android的hal层

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

imx8mm的codec如何添加到Android的hal层

1,418 次查看
CheLL
Contributor III

Hello Everyone:

     开发板使用的是imx8mm,上面的芯片是wm8524,安卓上层的APP能够播放声音。

     现在用imx8mm重新画了一块板子,重新移植了一个新的codec音频驱动aw8838,和平台的衔接基本完成,如何将这个新的驱动和Android方面的文件联系起来,这样上层的播放软件能够播放音乐文件,底层能够播放声音?

    Android目前是Android9的,需要修改哪些文件,怎么修改,还请各位大佬指导一下。万分感谢!

 

Best Wishs

CheLL

0 项奖励
回复
2 回复数

1,413 次查看
weidong_sun
NXP TechSupport
NXP TechSupport

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

0 项奖励
回复

1,402 次查看
CheLL
Contributor III

Hi weidong_sun:

感谢您的回答,

我看了下wm8524是没有Kcontrol的,

如果有Kcontrol的codec如何修改tinyplay_hal.c,应该如何将播放和控制音量的Kcontrol的代码添加上去?

 

Best Wishes

CheLL

0 项奖励
回复