添加一款新摄像头流程

1添加sensor kernel driver, 主要实现上电、rst、pwd、mclk等power setting,sensor prob & sensor  i2c driver prob 和 v4l2_subdev 注册

\kernel\drivers\media\platform\msm\camera_v2\sensor\ov5648.c

2 添加编译选项

obj-$(CONFIG_OV5648)+= ov5648.o

kernel\drivers\media\platform\msm\camera_v2\sensor\Makefile

3 添加编译开关

CONFIG_OV5648=y

kernel/arch/arm/configs/msm8974_defconfig

kernel/arch/arm/configs/msm8974-perf_defconfig

config OV5648

bool "Sensor OV5648 (BAYER 5M)"

depends on MSMB_CAMERA

---help---

OmniVision 5 MP Bayer Sensor,supports 2 mipi lanes,

preview and snapshot config at1932 * 1092 at 30 fps,

hfr video at 60, 90 and 120 fps.This sensor driver does

not support auto focus.

kernel/drivers/media/platform/msm/camera_v2/Kconfig

4 device tree 修改

添加相应sensor的device tree描述

Kenel/arch/arm/boot/dts/msm8974-camera-sensor-cdp.dtsi

+       qcom,camera@6c {
+               compatible = "qcom,ov5648";
+               reg = <0x6c 0x0>;
+               qcom,slave-id = <0x6c 0x300A 0x5648>;
+               qcom,csiphy-sd-index = <2>;
+               qcom,csid-sd-index = <2>;
+               qcom,mount-angle = <90>;
+               qcom,sensor-name = "ov5648";
+               qcom,vdd-cx-supply = <&pm8841_s2>;
+               qcom,vdd-cx-name = "qcom,vdd-cx";
+               cam_vdig-supply = <&pm8941_l22>;
+               cam_vana-supply = <&pm8941_l17>;
+               cam_vio-supply = <&pm8941_lvs3>;
+               qcom,cam-vreg-name = "cam_vdig", "cam_vana", "cam_vio";
+               qcom,cam-vreg-type = <0 0 1>;
+               qcom,cam-vreg-min-voltage = <1500000 2800000 0>;
+               qcom,cam-vreg-max-voltage = <1500000 2800000 0>;
+               qcom,cam-vreg-op-mode = <105000 80000 0>;
+               qcom,gpio-no-mux = <0>;
+               gpios = <&msmgpio 17 0>,
+                       <&msmgpio 18 0>,
+                       <&msmgpio 89 0>;
+               qcom,gpio-reset = <1>;
+               qcom,gpio-standby = <2>;
+               qcom,gpio-req-tbl-num = <0 1 2>;
+               qcom,gpio-req-tbl-flags = <1 0 0>;
+               qcom,gpio-req-tbl-label = "CAMIF_MCLK",
+                                         "CAM_RESET1",
+                                         "CAM_STANDBY";
+               qcom,gpio-set-tbl-num = <1 1>;
+               qcom,gpio-set-tbl-flags = <0 2>;
+               qcom,gpio-set-tbl-delay = <1000 30000>;
+               qcom,csi-lane-assign = <0x4320>;
+               qcom,csi-lane-mask = <0x7>;
+               qcom,sensor-position = <1>;
+               qcom,sensor-mode = <1>;
+               qcom,sensor-type = <0>;
+               qcom,cci-master = <1>;
+               status = "ok";
+       };

5 hal层修改,添加hal层sensor libs 代码,实现对应sensor的init setting, preview setting, 各种resolution setting , group on ,group off,csi csid config etc.  customer 端sensor主要实现

vendor\qcom\proprietary\mm-camera\mm-camera2\media-controller\modules\sensors\sensor_libs\ ov5648

6 hal层 raw camera效果调试文件

vendor\qcom\proprietary\mm-camera\mm-camera2\media-controller\modules\sensors\chromatix\0301\libchromatix\ chromatix_ov5648

7 hal层编译

MM_CAMERA +=libmmcamera_ov5648

MM_CAMERA +=libchromatix_ov5648_common

MM_CAMERA +=libchromatix_ov5648_preview

MM_CAMERA +=libchromatix_ov5648_default_video

MM_CAMERA +=libchromatix_ov5648_hfr

MM_CAMERA +=libchromatix_ov5648_zsl

vendor/qcom/proprietary/common/config/device-vendor.mk

End

msm8974 camera driver添加新摄像头kernel hal修改相关推荐

  1. Android 驱动(17)---如何在linux中添加新的kernel module

    如何在linux中添加新的kernel module 该SOP针对客户如何添加一个kernel module,并把生成的.ko打包进system.img的过程. 解决方案 L版本(version> ...

  2. Linux——安全权限(禁止添加新用户+umask值+修改默认密码最长有效期)

    目录 一.不再允许添加新用户的请求 演示: 二.umask值: (1)简介: (2)查看: (3)为什么 umask 里目录是 022,文件是 002? (4)演示: (5)更改: 三.修改默认的密码 ...

  3. linux2.6添加新硬盘,Linux_TurboLinux11添加新硬盘方法,一.Linux的硬盘识别2.6 kernel - phpStudy...

    2.6 kernel以后,linux会将识别到的硬件设备,在/dev/下建立相应的设备文件.如: sda表示第1块SCSI硬盘. hda表示第1块IDE硬盘(即连接在第1个IDE接口的Master口上 ...

  4. Android下添加新的自定义键值和按键处理流程【转】

    本文转载自: Android下添加新的自定义键值和按键处理流程 说出来不怕大家笑话,我写这篇博客的原因在于前几天去一个小公司面试Android系统工程师,然后在面试的时候对方的技术总监问了我一个问题, ...

  5. Mtk camera driver

    引用: http://blog.chinaunix.net/uid-26009923-id-3999723.html 1 kd_imgsensor.h 这个文件定义了camera节点的名字 /* CA ...

  6. 无人驾驶(在apollo中添加新车辆)

    [ 声明:版权所有,欢迎转载,请勿用于商业用途.  联系信箱:feixiaoxing @163.com] 目前最火的自动驾驶平台其实是百度的apollo,但是大家有没有想过,apollo是如何利用工控 ...

  7. make menuconfig 添加新选项

    如何在make menuconfig 界面添加新选项步骤: 1.先在Linux内核源码目录下创建个新目录(哪个位置都行,一般添加新驱动时,都会在 drivers目录下创建,这里为了实验的方便就在 源码 ...

  8. [iMX6UL开发常见问题连载2.2] 内核make menuconfig 如何剪裁,如何添加新设备?

    i.MX6UL/i.MX6ULL开发常见问题 基于米尔电子 i.MX6UL/i.MX6ULL产品 V.10 2.2内核make menuconfig 如何剪裁,如何添加新设备? 答:如下讲如何配置内核 ...

  9. openwrt添加新平台支持

    来自:https://wiki.openwrt.org/doc/devel/add.new.platform 添加新的平台支持 您可以找到目前支持的所有https://dev.openwrt.org/ ...

最新文章

  1. Git学习系列之Git基本操作克隆项目(图文详解)
  2. 苹果ipa签名工具免越狱下载_苹果iphone免越狱使用iTunes 一键下载旧版本app
  3. 利用github-pages建立个人博客
  4. matlab怎么在c 中调用,在C中调用Matlab (转)
  5. 一步步学习如何安装并使用SAP HANA Express Edition
  6. solidity编写eth智能合约之contract 创建合约(二)
  7. LeetCode 2200. 找出数组中的所有 K 近邻下标
  8. 亿级流量背后战场,京东11.11大促全方位技术揭秘
  9. 部门角色权限rbac_直白的解说一下RBAC权限设计
  10. pringboot+vue 基于springboot房屋租赁管理系统#毕业设计
  11. Day 35 年会抽奖 + 抄送列表
  12. 柔性电流传感器(柔性电流探头)的工作原理和特点是什么?
  13. Spring Cloud Gateway编码实现任意地址跳转
  14. 什么是模型?什么是建模?
  15. w ndows7怎么安装,《联想Y460在Wndows7系统下完美安装XP系统的方法.doc
  16. XCode官方直接下载地址
  17. 免费在线工具分享 | 录屏、视频转gif、gif剪切、音频剪切、音频合并
  18. crash: mod命令
  19. Bi-directional Cross-Modality Feature Propagation with Separation-and-Aggregation Gate for RGB-D Sem
  20. 工作小妙招之EXCEL中根据生日日期计算年龄

热门文章

  1. 007_支持序列化空值
  2. 026_JavaScript数组排序
  3. 031_div和span
  4. debian linux u盘安装,使用U盘安装Debian系统图文教程
  5. MyBatis之使用JSONObject代替JavaBean优雅返回多表查询结果
  6. vue 背景透明度_一款媒体小白喜爱的视频编辑软件,vue视频编辑APP,想学就来...
  7. c类网络使用子网掩码有无实际意义_弄懂IP系列(2)(刘晶作品)|子网掩码到底是啥?...
  8. 软件性能测试pdf,软件性能测试解析与优化.pdf
  9. c 语言贪心钓鱼思路,2020届九年级中考语文复习教案:第4讲现代文阅读之概括(27页)-原创力文档...
  10. python调用adb传输电脑文件到手机_使用adb在电脑和手机间传文件