tag 标签: sai2

相关博文
  • 热度 6
    2022-8-26 09:26
    1022 次阅读|
    0 个评论
    飞凌嵌入式 的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 = , 改为 cpu-dai= 。将wm8960挂载到sai1实现音频数据流的收发,同理也可挂载到sai3,修改硬件连接即可。 修改 hp-det-gpios= , 改为 hp-det-gpios= 。 默认使用耳机输出,使插拔检测失效。 2、注释I2C2下的wm8960节 点 ,因为在设备树中不能存在一模一样的设备节点,所以要注释掉原来的wm8960节点。 在I2C3下添加wm8960节点,挂载到哪个I2C就把设备节点放到对应I2C下,修改 clocks= <&clk IMX ,在I2C3下有了设备节点,但是 时钟 需要改成sai1的。 3、修改 pinctrl_sai1 并注释 pinctrl_sai1_dsd , i.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属性: 三、 总结 原文:https://www.forlinx.com/article_view_935.html 设备树sound节点下compatible属性对应音频驱动文件imx-wm8960.c里的.compatible,由此设备与驱动便有了联系,驱动就可以在设备节点获取关键字model,cpu-dai等信息。 当换成其他音频芯片时,修改设备树compatible属性值即可修改音频设备的配置也变得简单起来,这也是 Linux 分离出设备树的主要原因。 本文提供的方法是在屏蔽默认音频设备的前提下进行的,想要实现双路音频输出还需要在其他环节进行配置。以上就是在OKMX8MM-C开发板的I2C3挂载wm8960音频芯片并通过SAI1连接传输音频数据的操作过程,希望能够对屏幕前的各位工程师小伙伴有所帮助。