1. IIC驱动添加

设备树添加es7202的节点,内容如下

&i2c3 {status = "okay";clock-frequency = <400000>;es7202: es7202@37 {status = "okay";compatible = "ES7202_PDM_ADC_1";#sound-dai-cells = <0>;reg = <0x37>;};
};

2.添加声卡驱动

在设备树下添加声卡节点

 sound_es7202 {status = "okay";compatible = "simple-audio-card";simple-audio-card,format = "pdm";simple-audio-card,name = "rockchip,Es7202";simple-audio-card,mclk-fs = <256>;simple-audio-card,cpu {sound-dai = <&pdm>;};simple-audio-card,codec {sound-dai = <&es7202>;};};

3. pdm接口

设备树

&pdm {status = "okay";rockchip,path-map = <1 0 2 3>;clocks = <&cru MCLK_PDM>, <&cru HCLK_PDM>;clock-names = "pdm_clk", "pdm_hclk";pinctrl-names = "default";pinctrl-0 = <&pdmm0_clk1&pdmm0_sdi1>;//#sound-dai-cells = <0>;
};

这其中rockchip,path-map含义如下:

Optional properties:
- rockchip,path-map: This is a variable length array, that shows the mappingof SDIx to PATHx. By default, they are one-to-one mapping as follows:path0 <-- sdi0path1 <-- sdi1path2 <-- sdi2path3 <-- sdi3e.g. "rockchip,path-map = <3 2 1 0>" means the mapping as follows:path0 <-- sdi3path1 <-- sdi2path2 <-- sdi1path3 <-- sdi0

4.修改安卓hal层

在hardware/rockchip/audio/tinyalsa_hal/下的audio_hw.c,修改内容:

struct dev_proc_info MIC_IN_NAME[] ={{"realtekrt5616c", NULL,},                                                                                                                                          {"realtekrt5651co", "rt5651-aif1",},{"realtekrt5670c", NULL,},{"realtekrt5672c", NULL,},{"realtekrt5678co", NULL,},{"rockchipes8316c", NULL,},{"rockchipes8323c", NULL,},{"rockchipes8396c", NULL,},{"rockchipes7210", NULL,},{"rockchipes7243", NULL,},{"rockchiprk", NULL, },{"rockchiprk809co", NULL,},{"rockchiprk817co", NULL,},{"rockchiprt5640c", NULL,},{"rockchiprt5670c", NULL,},{"rockchiprt5672c", NULL,},{"rockchipEs7202",NULL},    // es7202{NULL, NULL}, /* Note! Must end with NULL, else will cause crash */};

我的es7202的声卡名是"rockchipEs7202",依葫芦画瓢,复制一下上面的内容更改以下就可以了,

rk66_gnrc:/ $ cat proc/asound/cards                                                                                                                                         0 [rockchiprk817co]: rockchip_rk817- - rockchip,rk817-codecrockchip,rk817-codec1 [rockchipEs7202 ]: rockchip_Es7202 - rockchip,Es7202rockchip,Es7202
rk66_gnrc:/ $ 

这个名字是通过在adb终端cat查看的,我之前有加后缀太长发现不行,这个名字跟simple-audio-card,name = “rockchip,Es7202”;,有关我之前是:simple-audio-card,name = “rockchip,sound_es7202”; ,下面是我之前cat出来的信息:

rk66_gnrc:/ $ cat proc/asound/cards                                                                                                                                         0 [rockchiprk817co]: rockchip_rk817- - rockchip,rk817-codecrockchip,rk817-codec1 [rockchipsoundes]: rockchip_sound_ - rockchip,sound_es7202rockchip,sound_es7202

5.修改 es7202.c源码

将上面的添加好后发现用安卓里的录音APP录音没有反应,最后通过好几天的查找是es7202.c源码里有问题,内容如下

static int es7202_mute(struct snd_soc_dai *dai, int mute)
{if (mute) {es7202_multi_chips_update_bits(ES7202_PDM_INF_CTL_REG07, 0x03,0x03);} else if (dai->playback_active) {es7202_multi_chips_update_bits(ES7202_PDM_INF_CTL_REG07, 0x03,0x00);       }return 0;
}#define es7202_RATES SNDRV_PCM_RATE_8000_96000static struct snd_soc_dai_ops es7202_ops = {.digital_mute = es7202_mute,
};

更改如下:

static int es7202_mute_stream(struct snd_soc_dai *dai, int mute, int stream)
{printk("Vantron-------es7202_mute_stream------------------------\r\n");if (stream == SNDRV_PCM_STREAM_CAPTURE) {if (mute) {es7202_multi_chips_update_bits(ES7202_PDM_INF_CTL_REG07, 0x03,0x03);} else {msleep(150);es7202_multi_chips_update_bits(ES7202_PDM_INF_CTL_REG07, 0x03,0x00);}}return 0;
}#define es7202_RATES SNDRV_PCM_RATE_8000_96000static struct snd_soc_dai_ops es7202_ops = {//.digital_mute = es7202_mute,.mute_stream = es7202_mute_stream,
};

RK3566,ES7202声卡驱动添加相关推荐

  1. BSD HD 声卡驱动安装,ntfs-3g安装

    RelaxBSD InstallCD 2.0 MD5 (RelaxBSD-InstallCD-2.0.iso) = cc99518480f29dcfcb41ca19f314b14a SHA256 (R ...

  2. s3c2440 uda1341声卡驱动与madplay播放器移植

    --------------------------------------- 主机操作系统:Centos 6.7  交叉编译器环境:arm-linux-gcc-4.5.4  开发板平台: FL244 ...

  3. linux声卡测试命令,linux添加声卡驱动使用命令行音频播放器的方法

    首先linux系统需要有声卡 哪怕是虚拟声卡,我用的是virtualbox,intel 80x AC97 声卡. 安装声卡驱动,在linux内核的找到声卡对应的驱动 可以集成到内核,或者安装为模块,为 ...

  4. linux音频驱动程序测试,Linux声卡驱动移植和测试

    一.分析驱动程序,根据开发板修改代码 代码太长,就不贴了,几个注意点: 1. 查看开发板原理图和S3C2410的datasheet,UDA1341的L3MODE.L3DATA.L3CLOCK分别与S3 ...

  5. I.MX6Q(TQIMX6Q/TQE9)学习笔记——新版BSP之声卡驱动移植

    经过前面的移植,tqimx6q已经可以正常驱动触摸屏了,本文我们来移植声卡驱动. DTS编写 由于tqimx6q搭载的声卡是sgtl5000芯片,因此,参考dts目录下其它开发板的相应信息,我们可以在 ...

  6. usb声卡驱动(六):usb声卡中的pcm打开和关闭

    usb声卡驱动(六) 前面记录了usb声卡驱动的注册过程. 下面,查看usb声卡里面pcm的打开和关闭,都做了什么工作. 一点基础前提 因为本系列文章的核心是,usb声卡驱动.所以并不会深入到alsa ...

  7. Linux ALSA声卡驱动之四:Codec 以及Codec_dai

    ALSA声卡驱动: 1.Linux ALSA声卡驱动之一:ALSA架构简介和ASOC架构简介 2.Linux ALSA声卡驱动之二:Platform 3. Linux ALSA声卡驱动之三:Platf ...

  8. 解决Windows Server 2008 R2安装声卡驱动后还是提示无音频设备的问题

    之前使用windows server 2008 R2,都没有用的声音播放的功能,所以一般情况下都不安装声卡驱动,或者装了也没用上,所以也没发现问题.今天正好有个项目需要用声卡播放告警语音,所以需要用到 ...

  9. debian 安装声卡驱动(Realtek alc887_vd)

    debian7 , 内核3.2.0.4-amd64 主板是技嘉的,集成了realtek 887的声卡, 初始安装debian后没有声音. 查看声卡型号 #lspci | grep Audio 00:1 ...

最新文章

  1. python的类方法可以用对象和类名来调用吗_怎么调用python中的类方法
  2. 数据中心空调系统一种变风量节能控制策略
  3. Citrix Profile Management 和 VDI系列讲座之二:Profile漫游需要怎么配置存储和网络
  4. UVALive - 7511 Multiplication Table(暴力+模拟)
  5. 迁移上云方法论-6R
  6. Golang 交叉编译
  7. mysql数据库常见问题_初学者必读 MySQL数据库常见问题汇总
  8. MySQL列类型之——数值类型
  9. Eclipse中如何让Java类与Servlet产生关联【实现处理请求内容】
  10. puppet详解(七)——cron资源详解
  11. JavaSE基础笔记一
  12. 2022最新RTMP+HTTP直播地址汇总(亲测可用)
  13. plsql 导入导出数据
  14. Android竖虚线绘制
  15. 面试算法 香槟塔 ,算法:暴力算法
  16. python requests模块(爬虫)
  17. 如何鉴别真假苹果原装20W快充头
  18. 曹二众 / jeewms仓储管理系统本地部署踩坑记录
  19. gps定位器更换平台指令-GPS定位器接入平台指令
  20. php大文件读取excel分割,如何用phpspreadsheet来切割excel大文件(附代码)

热门文章

  1. 基于BS的传统中医诊断系统软件开发与实现
  2. week06手写笔记
  3. 在控制面板中,找不到安装的软件 pr,但是要对它进行清理
  4. 咸鱼ZTMR实例—土壤湿度计检测模块
  5. 华为,米家,HomeKit是智能家居行业的扛把子?
  6. 根据css设计图标,各种纯css图标
  7. 矩阵论基础知识5(病态矩阵与条件数 )
  8. 如何在智能手机上找到跟踪器
  9. 专题二:欧拉视频放大(基于相位)---原理解析
  10. 让终端泄密行为明明白白的局域网监控应用