高通平台Camera sensor bring up!


本文主要针对高通平台SM7250进行描述,当然高通平台可能基本都差不多【第一个项目】
—only for sensor probe sucess.

0. 准确

【0】. 不管是哪个平台都要先去看平台camera bring up 的文档,确认需要配置的内容;
【1】. 拿到sensor 的硬件图用来配置sensormodule.xml;
【2】. 拿到sensor的Datasheet,用来配置sensor.xml;
【3】. 拿到项目硬件图用来配置kernel层的dtsi和pinctrl。
【4】. 配置完成后先检查上电是否成功,I2C,sensor初始化。

1. Kernel 底层驱动配置

主芯片GPIO分布

Kernenl层的驱动配置主要是关于sensor的上下电、i2c通讯的配置,高通有专门的dtsi来配置上下电、cci等配置。通过硬件电路图配置相应的引脚。CAM_MCLK、CCI_I2C_SDA/SCL、MIPI_CSI、CAM_ID2这些引脚与CPU芯片中GPIO的连接是多少。
首先查看电路图中相关sensor的引脚分别连接到哪里。

电路图中会写明每个sensor的AVDD、DVDD、IOVDD对应的上电接口。

确认AVDD、DVDD、IOVDD是否存在使能口上电。

1.1 dtsi

主要是实现sensor的上下电、时钟、I2C的硬件连接配置。这部分要拿到相关sensor的硬件图和datasheet以及sensor的xml配置,其实主要是让sensor保证GPIO上电和电压范围和I2C是通的。
首先查看代码库中的配置格式,其次是先表明白AVDD、DVDD、IOVDD的电源的接口是怎么上电的。是否有上电使能口
上电的操作一般分为两种,一种是PMIC供电,另外一种的GPIO供电,根据高通文档说明,两种的定义不太相同。根据硬件图来确定供电口。
SM7250平台中,AVDD是有使能口打开电源的,DVDD和IOVDD是PMIC供电的。所以对于使能口需要在dtsi中单独去定义的。
这部分的定义如下:

camera_vana0_ldo: gpio-regulator@0 {
	compatible = "regulator-fixed";
	reg = <0x00 0x00>;
	regulator-name = "camera_vana0_ldo";
	regulator-min-microvolt = <2800000>;
	regulator-max-microvolt = <2800000>;
	regulator-enable-ramp-delay = <233>;
	enable-active-high;
	gpio = <&tlmm 70 0>;
	pinctrl-names = "default";
	pinctrl-0 = <&cam_sensor_0_vana>;
	vin-supply = <&BOB>;
	};

接下来配置sensor的dtsi,结合sensor的SPEC来确定电压范围,所以定义的dtsi如下:

	qcom,cam-sensor@2 {
		cell-index = <2>;
		compatible = "qcom,cam-sensor";
		reg = <0x02>;
		csiphy-sd-index = <1>;
		sensor-position-roll = <270>;
		sensor-position-pitch = <0>;
		sensor-position-yaw = <0>;
		eeprom-src = <&eeprom_front>;
		cam_vio-supply = <&L7P>;
		cam_vana-supply = <&camera_vana0_ldo>;
		cam_vdig-supply = <&L1P>;
		cam_clk-supply = <&titan_top_gdsc>;
		regulator-names = "cam_vio","cam_vana", "cam_vdig", "cam_clk";
		rgltr-cntrl-support;
		pwm-switch;
		rgltr-min-voltage = <1800000 2800000 1050000 0>;
		rgltr-max-voltage = <1800000 2800000 1050000 0>;
		rgltr-load-current = <0 80000 105000 0>;
		gpio-no-mux = <0>;
		pinctrl-names = "cam_default", "cam_suspend";
		pinctrl-0 = <&cam_sensor_mclk1_active
                            &cam_sensor_active_frontt>;
		pinctrl-1 = <&cam_sensor_mclk1_suspend
                             &cam_sensor_suspend_frontt>;
		gpios = <&tlmm 14 0>,
			<&tlmm 29 0>;
		gpio-reset = <1>;
		gpio-req-tbl-num = <0 1>;
		gpio-req-tbl-flags = <1 0>;
		gpio-req-tbl-label = "CAMIF_MCLK2",
				     "CAM_RESET2";
		sensor-mode = <0>;
		//cci-device = <1>;
		cci-master = <0>;
		status = "ok";
		clocks = <&camcc CAM_CC_MCLK1_CLK>;
		clock-names = "cam_clk";
		clock-cntl-level = "turbo";
		clock-rates = <24000000>;
	};

上电完成后,还需要注意的是:cci-master一般只有两个cci-master,但是在7250平台上,有了三个cci-master,这时候,要先在kernel代码库中先去看一下cci-master的地址定义。如果cci-master配置不对,很有可能push了dtbo boot后出现无法开机的情况。
另外,根据习惯,配置完dtsi需要检查是否上电成功,在dtsi配置的过程中,我们的sensor出现了AVDD没有上电成功,但是相机probe成功并且可以打开相机的情况。按照正常情况这是不科学的,而且如果两个以上的相机共用同一个供电口,不好检查问题。因此,dtsi配置完成,首要任务就是检查上电电压是否正确。

1.2 pinctrl

结合dtsi来确定pinctrl是否需要添加。
pinctrl主要是定义GPIO的。如果相应的GPIO没有定义,需要在pinctrl下定义。

2. Chi-Cdk XML 配置

2.1 sensormodule

sensormodule主要是结合sensor的SPEC来填写的。这部分内容主要包括

name
cameraId2
moduleName
sensorName
eepromName
position
CSIInfoimportant△△△△

CSIIinfo这部分主要是关系到sensor是否和其他的sensor共用CCI。
在高通文档中,对于sensor的CSI配置有说明,可以去查看文档。

lensinfo
FocalLength
fNumber
minFocusDistance
maxFocusDistance
horizontalViewAngle
verticalViewAngle
2.2 sensor

对于sensor的配置每一个都需要确认。
camximagesensordata.cpp
每个sensor的XML文件中基本包含的信息,在配置过程中要确定一下信息的准确性。

name
slaveinfo
sensorId
regaddrinfo
resolutioninfo
exposureControlInfo
streamonsetting
streamoffsetting
groupholdonsetting
groupholdoffsetting
initsettings
testPatternInfo
colorlevelinfo
opticalblackregionInfo
pixelarrayinfo
delayinfo

3. CHECK

  • dtsi配置完成先去硬件组检查是否每个上电口都已经上电成功;【这一点非常非常重要】
  • 接下来检查CCI-master是否通讯成功;
  • 检查MIPI是否有信号;
  • 检查sensor初始化流程是否有问题:streamon,initsettings,linecount,settleTImeNs etc;
  • push sensor的Bin外,还需要push sensor的so;
    camxsensornode.cpp
    camximagesensordata.cpp
    这里需要注意的一点是sensor对应的so需要同时的push到手机,如果so没有加载到,会使相机预览不正常和信号传输错误。
  • 11
    点赞
  • 91
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
高通Camera Sensor移植是将高通(Qualcomm)公司设计的相机传感器应用于其他设备或系统的过程。由于高通相机传感器在市场上享有良好的声誉,因此许多厂商希望将其移植到自己的产品中,以提供更出色的图像质量和相机性能。 然而,高通Camera Sensor移植过程中可能会遇到一些主要问题。首先,由于高通相机传感器和目标系统之间的硬件兼容性问题,需要进行适当的硬件连接和接口调整。这涉及到了电路设计和信号处理的挑战。 其次,高通Camera Sensor移植还需要在软件层面上与目标系统进行兼容。这涉及到调整相机驱动程序和相机固件,确保其能够与目标系统的操作系统和应用程序进行良好的交互。这可能需要一定的软件开发和调试工作。 另一个问题是,高通Camera Sensor移植对于非高通芯片的设备来说,可能需要高通的授权和支持。因为高通的相机传感器技术是他们的知识产权,使用和集成这些技术可能需要一定的授权和许可。 最后,高通Camera Sensor移植还需要进行实际的测试和验证。这包括对图像质量、色彩还原、光感和图像稳定性进行全面评估,以确保移植的相机传感器能够在目标系统中达到预期的效果。 综上所述,高通Camera Sensor移植虽然能够为设备带来更出色的相机性能,但在硬件兼容性、软件兼容性、授权和测试验证等方面都存在一些挑战和问题,需要开发者进行一定的研究和努力来解决。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值