FB0 on LVDS0, and FB2 on LVDS1

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

FB0 on LVDS0, and FB2 on LVDS1

2,587 Views
muthuswamydiksh
Contributor II

We are using two displays. The requirement is:

LVDS0 - fb0 and fb1

LVDS1 - fb2 and fb3

Kernel version : L3.0.35_4.1.0_130816_source

In SABREAUTO EVK, we tried with HDMI for 1st display and LVDS0 for 2nd display and it worked. But in our board, as per the requirement stated above, it does not work.

I run the following in SABREAUTO EVK and our board with the follwing results:

cat /proc/cmdline ; for i in /sys/class/graphics/fb?; do echo "------------ $i"; cat $i/name; cat $i/mode; cat $i/fsl_disp_*; done

in EVK:

console=ttymxc3,115200 video=mxcfb0:dev=hdmi,1920x1080M@60,if=RGB24 video=mxcfb1:dev=ldb,LDB-XGA,if=RGB666 enable_wait_mode=off arm_freq=800 nosmp root=/dev/mmcblk0p1 rootwait

------------ /sys/class/graphics/fb0

DISP3 BG

hdmi

2-layer-fb-bg

------------ /sys/class/graphics/fb1

DISP3 FG

overlay

2-layer-fb-fg

------------ /sys/class/graphics/fb2

DISP4 BG

D:1024x768p-60

ldb

2-layer-fb-bg

------------ /sys/class/graphics/fb3

DISP4 FG

overlay

2-layer-fb-fg

in our BOARD:

noinitrd console=ttymxc1,115200n8 video=mxcfb0:dev=ldb,LDB-JDIONE-16@51,if=RGB24,fbpix=RGB565 video=mxcfb2:dev=ldb,LDB-JDITWO-16@51,if=RGB24,fbpix=RGB565 ldb=sep0 enable_wait_mode=off arm_freq=800 ubi.mtd=2 root=ubi0:rootfs rootfstype=ubifs rootwait rw mtdparts=gpmi-nand:16m(boot),16m(kernel),1500m(rootfs)

------------ /sys/class/graphics/fb0

DISP3 BG

D:1920x720p-51

ldb

2-layer-fb-bg

------------ /sys/class/graphics/fb1

DISP3 FG

overlay

2-layer-fb-fg

------------ /sys/class/graphics/fb2

DISP3 BG - DI1

D:800x480p-51

ldb

1-layer-fb

root@freescale /$

LDB-JDIONE and LDB-JDITWO are defined in struct fb_videomode ldb_modedb[] in ldb.c.

We have removed hdmi code in our board. Here is the value of related strcuts:

static struct ipuv3_fb_platform_data sabr_fb_data[] = {

        { /*fb0*/

                .disp_dev               = "ldb",

                .interface_pix_fmt      = IPU_PIX_FMT_RGB24,

                .mode_str               = "LDB-JDIONE",

                .default_bpp            = 16,

                .int_clk                = false,

        }, {

                .disp_dev               = "ldb",

                .interface_pix_fmt      = IPU_PIX_FMT_RGB24,

                .mode_str               = "LDB-JDITWO",

                .default_bpp            = 16,

                .int_clk                = false,

        },

};

static struct imx_ipuv3_platform_data ipu_data[] = {

        {

                .rev            = 4,

                .csi_clk[0]     = "clko_clk",

        }, {

                .rev            = 4,

                .csi_clk[0]     = "clko_clk",

        },

};

static struct fsl_mxc_ldb_platform_data ldb_data = {

        .ipu_id         = 0,

        .disp_id        = 0,

        .ext_ref        = 1,

        .mode           = LDB_SEP0,

        .sec_ipu_id     = 0,

        .sec_disp_id    = 1,

};

In our board if I change the boots args to ldb=sep1, I can see the contents of fb0/1 via LVDS1 in 2nd display correctly. But I am never able to see fb2 in either 1st or the 2nd display.

Any pointers will be very helpful.

0 Kudos
2 Replies

773 Views
muthuswamydiksh
Contributor II

I changed the following ldb_data strcut as follows and i can see BG and FG sucessfully allocated for fb2.

static struct fsl_mxc_ldb_platform_data ldb_data = {

        .ipu_id         = 0,

        .disp_id        = 0,

        .ext_ref        = 1,

        .mode           = LDB_SEP0,

        .sec_ipu_id     = 1,

        .sec_disp_id    = 1,

};

noinitrd console=ttymxc1,115200n8 video=mxcfb0:dev=ldb,LDB-JDIONE-16@60,if=RGB24,fbpix=RGB565 ldb=sep0 enable_wait_mode=off arm_freq=800 ubi.mtd=2 root=ubi0:rootfs rootfstype=ubifs rootwait rw mtdparts=gpmi-nand:16m(boot),16m(kernel),1500m(rootfs)

------------ /sys/class/graphics/fb0

DISP3 BG

D:1920x720p-51

ldb

2-layer-fb-bg

------------ /sys/class/graphics/fb1

DISP3 FG

overlay

2-layer-fb-fg

------------ /sys/class/graphics/fb2

DISP4 BG - DI1

D:800x480p-51

ldb

2-layer-fb-bg

------------ /sys/class/graphics/fb3

DISP4 FG

overlay

2-layer-fb-fg

But There is no output on LVDS1.

One thing I observed is that on fbset -fb /dev/fb2 --info, i get vsync as 60Hz but I actually set to 51 Hz in struct fb_videomode ldb_modedb[] in ldb.c.

But still there should be some faulty output instead of no output from LVDS1.

Any pointers ?

0 Kudos

773 Views
jimmychan
NXP TechSupport
NXP TechSupport

For single-channel output: up to 85 MHz per interface. (e.g. WXGA-1366 x 768 at 60 Hz + 35% blanking). Please try the lower resolution to see if both channels can display first.

0 Kudos