Linux 驱动之 ALSA(二)编解码器类驱动相关概念
编解码器类驱动程序是最基本的,他实现的代码应该利用编解码器设备并公开其硬件属性,以便 amixer 等用户空间工具可以使用它。
由于驱动程序针对特定的编解码器,因此它应该包含音频控制、音频接口功能、编解码器 DAPM 定义和 I/O 功能,每个编解码器必须满足:
- 通过定义 DAI 和 PCM 配置来提供与其他模块的接口
- 提供编解码器控制 I/O hook(使用 I2C、SPI 的 API)
- 根据用户空间的需要,公开其他内核控件(Kernel control,Kcontrol)以动态控制模块行为
- 定义 DAPM widget,为动态电源切换建立 DAPM 路由,并提供 DAC 数字静音控制(option)