imx8 Android9 tinyplay_hal

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

imx8 Android9 tinyplay_hal

1,314 Views
CheLL
Contributor III

Hello Everyone:

目前使用的环境是安卓9,

仿照wm8524,在/android_build/vendor/nxp-opensource/imx/alsa目录下添加了

config_aw8838.h,然后在tinyplay_hal.c添加了
#include "config_aw8838.h"
#define SUPPORT_CARD_NUM 20

/*"null_card" must be in the end of this array*/
struct audio_card *audio_card_list[SUPPORT_CARD_NUM] = {
&wm8958_card,
&wm8962_card,
&hdmi_card,
/* &usbaudio_card, */
&spdif_card,
&cs42888_card,
&wm8960_card,
&sii902x_card,
&rpmsg_card,
&wm8524_card,
&cdnhdmi_card,
&xtor_card,
&ak4458_card,
&ak5558_card,
&ak4497_card,
&sgtl5000_card,
&xtor_pico_card,
&rt5645_card,
&micfil_card,
&aw8838_card,
&null_card,
};

发现这样添加并没有作用

目前的codec芯片有三个Kcontrol

evk_8mm:/ # tinymix
Mixer name: 'aw8838-audio'
Number of controls: 3
ctl type num name value

0 ENUM 1 aw8838_speaker_switch On
1 ENUM 1 aw8838_receiver_switch Off
2 INT 1 aw8838_rx_volume 0

 

是否还要修改tinyplay_hal.c别的地方来调用Kcontrol,还是要修改别的文件,如果有大佬做过类似的

请教一下移植的方法?应该怎么正确的将带Kcontrol的codec芯片跟Android的hal层联系在一起。

 

Best Wishes

CheLL

 

0 Kudos
4 Replies

1,293 Views
weidong_sun
NXP TechSupport
NXP TechSupport

那你的driver name和name,都填:aw8838-audio 就行。

0 Kudos

1,288 Views
CheLL
Contributor III

Hi~

多谢解答,我看了下wm8524,tinymix下没有Kcontrol的列表,看来用的aw8838还是和wm8524有区别的,

关于这点区别,

是否需要tinyplay_hal.c添加aw8838相关的Kcontrol的代码,如果需要的话,添加的示例及函数说明能大概说下吗?

因为现在看了下tinyplay_hal.c的代码有点复杂,驱动应该是被动方,被控制Kcontrol的。这部分逻辑有点复杂。

拜托

Best Wishes

CheLL

0 Kudos

1,309 Views
weidong_sun
NXP TechSupport
NXP TechSupport

Hi CheLL,

你可以看到在tinyalsa_hal.c中的特点,这里不会直接起控制codec内部的各个路径开关(这些是driver负责的,而不是hal 层)。HAL层关注的就是,你声卡的输入设备和输出设备是什么,你看着2个函数及其函数体:

static void select_output_device(struct imx_audio_device *adev)

static void select_input_device(struct imx_audio_device *adev)

根据你的tinymix得到的结果,就是一个speaker输出,这和wm8524是一样的。所以,除了上面你修改的部分,tinyalsa_hal.c里不用再修改其他地方了。

没有找到aw8838的资料,但是看tinymix结果,应该接口上和wm8524基本一样。所以,config_aw8838.h的内容也差不多,至于里面的name和driver name,你可以这样查看一下:

# cat /proc/asound/cards

 

Hope above information is helpful to you.

Have a nice day!

B.R,

Weidong

 

 

0 Kudos

1,305 Views
CheLL
Contributor III

Hi weidong_sun:

非常感谢您的回答,cat的结果如下。

evk_8mm:/ # cat /proc/asound/cards
0 [aw8838audio ]: aw8838-audio - aw8838-audio
aw8838-audio
evk_8mm:/ #

需要怎么修改请教您一下,name和driver name是什么?

 

Best Wishes

CheLL

0 Kudos