Qualcomm平台camera bringup(三)

关于dtsi的配置:

Dts——device tree source(设备数源码)是一种用来描述硬件的数据结构,不同的硬件设备,其配置都是不一样

Device tree 由一系列被命名的节点和属性组成,而节点本身可包含子节点。所谓属性,其实就是成对出现的namevalue

Device tree的基本单元是node。这些node被组织成树状结构,除了root node, 每个node都只有一个parent。一个device tree文件中只能有一个root node。每个node中包含了若干的property/value来描述node的一些特性。

/ { "/" 表示root结点,该结点下有两个子结点node1和node2
    node1 { 结点"node1"下又含有子结点,本例中为"child-node1" 和 "child-node2",各结点都有一系列属性
        a-string-property = "Astring";属性是字符串
        a-string-list-property = "firststring", "second string";字符串数组
        a-byte-data-property = [0x01 0x23 0x340x56];二进制数组
        child-node1 {
            first-child-property;
            second-child-property = <1>;Cells(由u32整数组成)
            a-string-property = "Hello,world";
        };
        child-node2 {
        };
    };

几种常用的配电模式

①:pmic直接供电,这种较为简单,直接使用即可:如下这种就是直接使用pmic的

②:内部ldo供电,也可以直接使用——挂在spmi总线上,由写寄存器控制
内部ldo就是pmic的一个管脚,用来控制电压的输出;
例如:这里
引用了pm6150l_gpios这个节点,但这个节点原生就有,gpio口为3


 

③:外部ldo供电,需要自己定义节点,再引用这个节点,例如如下这种AF的供电方式

qcom,cam-sensor0 {
		cell-index = <0>;
		compatible = "qcom,cam-sensor";
		csiphy-sd-index = <0>;
		sensor-position-roll = <90>;
		sensor-position-pitch = <0>;
		sensor-position-yaw = <180>;
		actuator-src = <&actuator_main>;      //马达的节点
		led-flash-src = <&led_flash_rear>;    //闪光灯的节点
&cam_cci0{
	qcom,cam-res-mgr {
		compatible = "qcom,cam-res-mgr";
		status = "ok";
	};  
	  actuator_main: qcom,actuator@0 {              //在这里定义了这个actuator_main节点
		cell-index = <0>;
		reg = <0x0>;
		compatible = "qcom,actuator";
		cci-master = <0>;
		cam_vaf-supply = <&camera_bengal_af>;      //引用了真正的af供电管脚—camera_bengal_af
		regulator-names = "cam_vaf";
		rgltr-cntrl-support;
		rgltr-min-voltage = <2800000>;
		rgltr-max-voltage = <2800000>;
		rgltr-load-current = <100000>;
	};
      camera_bengal_af: gpio-regulator {          //定义cam_bengal_af管脚也是在cam_cci0下面
		compatible = "regulator-fixed";
		regulator-name = "camera_bengal_af";
		regulator-min-microvolt = <2800000>;
		regulator-max-microvolt = <2800000>;
		regulator-enable-ramp-delay = <233>;
		enable-active-high;
		gpio = <&tlmm 25 0>;                       //这里配置了它的gpio口为25
		pinctrl-names = "default";
		pinctrl-0 = <&camera_bengal_af_default>;   //最终通过pinctrl去控制
	};

&tlmm{
    camera_bengal_af_default: camera_bengal_af_default {
		mux {
			pins = "gpio25";
			function = "gpio";
		};

		config {
			pins = "gpio25";
			bias-disable;
			drive-strength = <2>;    //驱动能力
		};
	};
}

注:vreg供电——例如,挂在WL2864C芯片上,然后这个芯片又是挂在bb端(SM-4250-1-NSP752-TR-001-AA)上的,原理跟外部ldo控制一样

 

④:引入custom模式的配置

  • 平台提供了两个custom接口:
  • 分别是custom1custom2,如果不够的话,则需要自己添加
  • camx代码在cam_sensor_util.c

它是平台提供给我们自己自由使用的,具体的配置方法如下:

 

MIPI通路配置

看一下硬件原理图

以改颗camera为例data0连接的是line0data1连接的是line1data2连接的是line2data3连接的是line3,所以其在驱动中配置的就是0x3210

这里需要注意的是2mMIPI配置,因为一个csi只能连接一个cameracsi0csi1csi2,总共有3个,而我们这里是4摄,所有必然有两个camera需要共用一个csi2mcamera mipi传输数据有限,所有可以共用。mipi传输数据能力的决定因素之一就是lane数,还有一个就是传输的速度的能力。

其中:

1 lane 的话最大支持 2M
2lane 的话最大可以支持到8M
4lane 的话就更大了

       比如,如果 MIPI DDR 时钟值 (sensor MIPI 的时钟 lane 频率) 为 300Mhz, 同时sensor使用 4 个 lane (一组差分信号属于一个lane)传输数据, 每一个 lane 的数据率是 300*2 = 600Mhz. 因此, 总数据 
       率为 600*4= 2400Mhz. 对于 10bit 的 bayer sensor, op_pixel_clk 值可设置为 2400/10 = 240Mhz.这些值可以从 sensor 的寄存器设置中计算出来。 

D0连接的是bb端的line2,所以就是0x2(BB端的line3可以当做clk使用)

举例如下

sensor端

bb端

 

这里有张表格,laneAssign就是根据这种对应关系来进行匹配的:

Sensor

Line3

Lin2

Line1

Line0

全部连接

3

2

1

0

Sensorline0对应bb端的line2

0

0

0

2

Sensorline0对应bb端的line3

 

0

0

0

3

Sensorline0line1对应bb端的line0line1

 

0

0

1

0

Sensorline0line1对应bb端的line3line4

 

0

0

4

3

附:mipi switch 芯片配置

    目的是通过bb端将单个mipi通路能转成多路mipi通路,与combomode功能一样:加一个gpio(拉高或拉低)——相当于custom模式的配法

  • 1
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Qualcomm Chi-Hal相机引导EEPROM功能的意义在于为相机模块的初始化和校准提供关键的参数和配置信息。EEPROM是一种可编程的、可擦写的存储设备,用于保存数据。在相机模块中,EEPROM中存储了相机的校准数据、参数配置以及标定信息等关键数据。 首先,Chi-Hal是高通公司开发的一种软件开发套件,用于芯片级别的硬件抽象层开发。相机模块作为系统的重要组成部分,需要通过软件来进行初始化和配置,以实现其功能。而Chi-Hal相机引导EEPROM就是用来提供相机模块初始化和校准所需的关键信息,比如相机模块型号、焦距、曝光补偿、白平衡等参数,在软件层面上进行相机模块的配置。 其次,EEPROM的存在可以提高相机模块的稳定性和精确性。由于相机模块在生产过程中存在一定的差异和不确定性,因此需要进行个体化的校准和配置。而EEPROM作为存储校准参数的设备,可以确保每个相机模块都能获取到正确的校准数据,从而保证了系统的准确性和稳定性。 最后,Chi-Hal相机引导EEPROM的功能还可以使相机模块更易于维护和升级。在系统开发过程中,可能需要对相机模块进行升级或修复,而在这些过程中,EEPROM可以保存相机模块的历史记录和配置信息,以便于后续的操作和维护。 总之,Qualcomm Chi-Hal相机引导EEPROM是为了为相机模块的初始化和校准提供必要的数据和配置信息,以提高相机模块的稳定性和精确性,并方便维护和升级。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值