1. sdk- 9.0 \kernel\arch\arm\configs\rockchip_defconfig
CONFIG_SND_SOC_ES8323= y
2. dts
sound: sound {
status = "okay" ;
compatible = "simple-audio-card" ;
simple- audio- card, format = "i2s" ;
simple- audio- card, name = "rockchip,es8323-codec" ;
simple- audio- card, mclk- fs = < 512 > ;
simple- audio- card, widgets =
"Microphone" , "Microphone Jack" ,
"Headphone" , "Headphone Jack" ;
simple- audio- card, routing =
"MIC1" , "Microphone Jack" ,
"MIC2" , "Microphone Jack" ,
"Microphone Jack" , "micbias1" ,
"Headphone Jack" , "HPOL" ,
"Headphone Jack" , "HPOR" ;
simple- audio- card, dai- link@0 {
format = "i2s" ;
cpu {
sound- dai = < & i2s> ;
} ;
codec {
sound- dai = < & es8323> ;
} ;
} ;
simple- audio- card, dai- link@1 {
format = "i2s" ;
cpu {
sound- dai = < & i2s> ;
} ;
codec {
sound- dai = < & hdmi> ;
} ;
} ;
} ;
hdmi_analog_sound: hdmi- analog- sound {
compatible = "rockchip,rk3288-hdmi-analog" ,
"rockchip,rk3368-hdmi-analog" ;
rockchip, model = "rockchip,es8323-codec" ;
rockchip, cpu = < & i2s> ;
rockchip, codec = < & es8323> , < & hdmi> ;
rockchip, widgets =
"Microphone" , "Microphone Jack" ,
"Headphone" , "Headphone Jack" ;
rockchip, routing =
"MIC1" , "Microphone Jack" ,
"MIC2" , "Microphone Jack" ,
"Microphone Jack" , "micbias1" ,
"Headphone Jack" , "HPOL" ,
"Headphone Jack" , "HPOR" ;
status = "disabled" ;
} ;
3.
console: / # cat / proc/ asound/ cards
0 [ rockchipes8323c] : rockchip_es8323 - rockchip, es8323- codec
rockchip, es8323- codec
console: / #
4. tinyplay mnt/ media_rw/ A63C- 9 DA6/ xxx. wav 指令播放音频,HDMI有声音输出,直接打开APP没有声音输出。
5. \sdk- 9.0 \hardware\rockchip\audio\tinyalsa_hal\audio_hw. c
static char * SPEAKER_NAME [ ] =
{
+ "rockchipes8323c" ,
"rockchiprk" ,
"realtekrt5651co" ,
"rockchipes8316c" ,
"rockchiprk809co" ,
"rockchiprt5640c" ,
} ;
. . . . . . . .
static bool is_hdmi_out_sound_card ( char * buf)
{
if ( buf == NULL )
return false;
- if ( strstr ( buf, "rockchiphdmi" ) && strstr ( buf, ":" ) ) {
+ if ( strstr ( buf, "rockchipes8323c" ) && strstr ( buf, ":" ) ) {
return true;
}
if ( strstr ( buf, "rkhdmidpsound" ) && strstr ( buf, ":" ) ) {
return true;
}
return false;
}
. . . . . . .
static char * MIC_NAME [ ] =
{
+ "rockchipes8323c" ,
"rockchiprk" ,
"realtekrt5651co" ,
"rockchipes8316c" ,
"rockchiprk809co" ,
"rockchiprt5640c" ,
} ;
. . . . . .
+ 732 #endif
- card = adev-> out_card[ SND_OUT_SOUND_CARD_HDMI] ;
+ card = adev-> out_card[ SND_OUT_SOUND_CARD_SPEAKER] ;
if ( card != ( int ) SND_OUT_SOUND_CARD_UNKNOWN) {
+ out-> pcm_device = 1 ;
out-> pcm[ SND_OUT_SOUND_CARD_HDMI] = pcm_open ( card, out-> pcm_device,
PCM_OUT | PCM_MONOTONIC, & out-> config) ;
if ( out-> pcm[ SND_OUT_SOUND_CARD_HDMI] &&
! pcm_is_ready ( out-> pcm[ SND_OUT_SOUND_CARD_HDMI] ) ) {
ALOGE ( "pcm_open(PCM_CARD_HDMI) failed: %s, card number = %d" ,
pcm_get_error ( out-> pcm[ SND_OUT_SOUND_CARD_HDMI] ) , card) ;
pcm_close ( out-> pcm[ SND_OUT_SOUND_CARD_HDMI] ) ;
return - ENOMEM;
}
6. 耳机有和HDMI同时有声音输出了,麦克风录音有杂音,后续有需求再改。