ASoC与V4L2驱动开发全解析
1. ASoC机器驱动架构与实现
1.1 音频设备配置
在音频设备驱动开发中, foo_hw_params() 函数用于配置编解码器(codec)和平台数字音频接口(DAI)的格式与时钟设置。以下是部分代码示例:
SND_SOC_DAIFMT_NB_NF |
SND_SOC_DAIFMT_CBM_CFM);
if (ret < 0)
return ret;
/* set the codec PLL */
ret = snd_soc_dai_set_pll(codec_dai,
WM8994_FLL1, 0,
pll_out,
params_rate(params) * 256);
if (ret < 0)
return ret;
/* set the codec system clock */
ret = snd_soc_dai_set_sysclk(codec_dai,
WM8994_SYSCLK_FLL1,
params_rate(params) * 256,
SND_SOC_CLOCK_IN);
if (ret < 0)
return ret;
return 0;
上述代码依次设置了DAI格式、编解码器的锁相环(PLL)以及系统时钟。若任何一步操作失败,函数将返回错误码。
1.2 声卡注册
声卡在内核中以 struct snd_soc
超级会员免费看
订阅专栏 解锁全文
17

被折叠的 条评论
为什么被折叠?



