2021-06-07 RK3328 Android 10 上调试es7243记录
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记录相关推荐
- 在你的计算机上使用qr码登录,如何在Android 10上使用QR码共享您的Wi-fi凭据 | MOS86...
Android 10随附的新功能之一可能看起来很小,但非常方便. 新的Wi-Fi共享功能使用户只需扫描QR码即可连接到您的网络. 仅使用QR码共享Wi-Fi网络凭据是Android 10中更便捷的新功 ...
- Android 10 上使用WifiNetworkSpecifier 连接WiFi后http请求失败 Connection failed
问题描述:在连接设备热点的开发中,使用WifiNetworkSpecifier连上设备热点,再切换回原网络后,http请求一直报SocketException: Connection failed ( ...
- Android Studio上调试手机数据库(SQLite)
在 Eclipse 时代,调试 SQLite 大都是在DDMS中,data/data/目录下找到db将数据库文件,将文件导出到电脑,然后再用软件打开查看.现在在 Android Studio,是不是可 ...
- android程序db文件用什么编辑器,在 Android Studio 上调试数据库 ( SQLite )
以前 Eclipse 时代,调试 SQLite 都是将数据库文件导出到电脑,然后再用软件打开查看.现在我们用 Android Studio,有没有更方便的方法呢? SQLScout 安装 SQLSco ...
- 【重磅最新】163篇ICML-2021强化学习领域论文整理汇总(2021.06.07)
深度强化学习实验室 官网:http://www.neurondance.com/ 论坛:http://deeprl.neurondance.com/ 作者:深度强化学习实验室 来源:整理自https: ...
- Android 10开启调试模式
文章目录 调试背景 参考资料: 调试背景 在Android真机上调试程序有一个前提,就是这个apk包必须有 debuggable=true 的属性才行.而除了自己开发的apk能够控制打包属性之外,其他 ...
- 公安部82号令学习----2021.06.07
所有内容仅供学习使用,切勿用于商业用途 若有不妥之处,望各位大佬指出,小弟虚心请教 名词解释 互联网服务提供者(ISP):互联网运营商.电信.移动.联通.铁通等 联网使用单位:医院.学校.政府.机构等 ...
- [转载]Android开发常用调试技术记录
ANDROID 调试技术: 1)Ps 指令 ls –l /proc/27/ cat /proc/27/cmdline #cmdline文件表示了这个进程所在的命令行. cat /proc/ ...
- android开发常用技术,[转载]Android开发常用调试技术记录
ANDROID 调试技术: 1)Ps 指令 ls –l /proc/27/ cat /proc/27/cmdline #cmdline文件表示了这个进程所在的命令行. cat /proc/ ...
最新文章
- pugixml读取unicode编码的xml文件的做法
- centos6.7x86_64安装nginx (good)
- javascript转换
- 智能机器人比巴和智伴哪个好_扫地机器人和吸尘器哪个好?
- linux防火墙常用缩写,Linux iptables常用防火墙规则
- ant build.xml文件中能使用的属性介绍
- 公办低分二本_这六所公办二本高校的计算机类相关专业值得低分段考生选择
- 数据结构和算法(05)---链表(c++)
- Spring事务传播行为7种类型 --- 看一遍就能记住!
- Struts2中的全局结果集
- 实现两个Mysql数据库同步
- Airflow 中文文档:教程
- python零碎笔记整理1
- GVRP、VCMP、VTP、DTP——全网最完整的总结
- 旧版台式计算机,7年前老电脑开机比拼 Windows8秒杀XP
- 剑指offer——面试题57:删除链表中重复的结点
- C#照片合成PDF_ PDF合成或拆分PDF_PDF获取页数
- 一个小巧好用的Url编解码工具
- 用于 Linux* 的英特尔® 图形驱动程序 以后买本本的时候,先注意一下
- Blender-反转法线