RK3568 Camera 使用
RK3568 Sensor驱动开发移植(1)
RK3568 Sensor驱动开发移植(2)
RK3568 Sensor驱动开发移植(3)
MIPI CSI用法
RK3568平台仅有一个标准物理mipi csi2 dphy,可以工作在full mode 和split mode两个模式, 拆分为csi2_dphy0/csi2_dphy1/csi2_dphy2三个逻辑dphy(参见rk3568.dtsi)
简单点来讲,如果用单目摄像头配置为full mode,若使用双目摄像头配置为split mode
Full Mode
- 仅使用csi2_dphy0,csi2_dphy0与csi2_dphy1/csi2_dphy2互斥,不可同时使用;
- data lane最大4 lanes;
- 最大速率2.5Gbps/lane;
Split Mode
- 仅使用csi2_dphy1和csi2_dphy2, 与csi2_dphy0互斥,不可同时使用;
- csi2_dphy1和csi2_dphy2可同时使用;
- csi2_dphy1和csi2_dphy2各自的data lane最大是2 lanes;
- csi2_dphy1对应物理dphy的lane0/lane1;
- csi2_dphy2对应物理dphy的lane2/lane3;
- 最大速率2.5Gbps/lane
Full Mode设备树配置要点
根据板子原理图的MIPI CSI接口找到sensor是挂在哪路I2C总线上,然后在对应的I2C节点配置camera节点,正确配置camera模组的I2C设备地址、引脚等属性。如下ROC-RK3568-PC的xc7160配置:
&i2c4 {
status = "okay";
gc8034: gc8034@37 {
compatible = "galaxycore,gc8034";
status = "disabled";
reg = <0x37>;
clocks = <&cru 214>;
clock-names = "xvclk";
pinctrl-names = "default";
pinctrl-0 = <&cif_clk>;
reset-gpios = <&gpio3 14 1>;
pwdn-gpios = <&gpio4 12 1>;
rockchip,grf = <&grf>;
power-domains = <&power 8>;
rockchip,camera-module-index = <0>;
rockchip,camera-module-facing = "back";
rockchip,camera-module-name = "RK-CMK-8M-2-v1";
rockchip,camera-module-lens-name = "CK8401";
port {
gc8034_out: endpoint {
remote-endpoint = <&mipi_in_ucam1>;
data-lanes = <1 2 3 4>;
};
};
};
};
csi2_dphy0相关配置
csi2_dphy0与csi2_dphy1/csi2_dphy2互斥,不可同时使用。另外需要使能csi2_dphy_hw节点
&csi2_dphy0 {
status = "okay";
/*
* dphy0 only used for full mode,
* full mode and split mode are mutually exclusive
*/
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
#address-cells = <1>;
#size-cells = <0>;
...
mipi_in_ucam4: endpoint@5 {
reg = <5>;
remote-endpoint = <&xc7160_out>;
data-lanes = <1 2 3 4>;
};
};
port@1 {
reg = <1>