IMX6 TVP5151 problem

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

IMX6 TVP5151 problem

875 Views
john_smith
Contributor II

Hello!

I'm trying to connect camera and get any data from it. The connection scheme looks like this: Camera=>TVP5151=>CSI0 parallel interface=>IPU0

I added TVP5151 support in the device tree (TVP5151 and TVP5150 are very similar):

&i2c1 {

    clock-frequency = <100000>;

    pinctrl-names = "default";

    pinctrl-0 = <&pinctrl_i2c1_2>;

    status = "okay";

    videoin: tvp5151@5D {

        compatible = "ti,tvp5150";

        reg = <0x5D>;

        pinctrl-names = "default";

        pinctrl-0 = <&pinctrl_ipu1_2>;

        clocks = <&clks 201>;

        clock-names = "csi_mclk";

        mclk = <24000000>;

        mclk_source = <0>;

        ipu_id = <0>;

        csi_id = <0>;

        cvbs = <1>;

    };

};

I also added:

v4l2_cap_0 {

        compatible = "fsl,imx6q-v4l2-capture";

        ipu_id = <0>;

        csi_id = <0>;

        mclk_source = <0>;

        status = "okay";

    };

I2C connection works fine - I can read TVP5151 registers and its values are correct. The problem is that when I try to open video device:

cat /dev/video0

I get this error:

ERROR: v4l2 capture: slave not found!

I found that this error is caused by function mxc_v4l_open() (mxc_v4l2_capture.c). After calling:

cam_data *cam = video_get_drvdata(dev);

the pointer cam->sensor is NULL, so we get the error:

if (cam->sensor == NULL)

    {

        pr_err("ERROR: v4l2 capture: slave not found!\n");

        return -EAGAIN;

    }

What is a reason of such a behaviour?

Thank you in advance!

0 Kudos
3 Replies

433 Views
mcergun
Contributor III

have you solved this problem?

i am facing a similar one. kernel automatically probes my module and i am sure that _probe function is called and 

v4l2_int_device_register function doesn't return an error. still i am getting NULL pointer on the same struct

0 Kudos

433 Views
joanxie
NXP TechSupport
NXP TechSupport

try to use insmode to download the tvp5151.

0 Kudos

433 Views
john_smith
Contributor II

Hi! Thank you for your answer!

But tvp5150 probe() function is called automatically when the kernel starts... Does it mean that there is no need in insmod?

0 Kudos