IMX287: enable LCD display on system boot

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

IMX287: enable LCD display on system boot

6,133 Views
BrilliantovKiri
Senior Contributor I

Hello!

I have to output image and video on http://www.varitronix.com/prod_pdf/COG-T350T2100-X1.pdf

Now I build linux with LCD-display support, I use driver for Seiko 43WF1G.

Display is work, I see white screen, and I see device in /sys/class/graphics/fb0.

Unfortunately I see only white screen, I think problem in linux command line, I found example for iMX6 http://boundarydevices.com/configuring-i-mx6-machines-different-screens-nitrogen6x-sabre-lite/

How should I modify linux command line, now I use default value console=ttyAM0,115200 root=/dev/mmcblk0p3 rw rootwait, for enable LCD display?

Thank you and excuse my bad english.

Labels (1)
Tags (1)
0 Kudos
8 Replies

5,047 Views
igorpadykov
NXP Employee
NXP Employee

Hi Kirill

command line may depends on used BSP, for i.MX28

please look at attached MX28_EVK_Linux_Reference_Manual.pdf

sect.10.4 Menu Configuration Options :

lcd_panel = 43wvf1g for SEIKO 43WVF1G

NOTE

If there is one panel, then do not need to pass this parameter.

other examples can be found in document

evk2009_12_imx23_Linux_UG.pdf  p.19

IMX23_EVK0912_LINUXDOCS_BUNDLE

In general it may be recommended to check hardware with OBDS:

IMX_OBDS : On-Board Diagnostic Suit for the i.MX28.

Best regards

igor

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

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

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

0 Kudos

5,046 Views
francescoluccon
Contributor I

Hi Kirill, I'm working on the same topic as yours and I need to enable my lcd display with i.mx287 custom board. After I've done the lcd gpios setup and activated the framebuffer driver on my kernel the lcd backlight switches on and I can put the lcd in powerdown mode with command:

echo 1 > /sys/bus/platform/devices/mxs-fb.0/graphics/fb0/blank

I've verified with debug prints that /dev/fb0 is successfully mapped in a right memory. In facts:

# dmesg | grep fb

.....

mxs-fb mxs-fb.0: allocated at fde00000:0x43a00000

.....

# devmem 0x43a00000

0x00000000

# cat /dev/urandom > /dev/fb0

cat: write error: No space left on device

# devmem 0x43a00000

0x20F6CB23

Anyway with command "cat /dev/urandom > /dev/fb0"  lcd pixels never change their blank value.

Could you give me any tips?

0 Kudos

5,046 Views
afros
Contributor I

Did you solve this issue? I faced exactly the same problem with LCD and I.MX6UL custom board. The backlight is working correctly, I can clear the screen by writing 1 to /sys/bus/platform/devices/mxs-fb.0/graphics/fb0/blank, but when I send something to fb, the screen is always white.

Thanks in advance for any hint.

0 Kudos

5,047 Views
BrilliantovKiri
Senior Contributor I

You can use fbi (fbi(1): framebuffer imageviewer - Linux man page ) for simple test.

0 Kudos

5,047 Views
afros
Contributor I

Yes, I grabbed current fb via fbgrab tool and it looks properly, exactly as I set. The problem is that my display is always white, no matter what fb contains.

0 Kudos

5,047 Views
BrilliantovKiri
Senior Contributor I

Hello, Francesco!

Unfortunetely I not use this method, possible /dev/fb0 not support direct write.

I think you can write simple program based on v4l2 API (Part I. Video for Linux Two API Specification ) or use gstreamer, ffmpeg, etc...

0 Kudos

5,047 Views
francescoluccon
Contributor I

Furthermore, I've noticed that my lcd is not a seiko display and its resolution is 800x272 pixels.

Maybe am I using a wrong driver since seiko is 800x480?

0 Kudos

5,047 Views
BrilliantovKiri
Senior Contributor I

I describe monitor parameters in dts-file, linux from Freescale/linux-fslc · GitHub :

pinctrl@80018000 {

    lcdif_pins_evk: lcdif-evk@0 {

        reg = <0>;

        fsl,pinmux-ids = <

            MX28_PAD_LCD_VSYNC__LCD_VSYNC

            MX28_PAD_LCD_HSYNC__LCD_HSYNC

            MX28_PAD_LCD_DOTCLK__LCD_DOTCLK

            MX28_PAD_LCD_ENABLE__LCD_ENABLE

        >;

        fsl,drive-strength = <MXS_DRIVE_4mA>;

        fsl,voltage = <MXS_VOLTAGE_HIGH>;

        fsl,pull-up = <MXS_PULL_DISABLE>;

    };

};

lcdif@80030000 {

    pinctrl-names = "default";

    pinctrl-0 = <&lcdif_24bit_pins_a &lcdif_pins_evk>;

    lcd-supply = <&reg_lcd_3v3>;

    display = <&display0>;

    status = "okay";

    display0: display0 {

        bits-per-pixel = <32>;

        bus-width = <24>;

        display-timings {

            native-mode = <&timing0>;

            timing0: timing0 {

                clock-frequency = <9000000>;

                hactive = <480>;

                vactive = <272>;

                hback-porch = <43>;

                hfront-porch = <8>;

                vback-porch = <12>;

                vfront-porch = <4>;

                hsync-len = <12>;

                vsync-len = <12>;

                hsync-active = <0>;

                vsync-active = <0>;

                de-active = <1>;

                pixelclk-active = <0>;

            };

        };

    };

};

0 Kudos