audio一般集成在pmic上,如

mic(mic1_p,mic1_n,mic_bias 主mic)
aux_mic(mic2_p,mic2_n,mic_bias,辅mic,用来降噪,手机不一定有该mic)
headphone(headmic_bias,headmic_p,headmic_n,headmic_in_det,headset_in_det,hp_l,hp_r,kamp_vcom 耳机)
speaker(spk_n,spk_p 下喇叭 系统声音/听音乐,电话免提)
earpiece(rev_p,rev_n 上喇叭 打电话)
Android选择相应的设备后,会传递给hal层,hal层根据表格记录的通道,传递相应的参数给内核,如
<device name="builtin-mic">
<path name="on">
<ctl name="ADC LRCLK Select" val="invert"/>
<ctl name="ADC1 LRCLK Select" val="invert"/>
<ctl name="ADCL Mixer MainMICADCL Switch" val="1" />
<ctl name="Mic Function" val="1" />
</path>
<path name="off">
<ctl name="Mic Function" val="0" />
<ctl name="ADCL Mixer MainMICADCL Switch" val="0" />
<ctl name="ADC1 LRCLK Select" val="normal"/>
<ctl name="ADC LRCLK Select" val="normal"/>
</path>
</device>
<device name="back-mic">
<path name="on">
<ctl name="ADCR Mixer AuxMICADCR Switch" val="1" />
<ctl name="Aux Mic Function" val="1" />
</path>
<path name="off">
<ctl name="Aux Mic Function" val="0" />
<ctl name="ADCR Mixer AuxMICADCR Switch" val="0" />
</path>
</device>
<device name="headset-in">
<path name="on">
<ctl name="ADCL Mixer HPMICADCL Switch" val="1" />
<ctl name="ADCR Mixer HPMICADCR Switch" val="1" />
<ctl name="HP Mic Function" val="1" />
</path>
<path name="off">
<ctl name="HP Mic Function" val="0" />
<ctl name="ADCL Mixer HPMICADCL Switch" val="0" />
<ctl name="ADCR Mixer HPMICADCR Switch" val="0" />
</path>
</device>
<device name="speaker">
<path name="on">
<ctl name="SPKL Mixer DACLSPKL Switch" val="1" />
<ctl name="Speaker Function" val="1" />
</path>
<path name="off">
<ctl name="Speaker Function" val="0" />
<ctl name="SPKL Mixer DACLSPKL Switch" val="0" />
</path>
</device>
<device name="headphone">
<path name="on">
<ctl name="HPL EAR Sel" val="HPL" />
<ctl name="HPL Mixer DACLHPL Switch" val="1" />
<ctl name="HPR Mixer DACRHPR Switch" val="1" />
<ctl name="HeadPhone Function" val="1" />
</path>
<path name="off">
<ctl name="HeadPhone Function" val="0" />
<ctl name="HPL Mixer DACLHPL Switch" val="0" />
<ctl name="HPR Mixer DACRHPR Switch" val="0" />
<ctl name="HPL EAR Sel" val="EAR" />
</path>
</device>
<device name="earpiece">
<path name="on">
<ctl name="EAR Mixer DACLEAR Switch" val="1"/>
<ctl name="Earpiece Function" val="1" />
</path>
<path name="off">
<ctl name="Earpiece Function" val="0" />
<ctl name="EAR Mixer DACLEAR Switch" val="0"/>
</path>
</device>
在调试阶段,我们也可以通过tinymix来切换通道,tinycap采集声音,tinyplay播放 声音,如使用 听筒播放音乐,根据上表(每个平台的配置都不一样,名字可能是tiny_hw.xml,mixer_paths_skuc.xml等)
tinymix "EAR Mixer DACLEAR Switch" "1"
tinymix "Earpiece Function" "1"
tinyplay /data/江南.wav
|