Platform: Rockchip
OS: Android 6.0
Kernel: 3.10.92
Audio HAL控制驱动中的寄存器是通过kcontrol结构实现的,kcontrol有多种类型,如mixer, mux等,由struct snd_kcontrol_new表示。
简单型控件:
只有一个控制量,比如一个开关。如:
static const struct snd_kcontrol_new rt3261_snd_controls[] = {
SOC_SINGLE("Mono Playback Switch", RT3261_MONO_OUT,
RT3261_L_MUTE_SFT, 1, 1),
};
名字是”Mono Playback Switch”, 寄存器是RT3261_MONO_OUT, 控制的bit位是RT3261_L_MUTE_SFT
对应的宏定义:
SOC_SINGLE
SOC_DOUBLE
还有衍生版本: SOC_DOUBLE_TLV, SOC_DOUBLE_EXT_TLV等等。
Mixer控件: