Camera dtsi解析

  • 平台: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 设备所需时钟的名称
    在这里插入图片描述

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在高通平台上,配置相机相关的设备树源代码(Device Tree Source Include,DTSI)是一种常见的方法。通过配置DTSI,可以定义相机的硬件功能、接口以及其他相关属性。这里是一个示例高通相机DTSI配置的一般结构: 1. 首先,需要定义相机的节点,例如: ``` camera@0 { compatible = "qcom,camera"; reg = <0x0>; ... }; ``` 在这个节点中,`compatible`属性定义了相机的兼容性字符串,`reg`属性定义了相机的注册地址。 2. 接下来,配置相机所需的时钟和电源,例如: ``` clocks = <&camera_clk>; clock-names = "xclk", "mclk"; power-supply = <&camera_vdd>; ``` 在这个示例中,`clocks`属性定义了相机所需的时钟源,`clock-names`属性定义了时钟的名称,`power-supply`属性定义了相机的电源。 3. 然后,配置相机的传感器和接口,例如: ``` sensor@0 { compatible = "qcom,sensor"; reg = <0x0>; ... }; port { sensor = <&sensor>; ... }; ``` 在这个示例中,`sensor`节点定义了相机所使用的传感器,`port`节点定义了相机的接口。 4. 最后,配置相机所支持的功能和属性,例如: ``` properties { ... }; ``` 在这个示例中,`properties`节点定义了相机的各种功能和属性。 注意,以上只是一个简单的示例,实际的配置可能更为复杂,具体的配置内容需要根据具体的硬件平台和相机驱动来确定。具体的高通相机DTSI配置可以参考高通的官方文档和相应的开发板资料。 https://www.codeaurora.org/

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值