LVDS VGA no image in IMX6Q

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

LVDS VGA no image in IMX6Q

1,724 Views
csotoalonso
Contributor III

Hi,

I'm trying to get output from a custom board based on a Seco QuadMo747-X/i.MX6. The signal comes out from LVDS and then it's converted to VGA. I'm using kernel imx_3.10.53_1.1.0_ga.

When I connect my board to a TFT display through the VGA input, sync signals are detected fine (1024x768) but the screen is black, even though I've checked the framebuffer has something, because I've dumped its contents to a PPM file and I see the four penguins.

I've set the relevant parts of my DTS like this:

mxcfb1: fb@0 {

            compatible = "fsl,mxc_sdc_fb";

            disp_dev = "ldb";

            interface_pix_fmt = "RGB666";

            default_bpp = <16>;

            int_clk = <0>;

            late_init = <0>;

            status = "okay";

        };

        mxcfb2: fb@1 {

            compatible = "fsl,mxc_sdc_fb";

            disp_dev = "ldb";

            interface_pix_fmt = "RGB666";

            default_bpp = <16>;

            int_clk = <0>;

            late_init = <0>;

            status = "okay";

        };

       

        mxcfb3: fb@2 {

            compatible = "fsl,mxc_sdc_fb";

            disp_dev = "hdmi";

            interface_pix_fmt = "RGB24";

            mode_str ="1920x1080M@60";

            default_bpp = <24>;

            int_clk = <0>;

            late_init = <0>;

            status = "disabled";

        };

       

        mxcfb4: fb@3 {

            compatible = "fsl,mxc_sdc_fb";

            disp_dev = "hdmi";

            interface_pix_fmt = "RGB24";

            mode_str ="1920x1080M@60";

            default_bpp = <24>;

            int_clk = <0>;

            late_init = <0>;

            status = "disabled";

        };       

And the ldb:

&ldb {

    status = "okay";

    lvds-channel@0 {

        fsl,data-mapping = "spwg";

        fsl,data-width = <18>;

        crtc = "ipu1-di0";

        primary;

        status = "okay";

        display-timings {

            native-mode = <&timing0>;

            timing0: hsd100pxn1 {

                clock-frequency = <65000000>;

                hactive = <1024>;

                vactive = <768>;

                hback-porch = <220>;

                hfront-porch = <40>;

                vback-porch = <21>;

                vfront-porch = <7>;

                hsync-len = <60>;

                vsync-len = <10>;

            };

        };

    };

    lvds-channel@1 {

        fsl,data-mapping = "spwg";

        fsl,data-width = <18>;

        primary;

        crtc = "ipu1-di1";

        status = "okay";

        display-timings {

            native-mode = <&timing1>;

            timing1: hsd100pxn1 {

                clock-frequency = <65000000>;

                hactive = <1024>;

                vactive = <768>;

                hback-porch = <220>;

                hfront-porch = <40>;

                vback-porch = <21>;

                vfront-porch = <7>;

                hsync-len = <60>;

                vsync-len = <10>;

            };

        };

    };

};

And my bootargs are:

console=ttymxc1,115200 root=/dev/nfs nfsroot=192.168.1.14:/home/cs/nfs_secoimx6 rw nolock,wsize=4096,rsize=4096 ip=192.168.1.18:::255.255.255.0::eth0:off mem=1024M arm_freq=996 video=mxcfb0:dev=ldb,LDB-XGA,if=RGB666


Thanks in advance,

Carlos

Labels (3)
Tags (3)
0 Kudos
3 Replies

860 Views
csotoalonso
Contributor III

Well, we've solved the issue. It was a hardware problem.

0 Kudos

860 Views
igorpadykov
NXP Employee
NXP Employee

Hi Carlos

according to kernel command line (LDB-XGA) timings are for XGA resolution,

they will not work for VGA resolution. Suggest to look at

sect.18.3 Modifying Boot Kernel Parameters to Support a New LCD

MX53UG or AN3974 Different Display Configurations on i.MX35 Linux PDK

and add configuration for VGA timings.

Note, your panel should have lvds interface not VGA (it is analog).

Best regards

igor

-----------------------------------------------------------------------------------------------------------------------

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

-----------------------------------------------------------------------------------------------------------------------

0 Kudos

860 Views
csotoalonso
Contributor III

Hi Igor,

thanks for your anwer.

Well, maybe I didn't explained it right. I want XGA resolution (1024x768), and I'm using LVDS but in my board it's converted to analog signal and I'm using a VGA (analog) connector to attach it to my TFT-LCD display.

When I switch to the analog input of my display, it detects a signal with the correct resolution, so at least the sync signals (Hsync, Vsync) are correctly generated, but I can only see a black screen. At first I thought it was because there was nothing showing in the framebuffer, but I made a capture and I saw the four penguins, so there should be something showing in the screen.

Is there anything I'm missing in my configuration?

0 Kudos