0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

I2C3挂载wm8960音频芯片 | 飞凌干货笔记

飞凌嵌入式 2022-08-12 14:20 次阅读

飞凌嵌入式的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、修改结果

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

(1)修改sound节点cpu-dai =<&sai2>,改为cpu-dai= <&sai1>

将wm8960挂载到sai1实现音频数据流的收发,同理也可挂载到sai3,修改硬件连接即可。

(2)修改 hp-det-gpios= <&gpio4 22 0 >, 改为 hp-det-gpios= <&gpio4 22 1 >。

默认使用耳机输出,使插拔检测失效。

31a9a42af0bb4727a8770a21b6a79281~noop.image?_iz=58558&from=article.pc_detail&x-expires=1660887844&x-signature=WIWa5bnfOWT6gyqXhOlrFCY5%2Bmo%3D

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

40bcbb2fffe4464098d9b8c14b566aef~noop.image?_iz=58558&from=article.pc_detail&x-expires=1660887844&x-signature=LsP63K51eZquOTBFJJay0DtAelw%3D

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

11753cbdf1fb47de89a96c1c367fb913~noop.image?_iz=58558&from=article.pc_detail&x-expires=1660887844&x-signature=f2GcBMz2eCCWPnBYUGwh%2FaYVc3g%3D

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

b6e47da85e004b5193a9f1498716f20d~noop.image?_iz=58558&from=article.pc_detail&x-expires=1660887844&x-signature=Wh%2BY4QYY7spxE2r1xED44vjtwm8%3D

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

c7aa910806684afcba14e05bcf6d6c4e~noop.image?_iz=58558&from=article.pc_detail&x-expires=1660887844&x-signature=RD6dJV5JfkA%2B1%2BDCky0Tniej3vI%3D

2、修改思路

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

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

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

3. 修改pinctrl引脚复用;

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

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

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

设备树sound节点:

1496434bf84f420d89b0345bf30cd2ab~noop.image?_iz=58558&from=article.pc_detail&x-expires=1660887844&x-signature=0xBBzerLjrAiXoEPSZ8hYSAJ3J4%3D

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

404b58604a9341c69c33ae72041b8e29~noop.image?_iz=58558&from=article.pc_detail&x-expires=1660887844&x-signature=5p40Jtj2FKpZxNqq5A4%2Bqe0cWQs%3D

3、总结

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

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

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

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • ARM
    ARM
    +关注

    关注

    134

    文章

    9045

    浏览量

    366809
  • 嵌入式
    +关注

    关注

    5068

    文章

    19014

    浏览量

    303234
  • Linux
    +关注

    关注

    87

    文章

    11225

    浏览量

    208920
收藏 人收藏

    评论

    相关推荐

    TLV320AIC3106音频芯片怎么发送、接收浮点数呢?

    TLV320AIC3106 音频芯片怎么发送、接收浮点数呢?是把浮点数转成整数吗?如果是该怎么转呢? 经AD采样后得到的是整数,又该怎么转换成原始的浮点数呢?
    发表于 11-05 07:13

    tlv320aic3007音频芯片无法录音是什么原因导致的?怎么解决?

    我采用的是tlv320aic3007音频芯片,omap4460的处理器,现在已经调通了播放,音质也很好,但是在调试录音的时候发现无法录音,我想请教有么有关于录音的寄存器配置,我参考一下,可以从LINE1L/LINE1R或者MIC3R/MIC
    发表于 11-04 07:14

    嵌入式ElfBoard ELF 1板卡-i2c与从设备通讯编程示例之i2c-tools工具使用

    注意:学习资料可在ElfBoard官方网站“资料”专区获取。介绍i2c-tools是一个专门调试i2c接口的开源工具,可以获取挂载的设备及设备地址,具有在对应的设备上读取和设置寄存器值等功能。在
    发表于 10-29 16:27

    如何使用TLV320AIC3268音频芯片的miniDSP?

    小弟最近在研究如何使用TLV320AIC3268音频芯片的miniDSP,不清楚如何编程以及下载到板子运行。我在TI上申请下载了PURE PATH STUDIO开发工具,但在
    发表于 10-25 07:26

    PA3113D2在系统启动过程中会出现一个POP声,请问是什么原因造成的?

    请教各位高手,我现在CODEC芯片用的是WOLFSON WM8960,OPA用的是TI PA3113D2,上电瞬间的POP声已经解决,但是在系统启动过程中(快启动完成时)还会出现一个POP声,请问是什么原因造成的?
    发表于 10-18 06:39

    stm32mp135 i2c3无法正常probe怎么解决?

    /board/stmicroelectronics/stm32mp1/linux-dts/stm32mp135f-dk-mx.dts)。 我一共使用了3i2c,i21,i2c3
    发表于 07-05 07:30

    Linux平台移植音频芯片实战记录

    本文详细记录在NXP I.MX6ULL+Linux平台下进行WM8960音频芯片移植的过程,其他平台操作方法类似,希望为大家提供帮助。
    的头像 发表于 05-17 14:28 1025次阅读
    Linux平台移植<b class='flag-5'>音频芯片</b>实战记录

    浅析在NXP I.MX6ULL+Linux平台下进行WM8960音频芯片移植的过程

    本文详细记录在NXP I.MX6ULL+Linux平台下进行WM8960音频芯片移植的过程,其他平台操作方法类似,希望为大家提供帮助。
    的头像 发表于 05-17 11:33 1181次阅读
    浅析在NXP <b class='flag-5'>I</b>.MX6ULL+Linux平台下进行<b class='flag-5'>WM8960</b><b class='flag-5'>音频芯片</b>移植的过程

    stm32f2系列芯片I2C1和I2C3,为什么I2C3总是显示总线繁忙?

    使用I2C1和I2C3分别读两个传感器,其中I2C1可以正常读传感器,但是I2C3总是显示总线繁忙,请问这是什么原因?该怎么解决?
    发表于 04-11 06:32

    技术帖 | 嵌入式T113-i开发板的休眠及唤醒操作

    嵌入式OK113i-S开发板支持两种休眠方式:freeze和mem。本篇内容小编会为大家介绍如何让嵌入式OK113
    的头像 发表于 12-29 08:02 1200次阅读
    技术帖 | <b class='flag-5'>飞</b><b class='flag-5'>凌</b>嵌入式T113-<b class='flag-5'>i</b>开发板的休眠及唤醒操作

    OK113i-S开发板试用】开机测评--软件测试篇

    OK113i-S开发板试用】开机测评--软件测试篇 OK113i-S开发板开机就可以进
    发表于 12-25 11:03

    OK113i-S开发板试用】开机测评--硬件篇

    OK113i-S开发板试用】开机测评--硬件篇 一,开箱见图 包装精致 注意:上面红黄的先是本人接上的 配了电源线和一根usb线一根天线 OK113i-S开发板采用核心板+底板的
    发表于 12-24 20:51

    OK113i-C全志T113-i开发板rtl8723du WIFI功能测试及蓝牙驱动移植

    OK113i-C 全志T113-i开发板板载一个RTL8723du wifi/蓝牙二合一模块,板子出厂已经移植好了WIFI驱动但是蓝牙驱动没有,所以这篇文章我们主要做蓝牙驱动的移
    的头像 发表于 12-11 13:52 2282次阅读

    求助,有没有WM8978相同功能的音频芯片推荐?

    大家好。有没有WM8978相同功能的音频芯片推荐?
    发表于 11-29 06:21

    低功耗音频编解码器ES8336规格书

    顺芯ES8336音频芯片,采用I2S接口,广泛应用于笔记本电脑、迷你PC等产品上 系统 •高性能、低功耗的多位Δ-∑音频ADC和DAC •
    发表于 11-27 11:36 5次下载