深入探究ALSA SoC框架与V4L2视频驱动
ALSA SoC框架中的机器类驱动
在ALSA SoC框架里,机器类驱动的主要目的是将平台驱动和子设备驱动绑定在一起,同时定义音频数据的传输路径。下面我们详细探讨其实现步骤。
1. 配置编解码器DAI
在 foo_hw_params()
函数中,我们可以看到对编解码器和平台DAI的配置,包括格式和时钟设置。以下是相关代码示例:
/* set codec DAI configuration */
ret = snd_soc_dai_set_fmt(codec_dai, SND_SOC_DAIFMT_I2S |
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_ra