Audio驱动移植

Audio驱动移植

一、参数
1、音频参数位置:alps\mediatek\custom\PorjectName\cgen\inc
当硬件将调试好的音频参数发过来的时候,将各个文件和此文件夹里面的相对应文件进行对比移植。
2、改动文件
一般来说,会修改到以下几个文件:
audio_acf_default.h audio_custom.h
audio_ver1_volume_custom_default.h
audio_volume_custom_default.h
med_audio_default.h
sph_coeff_default.h
sph_coeff_dmnr_default.h

二、具体问题
1):\alps\mediatek\custom\($proj)\hal\audioflinger\audio\audio_custom_exp.h
2):\alps\mediatek\config\($proj)\ProjectConfig.mk
文件配置如下:
1.使用内部PA:
把USING_EXTAMP_HP注释掉: //#define USING_EXTAMP_HP
CUSTOM_KERNEL_SOUND = amp_6320pmic_spk
2.使用外部PA:
2.1 外部PA接在SPK_L
把USING_EXTAMP_HP注释掉: //#define USING_EXTAMP_HP
把CUSTOM_KERNEL_SOUND配置为相应PA驱动的文件夹名,然后实做具体的PA驱动。
例子:使用yad的外部PA,则CUSTOM_KERNEL_SOUND = amp_yad,然后实做
\alps\mediatek\custom\common\kernel\sound\amp_yad
2.2 外部PA接在HPL或HPR
定义上USING_EXTAMP_HP: #define USING_EXTAMP_HP
把CUSTOM_KERNEL_SOUND配置为相应PA驱动的文件夹名,然后实现具体的PA驱动。


HEADSET
------------------------------------------------------------------------------------------------------------
*********************************************
CUSTOM_KERNEL_HEADSET = accdet
MTK_HEADSET_ICON_SUPPORT = yes
*********************************************
mediatek/custom/$ProjectName/kernel/headset/accdet/accdet_custom.h

Q:音量下键正常启动后无法使用,在Factory Mode里可以正常使用。
A:经分析,发现是在kd_camera_hw.h 有复用到GPIO108(也就是VolumeDown的GPIO值),#ifndef GPIO_CAMERA_LDO_EN_PIN
#define GPIO_CAMERA_LDO_EN_PIN GPIO108
#endif
虽然Camera并没有用到此宏定义,但是MATV里面有调用到,在DWS中如果没有定义GPIO_CAMERA_LDO_EN_PIN,会强制把GPIO108也就是col1拉低,影响音量下键正常使用,而把这段代码直接注释掉会引起MATV的编译问题,所以直接将GPIO_CAMERA_LDO_EN_PIN定义为一个没有在用的GPIO即可。

通话异常,需要查看Modem Log

: 4702626 [Primitive] 13:47:45:333 2013/05/14 MOD_MPAL_2->MOD_RRM_2 GAS_COMMON_SAP MSG_ID_MPAL_RR_SERV_DEDI_MEAS_IND
Local_Parameter --> Len = 32, Addr = 0xF0C97CD8
mpal_rr_serv_dedi_meas_ind_struct = (struct)
ref_count = 0x01
msg_len = 0x0020
rlac_full_in_quarter_dbm = 0xfe70------------value=-100db
rlac_sub_in_quarter_dbm = 0xfea5
rxqual_full_avg = 0x07----------------------------value=7
rxqual_sub_avg = 0x00
dtx_used = 0x00

4653213 [Primitive] 13:43:57:292 2013/05/14 MOD_MPAL_2->MOD_RRM_2 GAS_COMMON_SAP MSG_ID_MPAL_RR_SERV_DEDI_MEAS_IND
Local_Parameter --> Len = 32, Addr = 0xF0C96E38
mpal_rr

_serv_dedi_meas_ind_struct = (struct)
ref_count = 0x01
msg_len = 0x0020
rlac_full_in_quarter_dbm = 0xfe93--------value=-91db
rlac_sub_in_quarter_dbm = 0xfeb1
rxqual_full_avg = 0x07-------------------------value=7 信号质量差
rxqual_sub_avg = 0x00
dtx_used = 0x00

: 4653837 [Primitive] 13:44:00:171 2013/05/14 MOD_MPAL_2->MOD_RRM_2 GAS_COMMON_SAP MSG_ID_MPAL_RR_SERV_DEDI_MEAS_IND
Local_Parameter --> Len = 32, Addr = 0xF0C995A0
mpal_rr_serv_dedi_meas_ind_struct = (struct)
ref_count = 0x01
msg_len = 0x0020
rlac_full_in_quarter_dbm = 0xfe6d----------value=-101db
rlac_sub_in_quarter_dbm = 0xfead
rxqual_full_avg = 0x07----------------------------value=7 信号质量差
rxqual_sub_avg = 0x00
dtx_used = 0x00

在accdet.c和accdet_custome.h为了实现一些功能有用到很多宏开关,把目前相应的宏开关介绍如下:
1: ACCDET_EINT
是否启用了外部中断来侦测是否有耳机插入和拔出

2: ACCDET_MULTI_KEY_FEATURE
是否支持使用A/D来侦测key,这里要注意的是即使耳机只有一个key若是在89的平台也需打开此宏开关

3: ACCDET_LOW_POWER
当插入三段耳机6s后自动关闭micbias,达到省电的目的

以上三个宏可以看成一个宏

4: ACCDET_28v_MODE
在我们内部有一个switch是针对外部耳机是用2.8还是1.9V的切换开关,美标的是2.8V, 国标的是1.9V

5: ACCDET_PIN_RECOGNIZATION
美标的插孔识别国标的耳机,国标的耳机识别美标的插孔,目前这个功能还没有实现,此宏不能打开

6: ACCDET_SHORT_PLUGOUT_DEBOUNCE
ACCDET_SHORT_PLUGOUT_DEBOUNCE_CN 25
拔出耳机后有时候图标会再弹出后在消失, 主要解决类似bug

7: ACCDET_PIN_SWAP
美标的插孔识别国标的耳机,这个时候需要借助accdet的一个上拉电阻,当有这种情形的时候AB一直为0,达到检测到的目的,当然也有误判的时候, 4段耳机按住按键插入后会有误判

美标四极接法,即:左/右声道/地线/麦系统。国标耳机左/右声道/麦系统/地线。

相关文档
最新文档