CVBS Camera input with i.MX6 running Android

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

CVBS Camera input with i.MX6 running Android

1,378 Views
l_bruni
Contributor II

Hello, we're developing a multimedia device based on a Variscite Dart-MX6Q SOM running Android 7 or 8.

The device has to display the input of multiple cvbs camera connected to a video decoder (only onece at a time).

We focused on ADV7181C (or D) as video decoder and use the parallel camera input of MX6, but still looking how to integrate it into device tree and configure the kernel.

Have you any application notes or information to help us do the job? (The decoder can be different from ADV7181)

Thank you, kind regards.

Luca

Labels (3)
3 Replies

1,052 Views
l_bruni
Contributor II

Problem ha been solved. It was an electrical proble.

Thanks,

Luca

0 Kudos

1,052 Views
l_bruni
Contributor II

Hi Igor, thanks for your help.

We're doing some experiment with a demo board from Analog EVAL-ADV7280A.

We've connected the IPU2 CSI1 parallel port of dart-mx6 and modfied .dtsi as follow:

    v4l2_cap_0 {
        compatible = "fsl,imx6q-v4l2-capture";
        ipu_id = <1>;
        csi_id = <1>;
        mclk_source = <0>;
        status = "okay";
     };

....

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

    /* DS1307 RTC module */
    rtc@0x68 {
        compatible = "dallas,ds1307";
        reg = <0x68>;
    };

    adv7180: adv7180@21 {
        compatible = "adv,adv7180";
        reg = <0x21>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_ipu2>;
        clocks = <&clks 201>;
        clock-names = "csi_mclk";
        DOVDD-supply = <&reg_3p3v>; /* 3.3v, enabled via 2.8 VGEN6 */
        AVDD-supply = <&reg_3p3v>; /* 1.8v */
        DVDD-supply = <&reg_3p3v>; /* 1.8v */
        PVDD-supply = <&reg_3p3v>; /* 1.8v */
        pwn-gpios = <&gpio3 10 0>;  /* put on not used pin */
        ipu_id = <1>;
        csi_id = <1>;
        mclk = <24000000>;
        mclk_source = <0>;
        cvbs = <1>;
    };
};

....

        pinctrl_ipu2: ipu2grp {
               fsl,pins = <
                MX6QDL_PAD_EIM_A17__IPU2_CSI1_DATA12    0xb0b1
                   MX6QDL_PAD_EIM_A18__IPU2_CSI1_DATA13    0xb0b1
                   MX6QDL_PAD_EIM_A19__IPU2_CSI1_DATA14    0xb0b1
                   MX6QDL_PAD_EIM_A20__IPU2_CSI1_DATA15    0xb0b1
                   MX6QDL_PAD_EIM_A21__IPU2_CSI1_DATA16    0xb0b1
                   MX6QDL_PAD_EIM_A22__IPU2_CSI1_DATA17    0xb0b1
                   MX6QDL_PAD_EIM_A23__IPU2_CSI1_DATA18    0xb0b1
                   MX6QDL_PAD_EIM_A24__IPU2_CSI1_DATA19    0xb0b1
                   // MX6QDL_PAD_EIM_DA10__IPU2_CSI1_DATA_EN    0xb0b1
                   MX6QDL_PAD_EIM_A16__IPU2_CSI1_PIXCLK    0xb0b1
                   MX6QDL_PAD_EIM_DA11__IPU2_CSI1_HSYNC    0xb0b1
                   MX6QDL_PAD_EIM_DA12__IPU2_CSI1_VSYNC    0xb0b1
                   >;
            };

We set the correct value for IOMUXC_GPR1 in file mach-imx6q.c  with  (regmap_update_bits(gpr, IOMUXC_GPR1, 1 << 20, 1 << 20);

On the debug console using "i2c probe" we see ADV7280 at address 0x21, but can't make camera app of Android Oreo 8 work (always "camera error").

Are there drivers to include in kernel or other particular actions to do?

Is there another way to check if all is ok?

Thank you, kind regards.

Luca

0 Kudos

1,052 Views
igorpadykov
NXP Employee
NXP Employee

Hi Luca

adv7180 is supported on i.MX6Q Sabre AI board

linux/arch/arm/boot/dts/imx6qdl-sabreauto.dtsi

imx6qdl-sabreauto.dtsi\dts\boot\arm\arch - linux-imx - i.MX Linux kernel 

SABRE|Automotive-Infotainment|i.MX6 | NXP 

some other useful links

VAR-SOM-MX6 Camera JehtroR1 - Variscite Wiki 

iMX6DQ ISL79985/79987 MIPI CSI2 CVBS camera surround view solution for Linux BSP 

Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------