1. 在调试imx307 效果的时候,预览图像的时候始终有些轻微抖动,后面发现是camera是时钟不对。

imx307要求是时钟是37.125M,设置的时钟也是37.125M,而平台分出来是时钟确只有35.5M,没有37.125M,需要打补丁。

PLL_NPLL分频cif clk out 37.125M补丁如下:

diff --git a/kernel/arch/arm/boot/dts/rk3288.dtsi b/kernel/arch/arm/boot/dts/rk3288.dtsi
index 38cda53..ffaf5c3 100755
--- a/kernel/arch/arm/boot/dts/rk3288.dtsi
+++ b/kernel/arch/arm/boot/dts/rk3288.dtsi
@@ -1195,6 +1195,10 @@compatible = "rockchip,rk3288-isp", "rockchip,isp";reg = <0x0 0xff910000 0x0 0x4000>;interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
+               //start for camera IMX307 mclk "sclk_vip_out" set 37.125M by lpz add
+               assigned-clocks = <&cru PLL_NPLL>, <&cru SCLK_VIP_SRC>, <&cru SCLK_VIP_OUT>;
+               assigned-clock-rates = <594000000>, <594000000>, <37125000>;
+               //end for camera IMX307 mclk "sclk_vip_out" set 37.125M by lpz addpower-domains = <&power RK3288_PD_VIO>;clocks =<&cru ACLK_ISP>, <&cru HCLK_ISP>, <&cru SCLK_ISP>,
diff --git a/kernel/drivers/clk/rockchip/clk-rk3288.c b/kernel/drivers/clk/rockchip/clk-rk3288.c
index b0168c7..4763030 100755
--- a/kernel/drivers/clk/rockchip/clk-rk3288.c
+++ b/kernel/drivers/clk/rockchip/clk-rk3288.c
@@ -469,7 +469,10 @@ static struct rockchip_clk_branch rk3288_clk_branches[] __initdata = {RK3288_CLKSEL_CON(42), 14, 2, MFLAGS, 8, 5, DFLAGS,RK3288_CLKGATE_CON(13), 15, GFLAGS),-       COMPOSITE_NODIV(0, "vip_src", mux_pll_src_cpll_gpll_p, 0,
+       //start for camera IMX307 mclk "sclk_vip_out" set 37.125M by lpz add
+       //COMPOSITE_NODIV(0, "vip_src", mux_pll_src_cpll_gpll_p, 0,
+       COMPOSITE_NODIV(SCLK_VIP_SRC, "vip_src", mux_pll_src_cpll_gpll_p, 0,
+       //end for camera IMX307 mclk "sclk_vip_out" set 37.125M by lpz addRK3288_CLKSEL_CON(26), 8, 1, MFLAGS,RK3288_CLKGATE_CON(3), 7, GFLAGS),COMPOSITE_NOGATE(SCLK_VIP_OUT, "sclk_vip_out", mux_vip_out_p, 0,
diff --git a/kernel/drivers/media/video/rk_camsys/camsys_cif.c b/kernel/drivers/media/video/rk_camsys/camsys_cif.c
old mode 100644
new mode 100755
index fce0784..a597ea6
--- a/kernel/drivers/media/video/rk_camsys/camsys_cif.c
+++ b/kernel/drivers/media/video/rk_camsys/camsys_cif.c
@@ -148,7 +148,9 @@ static int camsys_cif_clkout_cb(void *ptr, unsigned int on, unsigned int clkin)spin_lock(&clk->lock);if (on && (clk->out_on != on)) {clk_prepare_enable(clk->cif_clk_out);
-               clk_set_rate(clk->cif_clk_out, clkin);
+               //start for camera IMX307 mclk "sclk_vip_out" set 37.125M by lpz add
+               //clk_set_rate(clk->cif_clk_out, clkin);
+               //end for camera IMX307 mclk "sclk_vip_out" set 37.125M by lpz addclk->out_on = on;camsys_trace(1,  "%s clock out(rate: %dHz) turn on",
diff --git a/kernel/drivers/media/video/rk_camsys/camsys_marvin.c b/kernel/drivers/media/video/rk_camsys/camsys_marvin.c
old mode 100644
new mode 100755
index bef1dc1..cfe2974
--- a/kernel/drivers/media/video/rk_camsys/camsys_marvin.c
+++ b/kernel/drivers/media/video/rk_camsys/camsys_marvin.c
@@ -683,7 +683,9 @@ static int camsys_mrv_clkout_cb(void *ptr, unsigned int on, unsigned int inclk)mutex_lock(&clk->lock);if (on && (clk->out_on != on)) {
-               clk_set_rate(clk->cif_clk_out, inclk);
+               //start for camera IMX307 mclk "sclk_vip_out" set 37.125M by lpz add
+               //clk_set_rate(clk->cif_clk_out, inclk);
+               //end for camera IMX307 mclk "sclk_vip_out" set 37.125M by lpz addclk_prepare_enable(clk->cif_clk_out);clk->out_on = on;camsys_trace(1, "%s clock out(rate: %dHz) turn on",
diff --git a/kernel/include/dt-bindings/clock/rk3288-cru.h b/kernel/include/dt-bindings/clock/rk3288-cru.h
old mode 100644
new mode 100755
index 6cb872f..c4d55f0
--- a/kernel/include/dt-bindings/clock/rk3288-cru.h
+++ b/kernel/include/dt-bindings/clock/rk3288-cru.h
@@ -91,6 +91,7 @@#define SCLK_VIP_OUT           127#define SCLK_DDRCLK            128#define SCLK_I2S_SRC           129
+#define SCLK_VIP_SRC   135#define SCLK_MAC_PLL           150#define SCLK_MAC               151
(END)

打上补丁后imx307的mclk 37.125M正常了,预览界面也不会有抖动了,显示效果也得到了改善;

可以通过adb 查看clk是否正确:

cat ./sys/kernel/debug/clk/clk_summary |grep vip
          vip_src                         1            1   594000000          0 0
             sclk_vip_out                 1            3    37125000          0 0

2. 但又出现了新的问题,打上补丁后,导致100M以太网无法使用了。我们用100M以太网是由rk3288提供分频50M,

以太网50M是由PLL_NPLL分出来了,PLL_NPLL默认是500M,是可以正常分出50M的。

但是打上cif clk 37.125M补丁后,NPLL改成594M后,无法分出50M了,导致100M以太网无法使用了。

问题找到了,但两个问题是冲突的,二者只能取其一,母时钟还是不能乱动的,一动其他孩子可能就要断奶了。

只能找其他方法了,把整个时钟树列出来发现GPLL默认时钟就是594M,于是我们可以选着GPLL作为sclk_vip_out的母时钟,

既能分出37.125M,又不用改母时钟频率,这样camera IMX307和以太网都可以正常使用了,

补丁如下:

diff --git a/kernel/arch/arm/boot/dts/rk3288.dtsi b/kernel/arch/arm/boot/dts/rk3288.dtsi
index ffaf5c3..a025a91 100755
--- a/kernel/arch/arm/boot/dts/rk3288.dtsi
+++ b/kernel/arch/arm/boot/dts/rk3288.dtsi
@@ -1196,7 +1196,7 @@reg = <0x0 0xff910000 0x0 0x4000>;interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;//start for camera IMX307 mclk "sclk_vip_out" set 37.125M by lpz add
-               assigned-clocks = <&cru PLL_NPLL>, <&cru SCLK_VIP_SRC>, <&cru SCLK_VIP_OUT>;
+               assigned-clocks = <&cru PLL_GPLL>, <&cru SCLK_VIP_SRC>, <&cru SCLK_VIP_OUT>;assigned-clock-rates = <594000000>, <594000000>, <37125000>;//end for camera IMX307 mclk "sclk_vip_out" set 37.125M by lpz addpower-domains = <&power RK3288_PD_VIO>;

[RK3288][Android7.1][Camera] IMX307 mclk 37.125M补丁相关推荐

  1. rk3288 android7.1 蓝牙传送文件失败

    rk3288 android7.1本身就支持rtl8723bs蓝牙wifi模块,直接将ap6236替换为rtl8723bs时,发现蓝牙传送文件失败,通过如下修改,可正常使用. /packages/ap ...

  2. 2020-02-24 RK3288 Android7.1 5.1 增加AP6256 WI-FI Bluetooth调试记录

    RK3288 Android7.1 5.1 增加AP6256 WI-FI Bluetooth调试记录 一.硬件连接图,AP6335.AP6255.AP6256 Pin对Pin,可以直接替换. 二.原本 ...

  3. [RK3288][Android7.1]在Root用户下的一个简单更改开机动画的小工具

    [RK3288][Android7.1]在Root用户下的一个简单更改开机动画的小工具 Platform: Rockchip OS: Android 7.1.2 Kernel: 4.4 需求: 在使用 ...

  4. RK3288 android7.1.2 android studio 用户空间通过spi ioctl读取flash ID(进阶篇五)

    准备工作: 1.搭建adbwireless 环境 参考:https://blog.csdn.net/Chhjnavy/article/details/97643584 https://blog.csd ...

  5. [RK3288 Android7.1.2 ]新增wifi模块ap6256

    Platform: ROCKCHIP Chip: RK3288 OS: Android7.1.2 Kernel: 4.4.143 背景 旧板wifi模块ap6235,硬件将wifi模块替换成ap625 ...

  6. RK3288 Android7.1 接USB摄像头后扬声器无声音

    问题 接入某些USB摄像头后, 扬声器没有声音 2017-01-01 21:19:24.770 228-287/? E/AudioHardwareTiny: pcm_open(PCM_CARD_HDM ...

  7. rk3288 android7.1 横竖屏切换(动画过度)

    1.android 横竖屏切换上层从HdmiSettings.java 开始.我们从这里开始分析. 路径:packages\apps\Settings\src\com\android\settings ...

  8. [RK3288][Android7.1] 调试笔记 --- 24bit bmp 转成 8bit bmp

    Platform: RK3288 OS: Android 7.1 Kernel: v4.4.83 背景: 在rk3288平台上uboot logo发现24bit bmp不能正常显示,参考原始logo. ...

  9. [RK3288][Android7.1] 调试笔记 --- 替换桌面壁纸显示拉伸且局部显示问题

    Platform: RK3288 OS: Android 7.1.2 Kernel: v4.4.143 问题: 客户在横屏系统设置中导入一张1920*1080的壁纸,显示不正常,如下图壁纸效果与原图的 ...

  10. [RK3288][Android7.1]调试笔记 --- 解决主板HDMI接口输出给个别电视机无声音问题

    Platform: RK3288 OS: Android 7.1.2 Kernel: v4.4.143 问题: HDMI输出给个别电视机时,电视机无声音 分析步骤: 1.用以下命令测试HDMI是否有输 ...

最新文章

  1. 计算机网络管理的常用命令,网络管理常用命令图文详解.pdf
  2. 计算机约束措施是参考,【计算机应用论文】高校计算机机房管理问题与改进策略(共4460字)...
  3. spring boot Filter过滤器的简单使用
  4. ZRender实现粒子网格动画实战
  5. Java ClassLoader getParent()方法与示例
  6. android的wake_lock介绍
  7. 使用c语言函数的小结,C语言函数指针小结(1)
  8. CPT205-Computer Graphics
  9. JointJs快速入门
  10. 6.计蒜客ACM题库.A2011 Magic Mirror
  11. python爬取b站up主粉丝信息_使用Python爬取B站数据
  12. 李阳疯狂英语助教工作总结
  13. java 读取gzip_Java读取GZIP
  14. 阿里云服务器租用价格表(2021年最新版)
  15. Android学生信息管理系统
  16. 生产计划排产软件如何解决生产难题?
  17. 计算机的人文素养知识,勤阅读,拓视野——记计算机科学学院人文素养提升计划阅读能力提升专题讲座...
  18. 各种数据类型的取值范围
  19. iOS 控制任务执行顺序
  20. 【线程池的工作参数、什么情况下会触发最大线程数?什么情况下会回收线程?】

热门文章

  1. IPlImage的width和widthStep
  2. ios md5和java不一致,关于C#MD5与javaMD5不一致有关问题
  3. 【文献翻译】基于CVSS的IT系统网络安全风险定量评估方法-A Quantitative CVSS-Based Cyber Security Risk Assessment Methodology
  4. h5+vue+php仿微信源码-泡泡IM
  5. OCR应用场景:票总管发票管理系统
  6. Excel学习笔记:P22-时间格式、工龄与工时计算
  7. 什么软件画er图方便_ER模型怎么画?必备入门级模型图绘制软件
  8. 基于Python和MySQL的学生信息管理系统
  9. 01-Axure9入门培训
  10. C#固高运动控制卡PT模式使用