1. 文档适用平台
此类平台的 isp
driver 按照 isp 硬件版本来区分,具体命名如下:RK3288/RK3399 平台 ISP Driver 名称:cif_is
P10
2.
camera 文件目录说明
RK3288/RK3399 Linux kernel:
|
|arch/
arm/boot/dts DTS 配置文件
|drivers/
media
|
|platform/rk-isp10 ISP Host 驱动
|
I2C/
SOC_camera/rockchip/ Camera Sensor 驱动
3. Camera 设备注册(DTS)
3.1
mipi Sensor 注册
camera0: camera-module@36 {
status = "okay";//是否加载
模块,默认开启
compatible = "
OmniVision,
OV2710-v4l2-i2c-subdev";
//omnivision sensor 类型
//ov2710-v4l2-i2c-subdev 中 ov2710 为 sensor 型号 //需要与驱动名字一致
reg = <0x36>;// Sensor I2C 设备地址
device_type = "v4l2-i2c-subdev";//设备类型
clocks = <&clk_cif_out>;//sensor clickin 配置
clock-names = "clk_cif_out";
pinctrl-names = "rockchip,camera_default", "rockchip,camera_sleep";
pinctrl-0 = <&cif_dvp_clk_out>;
pinctrl-1 = <&cif_dvp_clk_out_sleep>;
rockchip,pd-
GPIO = <&gpio3 GPIO_B0 GPIO_ACTIVE_HIGH>;
//
powerdown 管脚分配及有效电平
rockchip,pwr-gpio = <&gpio3 GPIO_B5 GPIO_ACTIVE_HIGH>;
//power 管脚分配及有效电平
rockchip,rst-gpio = <&gpio3 GPIO_D1 GPIO_ACTIVE_LOW>;
//reset 管脚分配及有效电平
rockchip,camera-module-mclk-name = "clk_cif_out";//mclk 时钟源配置
rockchip,camera-module-facing = "back";//前后置配置
rockchip,camera-module-name = "LA6110PA";//Camera 模组名称
rockchip,camera-module-len-name = "Y
M6011P";//Camera 模组镜头
rockchip,camera-module-fov-h = "128";//模组水平可视角度配置
rockchip,camera-module-fov-v = "55.7";//模组垂直可视角度配置
rockchip,camera-module-orientation = <0>;//模组角度设置
rockchip,camera-module-flip = <0>;
rockchip,camera-module-mirror = <0>;
//以上 2 个属性控制摄像头驱动中的镜像配置,如果图像旋转 180 度,可以将这 2 个属性修改成相反的值即可旋转 180;
/* resolution.w, resolution.h, defrect.left, defrect.top, defrect.w, defrect.h */
rockchip,camera-module-defrect0 = <1920 1080 0 0 1920 1080>;
// resolution.w: sensor 输出列数,
//resolution.h: sensor 输出行数,
// defrect.left:输出偏移列数,
// defrect.top:输出偏移行数,
// defrect.w:输出列数, defrect.left+defrect.w<=resolution.w,
//defrect.h:输出行数,defrect.h+defrect.top<=resolution.h,
//具体如下图所示:
rockchip,camera-module-flash-
support = <0>;//flash 控制开关
rockchip,camera-module-mipi-dphy-index = <0>;
//sensor 实际使用的 phy,要与硬件实际连接对应
};
&i2c1 { //配置 Camera 设备连接到哪个 I2C 模块上,一般为 I2C1
status = "okay";//是否加载 i2c 模块,默认开启
#
include "
RV1108-camb-xx.dtsi"
};
&cif_isp0 {
rockchip,camera-modules-attached = <&camera0 &camera1 &camera2>; //配置需要使用的 camera 列表,连接到 ISP 设备节点
status = "okay";
};
3.2 DVP Sensor 注册
camera2: camera-module@1a {
status = "okay";
compatible = "
sony,
IMX323-v4l2-i2c-subdev";
reg = <0x1a>;
device_type = "v4l2-i2c-subdev";
clocks = <&clk_cif_out>;
clock-names = "clk_cif_out";
pinctrl-names = "rockchip,camera_default", "rockchip,camera_sleep";
pinctrl-0 = <&cif_dvp_d0d1 &cif_dvp_d2d9 &cif_dvp_d10d11
&cif_dvp_clk_in &cif_dvp_clk_out &cif_dvp_sync>;
pinctrl-1 = <&cif_dvp_d0d1_sleep &cif_dvp_d2d9_sleep
&cif_dvp_d10d11_sleep &cif_dvp_clk_in_sleep
&cif_dvp_clk_out_sleep &cif_dvp_sync_sleep>;
//DVP pin 引脚配置,具体定义在文件 rv1108.dtsi 中
其它配置和 MIPI Sensor 相同
rockchip,pd-gpio = <&gpio3 GPIO_D1 GPIO_ACTIVE_LOW>;
......
更多详细内容请下载附件查看