How to change SABRE-SD screen resolution in LOLLIPOP(5.0.0?

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

How to change SABRE-SD screen resolution in LOLLIPOP(5.0.0?

Jump to solution
7,397 Views
atakan
Contributor II

Hello,

I'm working on sabre sd board (imx6dl) and trying to switch to a different display. But the bad news, i'm new to Android.

The resolution of the LVDS display that comes with the board is 1024x768. However my new display is 1024x600 LVDS and it does not support EDID.

In the u-boot, it says; "No panel detected: default to Hannstar-XGA"

I have edited the resolution of this panel in "mx6sabresd.c" and that fixed the resolution of the u-boot (and the u-boot logo).

But the resolution inside Android (lollipop) is still wrong. The bottom of the screen is outside of my display.

I have tried editing "BoardConfig.mk" like that

"BOARD_KERNEL_CMDLINE := console=ttymxc0,115200 init=/init video=mxcfb0:dev=ldb,1024x600M@60,if=RGB666 video=mxcfb1:off video=mxcfb2:off video=mxcfb3:off vmalloc=400M androidboot.console=ttymxc0 consoleblank=0 androidboot.hardware=freescale cma=384M androidboot.serialno=1e1b29d4dbc91258"

and that

"BOARD_KERNEL_CMDLINE := console=ttymxc0,115200 init=/init video=mxcfb0:dev=ldb,1024x600M@60,bpp=32 video=mxcfb1:off video=mxcfb2:off video=mxcfb3:off vmalloc=400M androidboot.console=ttymxc0 consoleblank=0 androidboot.hardware=freescale cma=384M androidboot.serialno=1e1b29d4dbc91258"

Nothing changed.

The display works fine, but the bottom area is still outside of the display.

Could you please tell me how to change the resolution?

Labels (4)
0 Kudos
Reply
1 Solution
3,790 Views
atakan
Contributor II

igorpadykov:

Hi atakan

below link shows example for changing ldb resolution for kernel with device tree,

as in lollipop

i.MX6Q LVDS Wrong clock issue

Thank you Igor.

Finally my problem is solved.

I have edited the file "kernel_imx/arch/arm/boot/dts/imx6qdl_sabresd.dtsi" and modified only this part:

&ldb {

       status = "okay";

       lvds-channel@0 {

             fsl,data-mapping = "spwg";

             fsl,data-width = <18>;

             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;

             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>;

                    };

             };

       };

  };

View solution in original post

0 Kudos
Reply
7 Replies
3,790 Views
igorpadykov
NXP Employee
NXP Employee

HI atakan

general procedure for adding new LCD to Android is described at

iMX6QD How to Add 24-bit LVDS Support in Android

https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/Documentation/devicetree/bindin...

https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/Documentation/fb/modedb.txt

regarding 1024x600 LVDS configuration, one can look at boundary devices Android releases

as it use Nit6X_1024x600 LCD

http://boundarydevices.com/configuring-i-mx6-machines-different-screens-nitrogen6x-sabre-lite/

below some example adding new lvds lcd:

i.MX6Q LVDS Wrong clock issue

Best regards

igor

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

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

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

3,790 Views
atakan
Contributor II

Thank you for assistance.

I've double checked the procedure that you said, digged into "ldb.c" and some other files but could not find a place to add my new display. Sure, this way is applicable for the previous releases but not for lollipop. (Because "ldb.c" is different than the previous releases.)

And the Boundary Devices solution is also useless in my case. As i told before, i have tried adding the resolution to "BoardConfig.mk" but nothing changed. The only thing is, i'm not sure if i've added the resolution to the correct place or not. Here is what exactly i did in "BoardConfig.mk"

"BOARD_KERNEL_CMDLINE := console=ttymxc0,115200 init=/init video=mxcfb0:dev=ldb,1024x600M@60,if=RGB666 video=mxcfb1:off video=mxcfb2:off video=mxcfb3:off vmalloc=400M androidboot.console=ttymxc0 consoleblank=0 androidboot.hardware=freescale cma=384M androidboot.serialno=1e1b29d4dbc91258"

Is that correct?

Is there a working solution for lollipop?

0 Kudos
Reply
3,790 Views
atakan
Contributor II

I have also discovered that editing "BoardConfig.mk" alone, is ineffective for jellybean too. I think i'm digging the wrong place.

So where should i write "video=mxcfb0:dev=ldb,1024x600M@60,if=RGB666" to be effective?

0 Kudos
Reply
3,790 Views
igorpadykov
NXP Employee
NXP Employee

1024x600 LCD is not supported by default in BSP, so you can not

write these parameters, they will be ignored. Support for 1024x600 LCD

may be added using procedures given before:

iMX6QD How to Add 24-bit LVDS Support in Android

https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/Documentation/devicetree/bindin...

https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/Documentation/fb/modedb.txt

or looking at boundary devices BSP releases with its Nit6X_1024x600 LCD

http://boundarydevices.com/configuring-i-mx6-machines-different-screens-nitrogen6x-sabre-lite/

Best regards

igor

0 Kudos
Reply
3,790 Views
atakan
Contributor II

Thank you Igor.

As i said, the procedures cannot be applied to lollipop (and also kitkat i think). For jellybean, it's ok, but lollipop is a little bit different, especially in "ldb.c".

I cant find the place that i should define the new display.

0 Kudos
Reply
3,790 Views
igorpadykov
NXP Employee
NXP Employee

Hi atakan

below link shows example for changing ldb resolution for kernel with device tree,

as in lollipop

i.MX6Q LVDS Wrong clock issue

https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/Documentation/devicetree/bindin...

~igor

3,791 Views
atakan
Contributor II

igorpadykov:

Hi atakan

below link shows example for changing ldb resolution for kernel with device tree,

as in lollipop

i.MX6Q LVDS Wrong clock issue

Thank you Igor.

Finally my problem is solved.

I have edited the file "kernel_imx/arch/arm/boot/dts/imx6qdl_sabresd.dtsi" and modified only this part:

&ldb {

       status = "okay";

       lvds-channel@0 {

             fsl,data-mapping = "spwg";

             fsl,data-width = <18>;

             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;

             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>;

                    };

             };

       };

  };

0 Kudos
Reply