在线时间4 小时
UID2100805
注册时间2014-6-11
NXP金币0
该用户从未签到
注册会员

- 积分
- 83
- 最后登录
- 1970-1-1
|

楼主 |
发表于 2014-6-13 16:15:35
|
显示全部楼层
回复:SGTL5000爆音問題(已解决)
應該說不算解決, 算是用改驅動的方法避掉這個問題
硬體有個PIN拉到喇叭, 此PIN為SABRESD_CODEC_PWN_EN => IMX_GPIO_NR(4, 10)
此PIN已被設為GPIO
然後爆音產生的點在sgtl5000.c的small_pop_event的SND_SOC_DAPM_PRE_PMD這個case
HIGH應該是1(true), LOW為0(false)
1. 所以在產生的爆音點上關閉喇叭(將此PIN拉HIGH), 需要mdelay(500), 不然爆音仍是會發生
case SND_SOC_DAPM_PRE_PMD:
gpio_set_value(SABRESD_CODEC_PWN_EN, true);
mdelay(500);
break;
2.在某個點關閉喇叭, 一定要在播放聲音時開啟喇叭(將此PIN拉LOW)
static int sgtl5000_pcm_hw_params(struct snd_pcm_substream *substream,
struct snd_pcm_hw_params *params,
struct snd_soc_dai *dai)
{
gpio_set_value(SABRESD_CODEC_PWN_EN, false);
struct snd_soc_pcm_runtime *rtd = substream->private_data
3.打完收工 |
|