一、硬件
上面红框是耳机插口,下面红框是Speaker插口。
首先,接上Speaker后,在Android 4.4上,耳机和Speaker都可以正常工作;但是,烧录R16开发板tina系统LCD调试编译的最新Tina系统,不工作。
二、调试
表面上,执行命令:
# cat cards /proc/asound/cards
0 [audiocodec ]: audiocodec - audiocodec
audiocodec
以上是
Android 4.4的显示,在Tina上则是:sndcodec。查看代码发现,前者声卡实现:
linux-3.4\sound\soc\sunxi\audiocodec\sunxi_sndcodec.c
static struct snd_soc_card snd_soc_sunxi_sndpcm = {
.name = "audiocodec",
.owner = THIS_MODULE,
.dai_link = &sunxi_sndpcm_dai_link,
.num_links = 1,
};
后者声卡定义:
linux-3.4\sound\soc\sunxi\audiocodec\sun8iw5_machine.c
static struct snd_soc_card snd_soc_sunxi_sndpcm = {
.name = "sndcodec",
.owner = THIS_MODULE,
.dai_link = sunxi_sndpcm_dai_link,
.num_links = ARRAY_SIZE(sunxi_sndpcm_dai_link),
.dapm_widgets = sunxi_ac_dapm_widgets,
.num_dapm_widgets = ARRAY_SIZE(sunxi_ac_dapm_widgets),
.dapm_routes = audio_map,
.num_dapm_routes = ARRAY_SIZE(audio_map),
.controls = ac_pin_controls,
.num_controls = ARRAY_SIZE(ac_pin_contr