IMX6 Solo Graphics

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

IMX6 Solo Graphics

2,061 Views
danielberhe
Contributor IV

Hi All,

I am working on a custom IMX6 Solo board with LCD. I'm seeing banding issue on the screen when displaying gradient images (see attachements). The colour is fine when displaying solid colours but IMG_20200304_103457.jpg should be smooth without any lines. I'm on kernel imx_4.9.88_2.0.0_ga and using a 5 inch (800x480) LCD. Any ideas on how to solve this issue?

Relevant sections from the device tree:

display0: display@di0 {
   compatible = "fsl,imx-parallel-display";
   interface-pix-fmt = "rgb24";
   pinctrl-names = "default";
   pinctrl-0 = <&pinctrl_lcd>;
   status = "okay";

   display-timings {
      native-mode = <&timing0>;
      timing0: timing0 {
         clock-frequency = <30000000>;
         hactive = <800>;
         vactive = <480>;
         hfront-porch = <40>;
         hback-porch = <40>;
         hsync-len = <48>;
         vback-porch = <29>;
         vfront-porch = <13>;
         vsync-len = <3>;
         hsync-active = <1>;
         vsync-active = <1>;
         de-active = <1>;
         pixelclk-active = <1>;
      };
   };

   port {
     reg = <0>;
      display0_in: endpoint {
      remote-endpoint = <&ipu1_di0_disp0>;
     };
   };
};

&dcic1 {
   dcic_id = <0>;
   dcic_mux = "dcic-lcdif";
   status = "okay";
};

&ipu1_di0_disp0 {
   remote-endpoint = <&display0_in>;
};

Best wishes,

Daniel

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

1,899 Views
danielberhe
Contributor IV

Hi Bio_TICFSL,

Thank you for your reply.

Unfortunately setting hsync and vsync-active to 0 made no difference. Neither did changing the other parameters you mentioned. I built an image for the IMX6 SX SABRE-SDB to make sure the LCD parameters (hsync-active, vsync-active,...) I have are correct and the image on the dev board is smooth using the same LCD. I managed to reproduce the issue on the dev board by setting the 'bits-per-pixel' parameter to 16 instead of 24. This would suggest that the bits per pixel on my board is 16 instead of 24. I had a look at the driver parallel-display.c and couldn't see an equivalent parameter to 'bits-per-pixel' to explicitly set it to 24 but tried adding both 'bits-per-pixel' and 'bus-with' anyway without success. The parameters I used on the dev board are:

&lcdif1 {
    pinctrl-names = "default";
    pinctrl-0 = <&pinctrl_lcd>;
    lcd-supply = <&reg_lcd_3v3>;
    display = <&display0>;
    status = "okay";

    display0display@0 {
        bits-per-pixel = <24>;
        bus-width = <24>;

        display-timings {
            native-mode = <&timing0>;
            timing0timing0 {
                clock-frequency = <30000000>;
                hactive = <800>;
                vactive = <480>;
                hback-porch = <40>;
                hfront-porch = <40>;
                vback-porch = <29>;
                vfront-porch = <13>;
                hsync-len = <48>;
                vsync-len = <3>;
                hsync-active = <0>;
                vsync-active = <0>;
                de-active = <1>;
                pixelclk-active = <1>;
            };
        };
    };
};

Do you know how I can make sure the bits per pixel is set to 24 on the IMX6 Solo?

Regards,

Daniel

0 Kudos

1,899 Views
danielberhe
Contributor IV

Hi Bio_TICFSL,

I'm almost certain that the bits-per-pixel is 16 on my board; I checked in /sys/class/graphics/fb0/bits_per_pixel and it is returning 16.

0 Kudos

1,899 Views
hitenpchauhan
Contributor I

I am struggling to find out the issue with is happened in my HDMI display and I can't find any solution

I used udoo neo board with android os And I have one HDMI LCD with touch display https://www.waveshare.com/w/upload/c/cc/7inch_HDMI_LCD_%28C%29_User_Manual.pdf 

LCD is working fine with PC and Raspberry Pi 3 but when I connect this display to my Udoo Neo board it shows vignetted screen border

The DTS file has:

/ {
        codec_hdmi: hdmi-codec {
            compatible = "udoo,tda19988-codec";
            status = "okay";
        };

        sound_hdmi {
            compatible = "udoo,audio-tda19988";
            model = "imx6sx-tda19988";
            cpu-dai = <&ssi2>;
            audio-codec = <&codec_hdmi>;
            mux-int-port = <2>;
            mux-ext-port = <5>;
            ssi-controller = <&ssi2>;
            status = "okay";
        };

    };

    &i2c3 {
        status = "okay";

        tda19988: tda19988@34 {
            compatible = "udoo,tda19988";
            reg = <0x34>;
            status = "okay";
        };
    };

    &lcdif1 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_lcdif_dat_0
        &pinctrl_lcdif_ctrl_0>;
        lcd-supply = <&vgen5_reg>;
        display = <&display0>;
        status = "okay";

        display0: display {
            bits-per-pixel = <32>;
            bus-width = <24>;

            display-timings {
                native-mode = <&timing0>;
                timing0: timing0 {
                    clock-frequency = <74250000>;
                    hactive = <1280>;
                    vactive = <720>;
                    hback-porch = <220>;
                    hfront-porch = <110>;
                    vback-porch = <20>;
                    vfront-porch = <5>;
                    hsync-len = <40>;
                    vsync-len = <5>;

                    hsync-active = <0>;
                    vsync-active = <1>;
                    de-active = <1>;
                    pixelclk-active = <0>;
                };
            };
        };
    };

    &dcic1 {
        dcic_id = <0>;
        dcic_mux = "dcic-lcdif1";
        status = "okay";
    };

    &ssi2 {
        fsl,mode = "i2s-master";
        status = "okay";
    };

    &audmux {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_audmux_hdmi>;
        status = "okay";
    };

0 Kudos

1,899 Views
danielberhe
Contributor IV

Hi Hiten,

I'm not quite sure what the issue is - have you tried setting both  bits-per-pixel and bus-width to 24? You might have better luck submitting a new question with IMX SoloX tag. You might also want to provide information about your kernel version, a picture of what you are seeing on the LCD. It would also be worth checking the LCD's datasheet to make sure all the display timing values are correct - I couldn't see that information on the user manual you provided.

Daniel

0 Kudos

1,899 Views
hitenpchauhan
Contributor I

ok thanks, I posted the question https://community.nxp.com/docs/DOC-94139

0 Kudos

1,899 Views
Bio_TICFSL
NXP TechSupport
NXP TechSupport

Hello Daniel,

The code looks ok I,  just change

   hsync-active = <0>;

            vsync-active = <0>;

if pulse is active low or ignored also I should play whit

- hfront-porch, hback-porch, hsync-len, fvfront-porch, vback-porch, vsync-len or the horizontal and vertical display timing parameters

Regards

0 Kudos