龙芯 LS2K1000 自带了一个 HDA 控制器,我们可以用他来连接开发板的声卡,所以我们需要在设备树里

面配置 HDA 的设备节点,打开 Targets/LS2K/conf/LS2K.dts 设备树文件,取消注释掉 HDA 的设备节点,然后

添加条件编译选项,如下图所示:

迅为2K1000开发板pmon BSP移植-配置声卡_初始化

为什么这里要使用宏定义 SEL_HDA 呢,因为在 BSP 的 Targets/LS2K/ls2k/pai2.c 文件的 pai2_init 函数中使

用宏定义 SEL_HDA 来对 HDA 的管脚进行了初始化,如下图所示:

迅为2K1000开发板pmon BSP移植-配置声卡_开发板_02

第 8 行代码*(volatile int *)0xbfe10420 &= ~(7<<4);先对寄存器的第 4,5,6 位清零,然后第 9 行代码

*(volatile int *)0xbfe10420 |= (1<<4);将第 4 位置 1,置 1 就是将管脚的复用设置为 HDA,为什么要先清零然后

在置 1 呢?我们来看下数据手册,如下图所示:

迅为2K1000开发板pmon BSP移植-配置声卡_宏定义_03

通过数据手册我们可以看出,bit4 和 bit6 不能同时为 1,所以这里先清零然后在将 bit4 置 1 是为了避免

同时为 1 的情况。

接着我们要在定义这个宏定义来打开对HDA的初始化,打开Targets/LS2K/conf/ls2k文件,添加代码option

SEL_HDA,如下图所示:

迅为2K1000开发板pmon BSP移植-配置声卡_开发板_04

这样,我们就成功配置完了声卡。我们将 pmon 烧写到开发板并启动文件系统,输入命令 aplay -l,可

以看到已经成功识别到了声卡,如下图所示:

迅为2K1000开发板pmon BSP移植-配置声卡_初始化_05

更多内容关注迅为龙芯2K1000开发板