RK3328 Android 10 上调调试es7243记录

一、es7243电路图。

二、修改的部分,解决没有mclk的问题。

commit b86b0275bf898fcc61abd48c776186e901bceac7
Author: xxx <xxx@xxx.comgit@192.168.2.82:xxx/xxx.git>
Date:   Mon Jun 7 10:02:10 2021 +0800es7243 recording function is ok now .diff --git a/kernel/arch/arm64/boot/dts/rockchip/rk3328.dtsi b/kernel/arch/arm64/boot/dts/rockchip/rk3328.dtsi
index db9df63..5d9cb89 100755
--- a/kernel/arch/arm64/boot/dts/rockchip/rk3328.dtsi
+++ b/kernel/arch/arm64/boot/dts/rockchip/rk3328.dtsi
@@ -242,8 +242,8 @@compatible = "rockchip,rk3328-i2s", "rockchip,rk3066-i2s";reg = <0x0 0xff010000 0x0 0x1000>;interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
-       clocks = <&cru SCLK_I2S1>, <&cru HCLK_I2S1_8CH>;
-       clock-names = "i2s_clk", "i2s_hclk";
+      clocks = <&cru SCLK_I2S1>, <&cru HCLK_I2S1_8CH>,<&cru SCLK_I2S1_OUT>;
+      clock-names = "i2s_clk", "i2s_hclk","i2s_mclk";dmas = <&dmac 14>, <&dmac 15>;dma-names = "tx", "rx";resets = <&cru SRST_I2S1>, <&cru SRST_I2S1_H>;
@@ -1080,8 +1080,8 @@compatible = "rockchip,rk3328-codec";reg = <0x0 0xff410000 0x0 0x1000>;rockchip,grf = <&grf>;
-       clocks = <&cru PCLK_ACODEC>, <&cru SCLK_I2S1>;
-       clock-names = "pclk", "mclk";
+      clocks = <&cru PCLK_ACODEC>, <&cru SCLK_I2S1>, <&cru SCLK_I2S1_OUT>;
+      clock-names = "pclk", "mclk","i2s1_mclk";status = "disabled";};
diff --git a/kernel/sound/soc/codecs/rk3328_codec.c b/kernel/sound/soc/codecs/rk3328_codec.c
old mode 100644
new mode 100755
index 5a4184a..6c5cbde
--- a/kernel/sound/soc/codecs/rk3328_codec.c
+++ b/kernel/sound/soc/codecs/rk3328_codec.c
@@ -42,6 +42,9 @@#define RK3328_GRF_SOC_CON10  (0x0428)#define INITIAL_FREQ    (11289600)+extern int es7243_standby(void);
+extern int es7243_start(void);
+struct rk3328_codec_priv {struct regmap *regmap;struct regmap *grf;
@@ -50,6 +53,7 @@ struct rk3328_codec_priv {unsigned int sclk;int spk_depop_time; /* msec */};
+struct clk *i2s1_mclk;
static const struct reg_default rk3328_codec_reg_defaults[] = {{ CODEC_RESET, 0x03 },
@@ -322,13 +326,29 @@ static int rk3328_hw_params(struct snd_pcm_substream *substream,static int rk3328_pcm_startup(struct snd_pcm_substream *substream,struct snd_soc_dai *dai){
-   return rk3328_codec_open_playback(dai->component);
+  printk("\r\n rk3328_pcm_startup substream->stream=%d \r\n",substream->stream);
+  if(substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
+      return rk3328_codec_open_playback(dai->component);
+  else {
+      printk("%s--es7243_start---\n",__func__);
+      clk_prepare_enable(i2s1_mclk);
+      clk_set_rate(i2s1_mclk, INITIAL_FREQ);
+      es7243_start();
+        return 0;
+    } }static void rk3328_pcm_shutdown(struct snd_pcm_substream *substream,struct snd_soc_dai *dai){
-   rk3328_codec_close_playback(dai->component);
+  printk("\r\n rk3328_pcm_shutdown substream->stream=%d \r\n",substream->stream);
+  if(substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
+     rk3328_codec_close_playback(dai->component);
+    else {
+      printk("%s--es7243_standby\n",__func__);
+      es7243_standby();
+      clk_disable_unprepare(i2s1_mclk);
+    }}static const struct snd_soc_dai_ops rk3328_dai_ops = {
@@ -473,9 +493,11 @@ static int rk3328_platform_probe(struct platform_device *pdev)rk3328_analog_output(rk3328, 0);rk3328->mclk = devm_clk_get(&pdev->dev, "mclk");
+  i2s1_mclk = devm_clk_get(&pdev->dev, "i2s1_mclk");if (IS_ERR(rk3328->mclk))return PTR_ERR(rk3328->mclk);+ret = clk_prepare_enable(rk3328->mclk);if (ret)return ret;

三、测试命令 tinycap /sdcard/rec0.wav   -D 0 -d 0 –c 2 –r 44100 –b 16 –p 1024 –n 3

四、es7243驱动在附件,下载地址https://download.csdn.net/download/qq_37858386/19426344.

2021-06-07 RK3328 Android 10 上调试es7243记录相关推荐

  1. 在你的计算机上使用qr码登录,如何在Android 10上使用QR码共享您的Wi-fi凭据 | MOS86...

    Android 10随附的新功能之一可能看起来很小,但非常方便. 新的Wi-Fi共享功能使用户只需扫描QR码即可连接到您的网络. 仅使用QR码共享Wi-Fi网络凭据是Android 10中更便捷的新功 ...

  2. Android 10 上使用WifiNetworkSpecifier 连接WiFi后http请求失败 Connection failed

    问题描述:在连接设备热点的开发中,使用WifiNetworkSpecifier连上设备热点,再切换回原网络后,http请求一直报SocketException: Connection failed ( ...

  3. Android Studio上调试手机数据库(SQLite)

    在 Eclipse 时代,调试 SQLite 大都是在DDMS中,data/data/目录下找到db将数据库文件,将文件导出到电脑,然后再用软件打开查看.现在在 Android Studio,是不是可 ...

  4. android程序db文件用什么编辑器,在 Android Studio 上调试数据库 ( SQLite )

    以前 Eclipse 时代,调试 SQLite 都是将数据库文件导出到电脑,然后再用软件打开查看.现在我们用 Android Studio,有没有更方便的方法呢? SQLScout 安装 SQLSco ...

  5. 【重磅最新】163篇ICML-2021强化学习领域论文整理汇总(2021.06.07)

    深度强化学习实验室 官网:http://www.neurondance.com/ 论坛:http://deeprl.neurondance.com/ 作者:深度强化学习实验室 来源:整理自https: ...

  6. Android 10开启调试模式

    文章目录 调试背景 参考资料: 调试背景 在Android真机上调试程序有一个前提,就是这个apk包必须有 debuggable=true 的属性才行.而除了自己开发的apk能够控制打包属性之外,其他 ...

  7. 公安部82号令学习----2021.06.07

    所有内容仅供学习使用,切勿用于商业用途 若有不妥之处,望各位大佬指出,小弟虚心请教 名词解释 互联网服务提供者(ISP):互联网运营商.电信.移动.联通.铁通等 联网使用单位:医院.学校.政府.机构等 ...

  8. [转载]Android开发常用调试技术记录

    ANDROID 调试技术: 1)Ps 指令 ls –l /proc/27/ cat /proc/27/cmdline       #cmdline文件表示了这个进程所在的命令行. cat /proc/ ...

  9. android开发常用技术,[转载]Android开发常用调试技术记录

    ANDROID 调试技术: 1)Ps 指令 ls –l /proc/27/ cat /proc/27/cmdline       #cmdline文件表示了这个进程所在的命令行. cat /proc/ ...

最新文章

  1. pugixml读取unicode编码的xml文件的做法
  2. centos6.7x86_64安装nginx (good)
  3. javascript转换
  4. 智能机器人比巴和智伴哪个好_扫地机器人和吸尘器哪个好?
  5. linux防火墙常用缩写,Linux iptables常用防火墙规则
  6. ant build.xml文件中能使用的属性介绍
  7. 公办低分二本_这六所公办二本高校的计算机类相关专业值得低分段考生选择
  8. 数据结构和算法(05)---链表(c++)
  9. Spring事务传播行为7种类型 --- 看一遍就能记住!
  10. Struts2中的全局结果集
  11. 实现两个Mysql数据库同步
  12. Airflow 中文文档:教程
  13. python零碎笔记整理1
  14. GVRP、VCMP、VTP、DTP——全网最完整的总结
  15. 旧版台式计算机,7年前老电脑开机比拼 Windows8秒杀XP
  16. 剑指offer——面试题57:删除链表中重复的结点
  17. C#照片合成PDF_ PDF合成或拆分PDF_PDF获取页数
  18. 一个小巧好用的Url编解码工具
  19. 用于 Linux* 的英特尔® 图形驱动程序 以后买本本的时候,先注意一下
  20. Blender-反转法线

热门文章

  1. 固态硬盘使用的优化——适用于任何版本的固态
  2. 手把手教你使用Java生成助记词、私钥、地址|Java区块链钱包生成助记词、地址
  3. OrmLite-更符合面向对象的数据库操作方式
  4. ubuntu服务器安装及网络配置
  5. PLSQL创建Oracle定时任务,定时执行存储过程
  6. 在C/C++中整除符号和初始化数值应该注意细节
  7. 机器学习图像特征提取—颜色(RGB、HSV、Lab)特征提取并绘制直方图
  8. Java RESTful Web Service实战(第2版)
  9. 获取当前日期只保留年月日
  10. 电脑重装系统忘记备份怎么找回文件