-
平台:8909
参考kernel/Documentation/devicetree/bindings/media/video/msm-cci.txt的注释 -
sensor配置
-
cell-index = <0>; 唯一标识,用来区分多个摄像头。
-
源码:kernel/drivers/media/platform/msm/camera_v2/sensor/msm_sensor_driver.c
-
cell index标识camera安装的位置,这个值只要唯一即可!
-
compatible = “qcom,camera”;
-
匹配节点,驱动和设备的compatible属性相同时,才会调用probe函数。
-
dtsi里面配置就是设备,下面的源码对应的就是驱动,这两个属性相同。
-
源码:kernel/drivers/media/platform/msm/camera_v2/sensor/msm_sensor_driver.c
-
reg = <0x2> i2c地址
-
qcom,csiphy-sd-index = <0>;
-
用于接收传感器数据的csiphy实例,可以配置的值:0,1,2
-
源码:kernel/drivers/media/platform/msm/camera_v2/sensor/io/msm_camera_dt_util.c
-
qcom,csid-sd-index = <0>;
-
用于接收传感器数据的csid核心实例,可以配置的值:0,1,2
-
源码:kernel/drivers/media/platform/msm/camera_v2/sensor/io/msm_camera_dt_util.c
-
qcom,mount-angle = <90>;
-
摄像头在设备上的物理安装角度,可以配置的值:0,90,180,360,sensor raw图默认的方向都是90或者270!
-
qcom,eeprom-src = <&eeprom0>;
-
如果支持otp(eeprom)的话,就配置成各种的eeprom节点,否则不配置。
-
qcom,actuator-src = <&actuator0>;
-
如果支持马达的话,就配置成各自的马达节点,否则不配置。
-
qcom,led-flash-src = <&led_flash0>;
-
如果支持闪光灯的话,就配置成各自的闪光灯节点,否则不配置。
-
cam_vana-supply = <&pm8916_l2>;
-
avdd供电,是否是要配置,配置成哪路系统供电,需要和硬件沟通!
-
cam_vdig-supply = <&pm8916_s3>;
-
dvdd供电,是否是要配置,配置成哪路系统供电,需要和硬件沟通!
-
cam_vio-supply = <&pm8916_l10>;
-
iovdd供电,是否是要配置,配置成哪路系统供电,需要和硬件沟通!
-
cam_vaf-supply = <&pm8916_l11>;
-
马达供电,是否是要配置,配置成哪路系统供电,需要和硬件沟通!
-
qcom,cam-vreg-name等
-
qcom,cam-vreg-name = “cam_vana”,“cam_vdig”,“cam_vio”, “cam_vaf”;
-
配置sensor需要的所有电源。
-
可配置选项:“cam_vdig”, “cam_vana”, “cam_vio”, “cam_vaf”
-
分别代表含义:dvdd,avdd,iovdd,af供电
-
不一定要全部配置,用到哪路配哪路,有些电路硬件自己拉高了,具体跟硬件沟通。
-
qcom,cam-vreg-type = <0 0 0 0>;
-
指定用于此sensor的电源类型,1表示不使用,0表示使用。默认配0.
-
其他配置参考
-
qcom,cam-vreg-min-voltage = <2800000 1500000 1800000 2800000>;
-
供电电源的最大值,单位mV
-
第一个dvdd最大值为2800000mA=2.8V,其他同理
-
qcom,cam-vreg-max-voltage = <2800000 1500000 1800000 2800000>;
-
供电电源的最小值,单位mV
-
第一个dvdd最小值为2800000mA=2.8V,其他同理
-
qcom,cam-vreg-op-mode = <200000100000 80000 100000>;
-
供电电源的最佳电压水平。
-
比如第一个dvdd最佳电压水平为200000
-
常用值:200000 100000 105000 80000 0
-
顺序一一对应
-
pinctrl-names pinctrl-0 pinctrl-1
-
按照顺序一一对应的
-
pinctrl-names = “cam_default”, “cam_suspend”;
-
默认就这么配置,前面代表clk,后面代表reset脚和standby脚,唤醒作用。
-
kernel/drivers/media/platform/msm/camera_v2/sensor/io/msm_camera_dt_util.c
-
pinctrl-0 = <&cam_sensor_mclk0_default &cam_sensor_rear_default>;
-
kernel/arch/arm/boot/dts/qcom/msm8909-pinctrl-i18.dtsi
-
这里的gpio配置成多少,和硬件沟通
-
pinctrl-1 = <&cam_sensor_mclk0_sleep &cam_sensor_rear_sleep>
-
这里的gpio配置成多少,和硬件沟通
-
gpio相关
-
一一对应的
-
26 对应 CAMIF_MCLK
-
29 对应 CAM_RESET0
-
33 对应 CAM_STANDBY
-
qcom,gpio-reset = <1>;
-
传感器 reset脚的索引,这里是1
-
qcom,gpio-standby = <2>
-
传感器 standby脚的索引,这里是2
-
qcom,gpio-req-tbl-num = <0 1 2>;‘
-
mclk,reset,stanby的索引,由于mclk为0,qcom,gpio-reset = <1>,qcom,gpio-standby = <2>
-
因此配置成 <0,1,2>
-
qcom,gpio-req-tbl-flags = <1 0 0>;
-
gpio的方向,mclk为1,表示输出,reset和standby为0,表示输入。
-
qcom,gpio-req-tbl-label
-
gpio的名称。常用值:
-
“CAMIF_MCLK”, “CAM_RESET”,“CAM_STANDBY”;
-
“CAMIF_MCLK0”, “CAM_RESET0”,“CAM_STANDBY0”;
-
“CAMIF_MCLK1”, “CAM_RESET1”,“CAM_STANDBY1”;
-
“CAMIF_MCLK2”, “CAM_RESET2”,“CAM_STANDBY2”;
-
qcom,sensor-position = <0>;
-
camera位置。
-
0-后摄
-
1-前摄
-
0x100-副摄(目前只有后摄有副摄,前摄暂时没有)
-
qcom,sensor-mode = <0>;
-
传感器模式支持
-
0 -> back camera 2D
-
1 -> front camera 2D
-
2 -> back camera 3D
-
3 -> back camera int 3D
-
qcom,cci-master = <0>;
-
sensor使用的master id。可选值
-
0 -> MASTER 0
-
1 -> MASTER 1
-
clocks相关
-
clocks 设备使用的时钟
-
clock-names 设备所需时钟的名称