Base Address switching error in MIPI channel 2 (J1503) IMX8mq-evk (Version-B4)

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

Base Address switching error in MIPI channel 2 (J1503) IMX8mq-evk (Version-B4)

1,404 Views
saideepak_r
Contributor II

Hi,

We are evaluating ov2311 sensor with IMX8mq-evk (Version-B4) with L4.14.78_1.0.0_MX8MQ BSP.

We evaluated the ov2311 sensor in two scenarios,

1) In first scenario we have connected the ov2311 in the MIPI channel 1 (J1502 )with the following configuration in dtb,

In fsl-imx8mq.dtsi file

mipi_csi_1: mipi_csi1@30a70000 {

        compatible = "fsl,mxc-mipi-csi2_yav";

        reg = <0x0 0x30a70000 0x0 0x1000>; /* MIPI CSI1 Controller base addr */

        interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;

        clocks = <&clk IMX8MQ_CLK_DUMMY>,

                <&clk IMX8MQ_CLK_CSI1_CORE>,

                <&clk IMX8MQ_CLK_CSI1_ESC>,

                <&clk IMX8MQ_CLK_CSI1_PHY_REF>;

        clock-names = "clk_apb", "clk_core", "clk_esc", "clk_pxl";

        assigned-clocks = <&clk IMX8MQ_CLK_CSI1_CORE>,

                  <&clk IMX8MQ_CLK_CSI1_PHY_REF>,

                  <&clk IMX8MQ_CLK_CSI1_ESC>;

        assigned-clock-rates = <133000000>, <100000000>, <66000000>;

        power-domains = <&mipi_csi1_pd>;

        csis-phy-reset = <&src 0x4c 7>;

        phy-gpr = <&gpr 0x88>;

        status = "disabled";

    };    


In fsl-imx8mq-evk.dts file

&i2c2 {

    clock-frequency = <100000>;

    pinctrl-names = "default";

    pinctrl-0 = <&pinctrl_i2c2>;

    status = "okay";

    ov2311_mipi: ov2311_mipi@3c {

    compatible = "ovti,ov2311_mipi";

        reg = <0x42>;

        status = "okay";

        pinctrl-names = "default";

        pinctrl-0 = <&pinctrl_csi1_pwn>;

        clocks = <&clk IMX8MQ_CLK_CLKO2>;

        clock-names = "csi_mclk";

        assigned-clocks = <&clk IMX8MQ_CLK_CLKO2>;

        assigned-clock-parents = <&clk IMX8MQ_SYS2_PLL_200M>;

        assigned-clock-rates = <20000000>;

        csi_id = <0>; 

        pwn-gpios = <&gpio1 3 GPIO_ACTIVE_HIGH>;

        mclk = <20000000>;

        mclk_source = <0>; 

        port {

            ov2311_mipi1_ep: endpoint {

                remote-endpoint = <&mipi1_sensor_ep>;

            };

        };

    };   

};

 

2) In second scenario we have connected the ov2311 in the MIPI channel 2 (J1503 )with the following configuration in dtb,

In fsl-imx8mq.dtsi file

mipi_csi_2: mipi_csi2@30b60000 {

        compatible = "fsl,mxc-mipi-csi2_yav";

        reg = <0x0 0x30b60000 0x0 0x1000>; /* MIPI CSI2 Controller base addr */

        interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;

        clocks = <&clk IMX8MQ_CLK_DUMMY>,

                <&clk IMX8MQ_CLK_CSI2_CORE>,

                <&clk IMX8MQ_CLK_CSI2_ESC>,

                <&clk IMX8MQ_CLK_CSI2_PHY_REF>;

        clock-names = "clk_apb", "clk_core", "clk_esc", "clk_pxl";

        assigned-clocks = <&clk IMX8MQ_CLK_CSI2_CORE>,

                  <&clk IMX8MQ_CLK_CSI2_PHY_REF>,

                  <&clk IMX8MQ_CLK_CSI2_ESC>;

        assigned-clock-rates = <133000000>, <100000000>, <66000000>;

        power-domains = <&mipi_csi2_pd>;

        csis-phy-reset = <&src 0x50 7>;

        phy-gpr = <&gpr 0xa4>;

        status = "disabled";

    };   

In fsl-imx8mq-evk.dts file

   ov2311_mipi2: ov2311_mipi2@3c {

        compatible = "ovti,ov2311_mipi";

        reg = <0x42>;

        status = "okay";

        pinctrl-names = "default";

        pinctrl-0 = <&pinctrl_csi2_pwn>, <&pinctrl_csi_rst>;

        clocks = <&clk IMX8MQ_CLK_CLKO2>;

        clock-names = "csi_mclk";

        assigned-clocks = <&clk IMX8MQ_CLK_CLKO2>;

        assigned-clock-parents = <&clk IMX8MQ_SYS2_PLL_200M>;

        assigned-clock-rates = <20000000>;

        csi_id = <1>; 

        pwn-gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>;

        mclk = <20000000>;

        mclk_source = <0>; 

        port {

            ov2311_mipi2_ep: endpoint {

                remote-endpoint = <&mipi2_sensor_ep>;

            };

        };

    };

In the first scenario camera streaming is working fine but in the second scenario we getting this below error message,
base address switching Change Err.

This error occurs randomly in some power cycles.
During the occurrence of this error we can't able to stream and it takes randomly 3 to 15 seconds to recover.

We also tested ov5640 with default settings, we are getting the same issue as same as in ov2311.
This issue affects the reliability of camera streaming in time critical use cases.

Please provide us valuable solution or fix for this issue.

Thanks,

Sai

0 Kudos
3 Replies

951 Views
gururaghavendra
Contributor I

Hi Sai,

I am using the nitrogen8M board and need to use the ov2311 camera over the MIPI interface. can you help me with what things I need to do for this integration?

Regards,

Guru V

0 Kudos

951 Views
saideepak_r
Contributor II

Hi Guru,

To add support

  Need to change dts file and platform files(mipi_csi2_yav.c and mx6s_capture.c) as per your sensor..

0 Kudos

951 Views
gururaghavendra
Contributor I

Hi,

Thanks for your help.

I modified the mxc_mipi_csi2_yav.c and mx6s_capture.c but the mipi_clk on sensor is not enabled.

When s_stream of v4l2_subdev_video_ops is called I am writing 0x01on 0x0100 register of the sensor to put the sensor in streaming mode. but mipi_clk is not enabled from sensor.

are there any other registers to be set for mipi_clk to be enabled?

How to send virtual channel info to the sensor?

Regards,

Guru V

0 Kudos