基于imx6ul下调试tlv320aic3x声卡
1、开发环境
核心板:imx6ul
内核版本:linux4.1.15
2、问题
因为这次声卡芯片是tlv320aic3101,从网上搜相关的资料可谓是少之又少,基本上都是有linux2.6版本的,基本上都是没有用到设备树DTB去适配,看了一下内核源码linux4.1.15只有sound/soc/codecs有tlv320aic3x.c和tlv320aic3x.h这两个文件,而sound/soc/fsl/就没有驱动tlv320aic3x的驱动文件。需要自己从网上去下载或者参照imx-sgtl5000.c去重新写一个。
3、设备树配置
//声卡配置
sound {compatible = "fsl,imx-audio-tlv320aic3x";model = "tlv320aic3x-audio";cpu-dai = <&sai2>;audio-codec = <&codec>;audio-routing = "Headphone Jack", "HPLOUT", "Headphone Jack", "HPROUT", "Mic Jack", "LINE2R", "Mic Jack", "LINE2L";mux-int-port = <2>;mux-ext-port = <3>;status = "okay";};
tlv320aic3x驱动配置
&i2c2 {clock_frequency = <400000>;pinctrl-names = "default";pinctrl-0 = <&pinctrl_i2c2>;status = "okay";codec:tlv320aic3x@18 {compatible = "ti,tlv320aic3106";reg = <0x18>;gpio-reset = <&gpio2 5 GPIO_ACTIVE_HIGH>;ai3x-micbias-vg = <2>;clock-frequency = <27000000>;AVDD-supply = <®_3p3v>;IOVDD-supply = <®_3p3v>;DRVDD-supply = <®_3p3v>;DVDD-supply = <®_3p3v>;status="okay"; };
};
&sai2 {pinctrl-names = "default";pinctrl-0 = <&pinctrl_sai2>;assigned-clocks = <&clks IMX6UL_CLK_SAI2_SEL>,<&clks IMX6UL_CLK_SAI2>;assigned-clock-parents = <&clks IMX6UL_CLK_PLL4_AUDIO_DIV>;assigned-clock-rates = <0>, <27000000>;status = "okay";
};
tlv320aic3x和sai2 中27000000如下图
4、驱动文件
把驱动加载到内核里即可,这一步可以参照当前内核源码文件Makefile去操作
资源下载:驱动程序文件下载
5、疑难杂症
如果按照以上步骤操作的话,基本上启动板子能够正常的加载起来,打印信息如下
ALSA device list:#0: tlv320aic3x-audio[root@CORE-A6G2Y ~]# ls /dev/snd/
by-path/ controlC0 pcmC0D0c pcmC0D0p timer
可以播放声音,但是录音播出来的声音只有吱吱的,可以尝试看看这两个配置时候有off,如果是off的话把他们设置为on状态
numid=95,iface=MIXER,name=‘Right PGA Mixer Mic3L Switch’
; type=BOOLEAN,access=rw------,values=1
: values=on
numid=96,iface=MIXER,name=‘Right PGA Mixer Mic3R Switch’
; type=BOOLEAN,access=rw------,values=1
: values=on
基于imx6ul下调试tlv320aic3x声卡相关推荐
- 基于RK3288 平台 Simple card声卡添加及调试
基于RK3288 平台 Simple card声卡添加及调试 Simple card即简单通用的machine driver, 如果simple-card框架足够满足需求,建议优先使用simp ...
- IMX6基于yocto3.14.28移植声卡wm8960
项目需求,在基于yocto Linux3.14.28的IMX6平台下移植wm8960声卡.硬件部分如下: 声卡驱动在内核代码的sound/soc/codec,和sound/soc/fsl目录下.原代码 ...
- imx6ul pwm 调试
imx6ul pwm 调试 一:imx6ul datasheet pwm 二:设备树修改 三:pwm使能 四:pwm测试 一:imx6ul datasheet pwm 阅读imx6ul datashe ...
- aiku基于mini2440下裸机程序开发《概述与SDRAM运行》
大家好,我是aiku,今天主要跟大家介绍一些 基于mini2440下裸机程序开发<概述与SDRAM运行> 有什么问题:都可以联系我们,谢谢! 我是aiku,本博客主要写一些我们的项目经验与 ...
- 基于Starter G120调试
基于Starter G120调试 新建一个工程,单击 Project- 单击 New- 输入"工程名称",选择"工程路径"-最后单击 OK- 配置PG/PC接口 ...
- Linux下调试器工作原理
Linux下调试器工作原理之一-基础篇 介绍关于Linux下的调试器实现的主要组成部分--ptrace系统调用.本文中出现的代码都在32位的Ubuntu系统上开发.请注意,这里出现的代码是同平台紧密相 ...
- 开源RISC-V处理器(蜂鸟E203)学习(五)A100T-FPGA 移植蜂鸟Hbirdv2,实现Centos下调试器USB识别以及程序编译烧写,并进行C语言仿真
1.简述 最近购买了一块适合做原型验证FPGA板卡,板卡接口和外设比较丰富,十分适合跑一些小型的SOC工程,比如蜂鸟E203:板卡自带FPGA烧写器和软核CPU的JATG调试器,还有USB接口的UAR ...
- 深度 | 智慧•城市,基于国际视野下的思考
来源:智慧城市决策参考 智慧城市的兴起,得益于ICT技术的迅猛发展.经过这些年国内外诸多城市的探索和实践,智慧城市已经从最初的营销概念,逐渐发展成为一种支持城市发展的新理念.然而在实际应用中,智慧城市 ...
- 基于SpringMVC下的Rest服务框架搭建【1、集成Swagger】
基于SpringMVC下的Rest服务框架搭建[1.集成Swagger] 1.需求背景 SpringMVC本身就可以开发出基于rest风格的服务,通过简单的配置,即可快速开发出一个可供客户端调用的re ...
- linux下调试core dump方式汇总,工作必备技能
缘起 调试,是开发流程中一个非常重要的环节.每个程序员都应,具备调试代码的能力,尤其对于从事 Linux 下的开发的读者. 从事 linux 下后台开发,有时候会遇到程序突然崩溃的情况,也没有任何日志 ...
最新文章
- Socket通信实例
- 使用UrlRewrite时修改form的action属性问题
- LeetCode 300. 最长上升子序列(Longest Increasing Subsequence)
- CentOS 6.3 下编译cyrus-sasl报错解决
- java的mwcellarray_Java 数组
- 不实例化图片,获取图片宽高的方法(vb.net)
- 手把手教你如何用 TensorFlow 实现基于 DNN 的文本分类
- 【Linux】【Services】【Package】编译安装
- netty实现gmssl_gmssl国密总结
- Cesium开发基础篇 | 03加载矢量数据
- 4K \1080P 高质量视频素材网站。
- SDCC编译器学习旅之一
- 长期吃nmn有副作用吗,nmn产品副作用,真相说明
- 数学建模竞赛网站汇总
- mysql 手机号省份_根据手机号 判断省份和运营商
- node.js基于微信小程序的外卖订餐系统 uniapp 小程序
- 有关队列的操作 python
- ccs读取dat文件c语言程序,CCS中dat文件的格式
- 计算机魅力沈阳一日游教案,沈阳版小学信息技术教案五年级上册全册教案
- vs2013 应用程序无法正常启动