ES8388录音没有声音问题解决

使用arecord录音没有报错,录出来的声音没有波形。

Amixer -c 3 看到左右声道获取音量值为0

Simple mixer control 'Left Channel',0

  Capabilities: cvolume cvolume-joined

  Capture channels: Mono

  Limits: Capture 0 - 8

  Mono: Capture 0 [0%] [0.00dB]

Simple mixer control 'Right Channel',0

  Capabilities: cvolume cvolume-joined

  Capture channels: Mono

  Limits: Capture 0 - 8

  Mono: Capture 0 [0%] [0.00dB]

Linux 中设置了左右省道的值。

amixer -c $card cset name=’Left Channel Capture Volume’ 4 >/dev/null

amixer -c $card cset name=’Right Channel Capture Volume’ 4 >/dev/null

使用amixer设置左右声道值后可以录音

dump es8388设置前和设置后寄存器值,可以看到09和0A值发生了变化。

将09和0A分别写入44,40,

修改

--- a/sound/soc/codecs/es8323.c

+++ b/sound/soc/codecs/es8323.c

@@ -769,8 +769,8 @@ static int es8323_probe(struct snd_soc_component *component)

        snd_soc_component_write(component, 0x04, 0x00);

        snd_soc_component_write(component, 0x06, 0xC3);

        snd_soc_component_write(component, 0x19, 0x02);

-       snd_soc_component_write(component, 0x09, 0x00);

-       snd_soc_component_write(component, 0x0A, 0x00);

+       snd_soc_component_write(component, 0x09, 0x44);

+       snd_soc_component_write(component, 0x0A, 0x40);

修改后重新编译kernel,烧录镜像后MIC录音就有声音了。