【camx】camera sensor点亮

一.准备工作

a.文件准备
		1)驱动代码
		2)模组规格书
		3)datasheet文件
		4)硬件原理图
		5)接口文件
b.信息查找
	模组规格书:sensorname、视场角、景深、光圈、I2C地址、厂商
	datasheet文件:上电时序,sensor id
	硬件原理图:连接情况,如laneassign的计算
	接口文件:pin脚链接

注意:确保用到的pin脚都已经被释放

二.配置文件路径

	1.platform/vendor/qcom/proprietary/chi-cdk
		1.1 api/sensor/camxsensorcommon.xsd  //添加自定义使用的gpio口
		1.2 config/product.mk  //添加sensor需要生成的文件
		1.3 oem/Android.mk  //将驱动文件路径下的.mk添加进来
		1.4 oem/qcom/module/sensorname_module.xml	//根据硬件原理图获取到的laneassign修改填写;
		sensorname和modulename最好保持一致,视场角和景深根据规格书填写修改    
		cameraid根据core/chiframework/chxextensionmodule.cpp中查看**num**
		驱动文件:
		1.5 oem/qcom/sensor/sensorname/build/android/Android.mk
		1.6 oem/qcom/sensor/sensorname/build/linuxembeded/CMakeLists.txt
		1.7 oem/qcom/sensor/sensorname/sensor_name.cpp
		1.8 oem/qcom/sensor/sensorname/sensorname_sensor.xml	 //I2C地址、上电时序
		1.9 oem/qcom/tuning/sensorname/效果文件
		1.10 tools/buildbins/buildbins_bengal.yaml	//将1.4和1.8路径qcom之后部分添加进来
	2.platform/vendor/qcom/proprietary/devicetree-4.19
		2.1 qcom/bengan-pinctrl.dtsi	//函数中填写需要使用到的gpio口
	3.platform/vendor/qcom/proprietary/camera-devicetree
		3.1 bengal-camera-sensor-qrd.dtsi  //调用2.1中的函数和使用到的gpio口
	4.platform/vendor/opensource/camera-kernel
		4.1 drivers/cam_sensor_module/cam_sensor_utils/cam_sensor_cmn_header.h	//添加用到的电压gpio口
		4.2 drivers/cam_sensor_module/cam_sensor_utils/cam_sensor_util.c

dtsi上电文件关键参数详解
在bengal-camera-sensor-qrd.dtsi 文件中可以看到&cam_cci0和&cam_cci1两个函数,到底怎么确认配置在那个函数里面;在同目录下bengal-camera.dtsi中找到cam_cci0和cam_cci1并查看CCI_I2C_CLK和CCI_I2C_DATA对应的gpio口,看是否和接口文件一样;例如接口文件中camera0的CCI_I2C_CLK0和CCI_I2C_DATA0对应的gpio口分别是23,24,在bengal-camera.dtsi中CCI_I2C_CLK0和CCI_I2C_DATA0对应的gpio口也是23,24,并处于cci0里面;那么camera0就应该配置在bengal-camera-sensor-qrd.dtsi的cci0函数中。

	qcom,cam-sensor@2 {		//此处num和1.4中保持一致
            cell-index = <2>;		//此处num和1.4中保持一致
            compatible = "qcom,cam-sensor";
            reg = <0x2>;		//此处num和1.4中保持一致
            csiphy-sd-index = <0>;
            sensor-position-roll = <90>;
            sensor-position-pitch = <0>;
            sensor-position-yaw = <180>;

            cam_clk-supply = <&cam_cc_titan_top_gdsc>;
            regulator-names =
                    "cam_clk";
            rgltr-cntrl-support;
            rgltr-min-voltage = <0>;
            rgltr-max-voltage = <0>;
            rgltr-load-current = <0>;
            gpio-no-mux = <0>;
            pinctrl-names = "cam_default", "cam_suspend";
            pinctrl-0 = <&cam_sensor_mclk4_active		//2.1中的函数
                            &cam_sensor_active_rear_aux>;
            pinctrl-1 = <&cam_sensor_mclk4_suspend
                            &cam_sensor_suspend_rear_aux>;
            gpios = <&tlmm 33 0>,			//用到和gpio口
                    <&tlmm 38 0>,
                    <&tlmm 93 0>,
                    <&tlmm 50 0>,
                    <&tlmm 45 0>;
            gpio-standby = <1>; 
            gpio-vio = <2>;
            gpio-vana = <3>;
            gpio-vdig = <4>;
            gpio-req-tbl-num = <0 1 2 3 4>;
            gpio-req-tbl-flags = <1 0 0 0 0>;
            gpio-req-tbl-label = "CAMIF_MCLK4",//和上面gpios一一对应                                      
            						  "CAM_STANDBY",
                                    "CAM_CUSTOM_GPIO_VIO",
                                    "CAM_CUSTOM_GPIO_VANA",
                                    "CAM_CUSTOM_GPIO_VDIG";
            sensor-mode = <0>;
            cci-master = <1>;
            clocks = <&camcc CAM_CC_MCLK4_CLK>;
            clock-names = "cam_clk";
            clock-cntl-level = "turbo";
            status = "ok";
            clock-rates = <24000000>;
  • 2
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

来碗炒饭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值