I2C3挂载wm8960音频芯片

原创 2022-08-12 15:18:00 iMX8M imx8mm
 



飞凌嵌入式的OKMX8MM-C开发板预留了I2C3和SAI引脚接口,分别位于P18和P7插针引脚上,板载音频芯片挂载到了I2C2和SAI2。今天小编为大家列举并说明如何在I2C3挂载wm8960音频芯片并通过SAI1连接传输音频数据。

设备树和设备树头文件路径如下:

OK8MM-linux-sdk/OK8MM-linux-kernel/arch/arm64/boot/dts/freescale/ok8mm-evk.dts

OK8MM-linux-sdk/OK8MM-linux-kernel/arch/arm64/boot/dts/freescale/fsl-imx8mm.dtsi

一、修改结果 

1、打开设备树修改sound节点,驱动从这里获取设备信息。

修改sound节点 cpu-dai =<&sai2>,改为 cpu-dai= <&sai1>。将wm8960挂载到sai1实现音频数据流的收发,同理也可挂载到sai3,修改硬件连接即可。修改 hp-det-gpios= <&gpio4 22 0 >,改为 hp-det-gpios= <&gpio4 22 1 >。默认使用耳机输出,使插拔检测失效。

2、注释I2C2下的wm8960节 ,因为在设备树中不能存在一模一样的设备节点,所以要注释掉原来的wm8960节点。

在I2C3下添加wm8960节点,挂载到哪个I2C就把设备节点放到对应I2C下,修改 clocks= <&clk IMX8MM_CLK_SAI1_ROOT>,在I2C3下有了设备节点,但是时钟需要改成sai1的。

3、修改pinctrl_sai1并注释pinctrl_sai1_dsdi.MX8MM的默认设备树已经写好了sai1的pinctrl。

4、修改SAI1节点,如下图所示,复制SAI2节点替换SAI1,修改成SAI1的参数。


二、修改思路

我们在修改音频芯片挂载路径时的思路是这样的:

1. 屏蔽默认的挂载路径;

2. 将音频设备的节点添加到要挂载的I2C和SAI下;

3. 修改pinctrl引脚复用;

4. 屏蔽默认wm8960的引脚配置。

本文介绍的wm8960挂载方式与板载默认音频芯片属于同一型号,如果需要挂载其他型号音频芯片,则需要在sound节点指定驱动路径。

cpu-dai表示要使用的SAI通道,默认为SAI2本文使用SAI1就修改成SAI1即可; audio-codec属性就是I2C3下的wm8960节点。

设备树sound节点:

imx-wm8960.c驱动文件的.compatible属性:

三、 总结


设备树sound节点下compatible属性对应音频驱动文件imx-wm8960.c里的.compatible,由此设备与驱动便有了联系,驱动就可以在设备节点获取关键字model,cpu-dai等信息。

当换成其他音频芯片时,修改设备树compatible属性值即可修改音频设备的配置也变得简单起来,这也是Linux分离出设备树的主要原因。

本文提供的方法是在屏蔽默认音频设备的前提下进行的,想要实现双路音频输出还需要在其他环节进行配置。以上就是在OKMX8MM-C开发板的I2C3挂载wm8960音频芯片并通过SAI1连接传输音频数据的操作过程,希望能够对屏幕前的各位工程师小伙伴有所帮助。

有关OKMX8MM-C的更多详情和资料,您可点击下方图片进入 飞凌嵌入式官网进行了解 

相关产品 >

  • FETMX8MM-C核心板

    NXP i.MX8系列分为iMX8I、i.MX8M、i.MX8Mini、iMX8M Nano、iMX 8X等,提供基于Cortex-A72 + Cortex-A53、Cortex-A35核心,搭配实时任务处理的Cortex-M4和Cortex M7的解决方案,适用于从消费家庭音频到工业楼宇自动化及移动计算机等。飞凌嵌入式近期推出的iMX8系列i.MX8Mmini核心板基于四核Cortex-A53、单核Cortex-M4架构的i.MX 8Mmini 处理器设计,现已全面上市,更多i.MX8M核心板产品、解决方案详情,欢迎致电飞凌嵌入式了解。

    了解详情
    FETMX8MM-C核心板
  • OKMX8MM-C开发板

    多数字音频接口,多核异构A53+M4,10年+生命周期|NXP公司 i.MX8系列应用处理器根据不同配置有i.MX8I、iMX8M、i.MX8Mini、iMX8M Mini、iMX8M Nano、iMX 8X ,提供基于Cortex-A72 + Cortex-A53、Cortex-A35核心,此外还提供实时任务处理的Cortex-M核心(Cortex-M4和Cortex M7)的解决方案,因此,NXP i.MX8系列应用处理器在高级图形、高级成像、高级机器视觉、高端音频、高端语音、高端视频和高安全的嵌入式应用等跨领域的多种应用场景非常适用。飞凌嵌入式i.MX8M Mini开发板基于NXP 公司的i.MX8M Mini 四核64位处理器设计,主频最高1.8GHz,ARM Cortex-A53架构。IMX8开发板是一款高性能,低功耗产品,欢迎选购。更多IMX8芯片介绍,IMX8系列软硬件资料,i.MX8M mini方案定制,请联系飞凌嵌入式

    了解详情
    OKMX8MM-C开发板

推荐阅读 换一批 换一批