本文转载自:http://blog.csdn.net/liwei16611/article/details/53056710

bring UP 需要做的工作

 

1、kernelspace

sensor driver : 驱动和设备树

2、userspace

camera 对应的chromatix library 和sensor  library

准备工作

1、模组原理图

2、sensor spec

3、sensor resolution

代码准备

1、kernel

1、设备树

kernel/arch/arm/boot/***-camera-sensor-cdp.dtsi

qcom,camera@20 {

compatible =“qcom,imx111”;

reg = <0x20>;

qcom,slave-id =<0x20 0x0 0x111>; //(slave id – 0x20, chip id address – 0x0, chip id –0x111)

qcom,csiphy-sd-index= <0>; //(Use CSIPHY subdev 0)

qcom,csid-sd-index= <0>; //(Use CSID subdev 0)

qcom,flash-src-index= <&led_flash0>; //(Use LED flash subdev 0)

qcom,mount-angle =<90>; //(mount angle 90 degree)

qcom,sensor-name =“imx111”;// (sensor name)

cam_vdig-supply =<&pm8941_l3>;// (Use L3 for VDIG)

cam_vana-supply =<&pm8941_l23>;// (Use L23 for VANA)

cam_vio-supply =<&pm8941_lvs2>; //(Use LVS3 for VIO)

cam_vaf-supply =<&pm8941_l17>; //(Use L17 for VAF)

qcom,cam-vreg-name= “cam_vdig”, “cam_vio”, “cam_vana”, “cam_vaf”;

qcom,cam-vreg-type= <0 1 0 0>; //(0 – LDO, 1 – LVS)

qcom,cam-vreg-min-voltage= <1225000 0 2850000 2850000>;// (min voltage)

qcom,cam-vreg-max-voltage= <1225000 0 2850000 2850000>;// (max voltage)

qcom,cam-vreg-op-mode= <105000 0 80000 100000>; //(Optimum mode)

qcom,gpio-no-mux =<0>;

gpios =<&msmgpio 15 0>, <&msmgpio 90 0>;

qcom,gpio-reset =<1>; //(Use gpio pin 90 for reset)

qcom,gpio-req-tbl-num= <0 1>; //(0 – pin 15, 1 – pin 90)

qcom,gpio-req-tbl-flags= <1 0>; //(0 – output gpio, 1 – input gpio)

qcom,gpio-req-tbl-label= “CAMIF_MCLK”, “CAM_RESET1”; //(gpio name)

qcom,gpio-set-tbl-num= <1 1>;// (1 – pin 90)

qcom,gpio-set-tbl-flags= <0 2>; //(0 – GPIOF_OUT_INIT_LOW, 2 -

GPIOF_OUT_INIT_HIGH)

qcom,gpio-set-tbl-delay= <1000 4000>; //(delay in micro sec)

qcom,csi-lane-assign= <0x4320>; //(Use 0x4320 for CSI lane assign)

qcom,csi-lane-mask= <0x1F>; //(Use 0x1F for lane mask)

qcom,sensor-position= <0>; //(0 – back camera, 1 – front camera)

qcom,sensor-mode =<1>;// (1 – 2D, 3 – 3D)

qcom,cci-master =<0>; //(0 – Master 0, 1 – Master 1)

status = “ok”;

};

2、驱动

 

kernel/drivers/media/platform/msm/camera_v2/sensor/imx111.c

vendor(chromatix library)

 

1、vendor/qcom/proprietary/mm-camera/mm-camera2/media-controller/modules/sensors/chromatix/0301/libchromatix/chromatix_imx111/

使用高通的chromatix  tunning 软件生成头文件。

2、vendor/qcom/proprietary/mm-camera/mm-camera2/media-controller/modules/sensors/sensor_libs/imx111/

需要配置以下信息:

1)init, start, stop寄存器配置

2)coarse_int_time_addr 、global_gain_addr 寄存器地址

3)x_output 、y_output、line_length_pclk 、frame_length_lines 寄存器地址

4)full/half resolution 寄存器配置

5)配置每个every resolution 对应的Chromatix library

6)配置每个resolution 对应的sensor_out_info

structsensor_lib_out_info_t sensor_out_info[] = {

{

.x_output = 0x0668,

.y_output = 0x04D0,

.line_length_pclk = 0xDD0,

.frame_length_lines = 0x04E6,

.vt_pixel_clk = 134400000,

.op_pixel_clk = 134400000,

.max_fps = 30,

.min_fps = 7.5,

.binning_factor = 1,

.mode = SENSOR_DEFAULT_MODE,

},

调试

1、测量camera的Power supply: AVDD, DOVDD, DVDD, AFVDD是否正确

2、测量MCLK波形是否正常

3、测量camera的PWDN/RESET是否正常

基础:高通bring up camera【转】的更多相关文章

  1. 高通msm8909耳机调试

    http://blog.csdn.net/mike8825/article/details/69489865?locationnum=3&fps=1 1.DTS相应修改: DTS相关代码:ke ...

  2. 高通camera结构(摄像头基础介绍)

    摄像头基础介绍 一.摄像头结构和工作原理. 拍摄景物通过镜头,将生成的光学图像投射到传感器上,然后光学图像被转换成电信号,电信号再经过模数转换变为数字信号,数字信号经过DSP加工处理,再被送到电脑中进 ...

  3. 高通Camera bring up软件流程【转】

    本文转载自:http://blog.csdn.net/liwei16611/article/details/51279658 高通camera bring up分为两种类型:YUV和bayerbrin ...

  4. 高通camera结构【转】

    本文转载自:http://www.cnblogs.com/whw19818/p/5853407.html 摄像头基础介绍 一.摄像头结构和工作原理. 拍摄景物通过镜头,将生成的光学图像投射到传感器上, ...

  5. 高通Android平台硬件调试之Camera篇

    之前一段时间有幸在高通android平台上调试2款camera sensor,一款是OV的5M YUV sensor,支持jpeg out,同时也支持AF,调试比较比较简单,因为别的项目已经在使用了, ...

  6. Android : 高通平台Camera调试之SetpropKey/camxoverridesettings.txt

    高通相关网址:Createpoint: https://createpoint.qti.qualcomm.com(可下载文档,Release Note等)Chipcode: https://chipc ...

  7. 高通camera基本代码架构【转】

    本文转载自:http://blog.sina.com.cn/s/blog_c0de2be70102vyn1.html 1  camera基本代码架构 高通平台对于camera的代码组织,大体上还是遵循 ...

  8. 高通平台Camera调试(一)【转】

    本文转载自:http://www.voidcn.com/blog/Winva/article/p-6044730.html 4.3. Camera 参考文档: 1) 80-NA157-22_PRESE ...

  9. 高通(QCOM)sensor bring up

    高通7150平台 1.添加驱动文件 2.添加编译 3.配置json文件 4.高通默认配置 5.部分sensor外挂电源 6.遇到的问题 1.添加驱动文件 路径:adsp_proc/ssc/sensor ...

随机推荐

  1. 补充[BNDSOJ]小p的数列

    强烈安利gjz的题解,看一遍即可ac:传送门 进入重点: 为啥$to=(dp[i][k][ii]+dp[k+1][j][jj])/2$ 位运算重点:a&b=a+b-a|b 为啥呢? 例子: a ...

  2. ubuntu 新建root用户

    1. sudo passwd :设置root用户密码 2. 切换用户 方式一:su 方式二: su root 3. 新增普通用户

  3. 19: vue项目使用整理

    1.1  axios 基本用法 安装:npm install axios -S                   # 也可直接下载axios.min.js文件 1.axios借助Qs对提交数据进行序 ...

  4. PY个树状数组

    树状数组看起来比较简单,于是就挑它下手了... 于是生活终于也对咱下手了... 要讲的就两个东西,一个是开数组,全局变量写最前面,数组是这么开的: f=[0 for i in range(500005 ...

  5. bootstrap table实现iview固定列的效果

    因为bootstrap自带的固定列效果满足不了公司需求,所以借助fixed-table这个插件完成了iview固定列的效果 <!DOCTYPE html> <html lang=&q ...

  6. mybatis报错(三)报错Result Maps collection does not contain value for java.lang.Integer解决方法

    转自:https://blog.csdn.net/zengdeqing2012/article/details/50978682 1 [WARN ] 2016-03-25 13:03:23,955 - ...

  7. Java多线程(1)

    线程与进程 进程:程序的执行过程 线程:线程共享进程的资源 Java多线程 实现的方式 继承Tread类:使用getName()获取当前线程名 实现Runnable接口:Thread.currentT ...

  8. Apache 网站日志分析

    1.获得访问前 10 位的 ip 地址 [root@apache ~]# cat access_log |awk '{print $1}'|sort|uniq -c|sort -nr|head -10 ...

  9. C# 中定义扩展方法

    1.编写扩展方法类 using System; using System.Collections.Generic; using System.Linq; using System.Text; name ...

  10. MFC学习笔记1---准备工作

    什么是MFC MFC,全称Microsoft Foundation Classes,微软基础类库,顾名思义,是微软的攻城狮们将一些常用的基础的Windows API 函数用C++的形式封装成类,简化程 ...