众所周知,camera在我们生活中应用十分广泛,在未来智能硬件社会,camera就是设备的眼睛,它的机器视觉也将扮演非常重要的角色。在我们移动设备终端中,我们知道camera模组是由镜头(lens)、传感器(sensor)、软板(FPC)、图像处理芯片(DSP)等4部分组成。决定一个摄像头好坏的重要部件是:镜头(lens)、图像处理芯片 (DSP)、传感器(sensor)。而今天我们主要偏向于软件侧,来介绍下Dragonboard410C Camera sensor bring up的一个配置。
第一部分、 Kernel 及 vendor porting( Sensor dtsi 及上下电时序)
第二部分 vendor层参数(其中包括 csiphy 、csid和其他参数)
(针对的是 msm8916,也兼容msm8926平台)
一、 Kernel及Vendor porting:
1、新 Porting 一颗 sensor kernel 需要添加和配置的
@arch/arm/configs/msm8226_defconfig
+ CONFIG_IMX135=y
@arch/arm/mach-msm/clock-8226.c
+ CLK_LOOKUP("cam_src_clk", mclk0_clk_src.c, "20.qcom,camera"),
+ CLK_LOOKUP("cam_clk", camss_mclk0_clk.c, "20.qcom,camera"),
+ CLK_LOOKUP("cam_src_clk", mclk0_clk_src.c, "20.qcom,eeprom"),
+ CLK_LOOKUP("cam_clk", camss_mclk0_clk.c, "20.qcom,eeprom"),
@arch/arm/boot/dts/msm8226-camera-sensor-qrd.dtsi
+ "qcom,imx135"
……
@ drivers/media/platform/msm/camera_v2/Kconfig
+ config IMX135
@drivers/media/platform/msm/camera_v2/sensor/Makefile
+ obj-$(CONFIG_IMX135) += imx135.o
@drivers/media/platform/msm/camera_v2/sensor/imx135.c
2、新 Porting 一颗 sensor User 需要添加和配置的
@vendor/qcom/proprietary/common/config/device-vendor.mk
+ MM_CAMERA += libchromatix_imx135_common
+ MM_CAMERA += libchromatix_imx135_default_video
+ MM_CAMERA += libchromatix_imx135_hfr_60
+ MM_CAMERA += libchromatix_imx135_hfr_90
+ MM_CAMERA += libchromatix_imx135_hfr_120
+ MM_CAMERA += libchromatix_imx135_liveshot
+ MM_CAMERA += libchromatix_imx135_preview
+ MM_CAMERA += libchromatix_imx135_snapshot
+ MM_CAMERA += libchromatix_imx135_video_hd
+ MM_CAMERA += libchromatix_imx135_zsl
+ MM_CAMERA += libmmcamera_imx135
@vendor/qcom/proprietary/mm-camera/mm-camera2/media-controller/modules/sensors/sens
or_libs/imx135
Add imx135 folder
Android.mk/imx135_lib.c imx135_lib.h
Note: build 出来的库放在 system/vendor/lib/下面
@vendor/qcom/proprietary/mm-camera/mm-camera2/media-controller/modules/sensors/chro
matix/0301/libchromatix/
Add chromatix_imx135 folder
Note: build 出来的库放在 system/vendor/lib/下面
3、 kernel 中需要客制化的地方
1) kernel 中 dtsi 详解
&cci { ……
qcom,camera@20 {
compatible = "qcom,imx135";
reg = <0x20>;
qcom,slave-id = <0x20 0x0016 0x0135>;
//0x20