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-9DA6/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同时有声音输出了,麦克风录音有杂音,后续有需求再改。