IMX8MP: Using only CSI2

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

IMX8MP: Using only CSI2

433 Views
Egor-G
Contributor I

Hello. I'm trying to use one OV5640 camera using only CSI2 interface, but it doesnt work. Same camera on CSI1 is working. I'd tryed different settings in dts (enable/ disable csi0) but it didnt help. All available examples uses use CSI1 for singe camera. Is there any hardware restrictions for using only CSI2 with CSI1 disabled?

0 Kudos
2 Replies

432 Views
Egor-G
Contributor I

My dts:

&i2c2 {
clock-frequency = <100000>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c2>;
status = "okay";

ov5640_0: ov5640_mipi@3c {
compatible = "ovti,ov5640";
reg = <0x3c>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_csi1_pwn>, <&pinctrl_csi1_rst>;
clocks = <&clk IMX8MP_CLK_IPP_DO_CLKO2>;
clock-names = "xclk";
assigned-clocks = <&clk IMX8MP_CLK_IPP_DO_CLKO2>;
assigned-clock-parents = <&clk IMX8MP_CLK_24M>;
assigned-clock-rates = <24000000>;
csi_id = <0>;
powerdown-gpios = <&gpio3 27 GPIO_ACTIVE_HIGH>;
reset-gpios = <&gpio3 26 GPIO_ACTIVE_LOW>;
mclk = <24000000>;
mclk_source = <0>;
mipi_csi;
status = "okay";

port {
ov5640_mipi_1_ep: endpoint {
remote-endpoint = <&mipi_csi1_ep>;
data-lanes = <1 2>;
clock-lanes = <0>;
};
};
};
};

&i2c5 {
clock-frequency = <100000>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c5>;
status = "okay";

ov5640_1: ov5640_mipi@1c {
compatible = "ovti,ov5640";
reg = <0x1c>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_csi0_pwn>, <&pinctrl_csi0_rst>;
clocks = <&clk IMX8MP_CLK_IPP_DO_CLKO2>;
clock-names = "xclk";
assigned-clocks = <&clk IMX8MP_CLK_IPP_DO_CLKO2>;
assigned-clock-parents = <&clk IMX8MP_CLK_24M>;
assigned-clock-rates = <24000000>;
csi_id = <0>;
powerdown-gpios = <&gpio1 14 GPIO_ACTIVE_HIGH>;
reset-gpios = <&gpio1 5 GPIO_ACTIVE_LOW>;
mclk = <24000000>;
mclk_source = <0>;
mipi_csi;
status = "okay";

port {
ov5640_mipi_0_ep: endpoint {
remote-endpoint = <&mipi_csi0_ep>;
data-lanes = <1 2>;
clock-lanes = <0>;
};
};
};
};

&mipi_csi_0 {
#address-cells = <1>;
#size-cells = <0>;
status = "disabled";
no-reset-control;

port@0 {
reg = <0>;
mipi_csi0_ep: endpoint {
remote-endpoint = <&ov5640_mipi_1_ep>;
data-lanes = <2>;
csis-hs-settle = <13>;
csis-clk-settle = <2>;
csis-wclk;
};
};
};

&mipi_csi_1 {
#address-cells = <1>;
#size-cells = <0>;
status = "okay";
no-reset-control;

port@1 {
reg = <1>;
mipi_csi1_ep: endpoint {
remote-endpoint = <&ov5640_mipi_1_ep>;
data-lanes = <2>;
csis-hs-settle = <13>;
csis-clk-settle = <2>;
csis-wclk;
};
};
};

&cameradev {
status = "okay";
};

&isi_0 {
status = "okay";

cap_device {
status = "okay";
};

};

&isi_1 {
status = "okay";

cap_device {
status = "okay";
};
};

So, 1) both cameras working, 2) If I disable i2c2, mipi_csi_1, isi1 CSI0 camera working, 3) If I disable i2c5, mipi_csi_0, isi0 - CSI1 NOT working - gst-launch starts, but either freeze without any data either stream is is started but sends zeros

0 Kudos

378 Views
joanxie
NXP TechSupport
NXP TechSupport
0 Kudos