Hi,
I am using iMX6 platform and this platform has 3 display devices: LVDS, VGA LCD, and HDMI.
I found from the document that iMX6 support dual display of the combination of LVDS and HDMI.
It seems does not support the dual display of LVDS+ VGA LCD
Is there any body know any possibility to make dual display of LVDS+VGA LCD work?
Solved! Go to Solution.
Hi, Weidong
The VGA is ok now.
int the file arch/arm/mach-mx6/board-mx6q_sabrelite.c
The older setting:
static struct fsl_mxc_hdmi_core_platform_data hdmi_core_data = {
.ipu_id = 0,
.disp_id = 1,
};
static struct fsl_mxc_lcd_platform_data lcdif_data = {
.ipu_id = 0,
.disp_id = 0,
.default_ifmt = IPU_PIX_FMT_RGB565,
};
static struct fsl_mxc_ldb_platform_data ldb_data = {
.ipu_id = 1,
.disp_id = 0,
.ext_ref = 1,
.mode = LDB_SEP0,
.sec_ipu_id = 1,
.sec_disp_id = 1,
};
Now I set it to :
static struct fsl_mxc_hdmi_core_platform_data hdmi_core_data = {
.ipu_id = 1,
.disp_id = 1,
};
static struct fsl_mxc_lcd_platform_data lcdif_data = {
.ipu_id = 0,
.disp_id = 0,
.default_ifmt = IPU_PIX_FMT_RGB565,
};
static struct fsl_mxc_ldb_platform_data ldb_data = {
.ipu_id = 1,
.disp_id = 0,
.ext_ref = 1,
.mode = LDB_SEP0,
.sec_ipu_id = 0,
.sec_disp_id = 1,
}
I don't really understand what the ipu_id adn disp_id mean . I just found the VGA conflict with hdmi ,then i modified the setting .
Hello All:
I want dual diaplay with LCD and HDMI in my imx6dl platform under ubuntu,but the ubuntu is only display the fb0,and the fb2 is no output,(fb1 is overlay).How can i siwtch the fbX? and how can i test the dual display?
I set the board data was:
Now I set it to :
Now I set it to :
static struct fsl_mxc_hdmi_core_platform_data hdmi_core_data = {
.ipu_id = 0,
.disp_id = 1,
};
static struct fsl_mxc_lcd_platform_data lcdif_data = {
.ipu_id = 0,
.disp_id = 0,
.default_ifmt = IPU_PIX_FMT_RGB565,
};
and the uboot cmdline is :
video=mxcfb0:dev=lcd,VGA,if=RGB24 video=mxcfb1:dev=hdmi,1920x1080@60,if=RGB24
Hello,Chi-Chung,
There is no VGA port on i.mx6 SOC. If there exists VGA port on your board, you should know which port on i.mx6 is converted to VGA. For example, the VGA is from DISP0(RGB24 interface) ?
So please check VGA part of the schematic. Then you will know how to set u-boot environment to use dual display according to i.mx6dq user's guide released by Freescale.
Reagards,
Weidong
Hi, Weidong,
We tried to have dual display with LVDS and RGB(LCD) even with mirror content.
We set LVDS as mxcfb0 and LCD as mxcfb1 in kernel command line of uboot.
Our LVDS panel resolution 1920x1080, and LCD panel is 1024x768.
LVDS panel can display correctly but LCD panel has no output.
We found the reason is that LCD always use the settings of LVDS, not the setting for LCD, so that LCD panel cannot display (out of range).
If we change LVDS setting to 1024x768, the LVDS and LCD panels have the output (of course, LVDS has output but with wrong resolution).
Have you solutions to this?
Hi, Weidong
We are using imx6q sabrelite board. We change the DISP0(RGB24 interface) to VGA by ADV7125. the VGA can only output 1024x768@60 correctly.
I couldn't set any other resolutions such as 1360x768 or 1920x1080 successfully. I can get the clock, and it looks good, but there is no data output. The board is running linux,and the kernel is got from yocto..
The fb_videomode i set is :
{ "1360x768", 60, 1360, 768, 11695, 256, 64, 18, 3, 112, 6,
0, FB_VMODE_NONINTERLACED, FB_MODE_IS_VESA},
{ "1440x900", 60, 1440, 900, 9389, 232, 80, 25, 3, 152, 6,
0, FB_VMODE_NONINTERLACED, FB_MODE_IS_VESA},
{ "1600x1200", 60, 1600, 1200, 6172, 304, 64, 46, 1, 192, 3,
0, FB_VMODE_NONINTERLACED, FB_MODE_IS_VESA},
{"1024x768", 60, 1024, 768, 15384, 160, 24, 29, 3, 136, 6,
0, FB_VMODE_NONINTERLACED, FB_MODE_IS_VESA},
Can you help me with that ?
Hi, Zhao,
Not sure if this post could help you or not. https://community.freescale.com/docs/DOC-94905
Hi, Wei-Shan
Thank you
It works good only when the set is 1204x768.
On other situations,such as 1360x768, there is no data output from DISP0_DAT0~DISP0_DAT23. when the resolution is 1360x768, the pixel clock is less than 100MHZ
Hello,zhao,
I need to konw 2 messages:
(1) What is the max resolution supportd by ADV7125 ?
I mean it's working mode is bypass or scale ?
(2)Can you paste your u-boot environment here ?
Let us analyze it .
Regards,
Weidong
Hi Weidong
Thank you.
(1). The hardware engineer told me that the ADV7125 could support up to 1920x1080 resolution.. There is no data output before ADV7125 by now, but the clock output seems right.
(2) .we are using hdmi 、 lvds and VGA
the cmdline is :
console=ttymxc1,115200 root=/dev/nfs nfsroot=192.168.0.85:/opt/mx6fs,v3,tcp ip=192.168.0.61 video=mxcfb2:dev=ldb,1024x768,if=RGB24 ldb=sin0 video=mxcfb1:dev=hdmi,1920x1080@60,if=RGB24 video=mxcfb0:dev=lcd,1360x768,if=RGB24
Hello,zhao,
Try this bootargs:
console=ttymxc1,115200 root=/dev/nfs nfsroot=192.168.0.85:/opt/mx6fs,v3,tcp ip=192.168.0.61 video=mxcfb1:dev=hdmi,1920x1080@60,if=RGB24 video=mxcfb0:dev=lcd,1920x1080@60,if=RGB24
It means if we don't use LVDS, see HDMI and VGA resolutions.
Regards,
Weidong
Hi, Weidong
using console=ttymxc1,115200 root=/dev/nfs nfsroot=192.168.0.85:/opt/mx6fs,v3,tcp ip=192.168.0.61 video=mxcfb1:dev=hdmi,1920x1080@60,if=RGB24 video=mxcfb0:dev=lcd,1920x1080@60,if=RGB24
The VGA still can not work..
The HDMI is ok
Hello,zhao,
"The VGA still can not work.." what does it mean ? No ouput or resolution is not correct ?
Then how is 1360x768 ?
console=ttymxc1,115200 root=/dev/nfs nfsroot=192.168.0.85:/opt/mx6fs,v3,tcp ip=192.168.0.61 video=mxcfb1:dev=hdmi,1920x1080@60,if=RGB24 video=mxcfb0:dev=lcd,1360x768,if=RGB24
Weidong
Hi, Weidong
The VGA is ok now.
int the file arch/arm/mach-mx6/board-mx6q_sabrelite.c
The older setting:
static struct fsl_mxc_hdmi_core_platform_data hdmi_core_data = {
.ipu_id = 0,
.disp_id = 1,
};
static struct fsl_mxc_lcd_platform_data lcdif_data = {
.ipu_id = 0,
.disp_id = 0,
.default_ifmt = IPU_PIX_FMT_RGB565,
};
static struct fsl_mxc_ldb_platform_data ldb_data = {
.ipu_id = 1,
.disp_id = 0,
.ext_ref = 1,
.mode = LDB_SEP0,
.sec_ipu_id = 1,
.sec_disp_id = 1,
};
Now I set it to :
static struct fsl_mxc_hdmi_core_platform_data hdmi_core_data = {
.ipu_id = 1,
.disp_id = 1,
};
static struct fsl_mxc_lcd_platform_data lcdif_data = {
.ipu_id = 0,
.disp_id = 0,
.default_ifmt = IPU_PIX_FMT_RGB565,
};
static struct fsl_mxc_ldb_platform_data ldb_data = {
.ipu_id = 1,
.disp_id = 0,
.ext_ref = 1,
.mode = LDB_SEP0,
.sec_ipu_id = 0,
.sec_disp_id = 1,
}
I don't really understand what the ipu_id adn disp_id mean . I just found the VGA conflict with hdmi ,then i modified the setting .
OK, Zhao,
Good Job !!
There are 2 IPUs in i.mX6Q(IPU0 and IPU1), and every IPU has 2 display interface(IPU0_DI0/IPU0_DI1; IPU1_DI0/IPU1_DI1)
It means IPU0 has disp_id=0 and disp_id=1 , IPU1 has disp_id=0 and disp_id=1. for example , for your design:
(1)IPU1_DI1------>HDMI
(2)IPU0_DI0------>DISP0--->ADV7125
(3)LVDS datastructure
It means LVDS0 uses IPU1_DI0 and LVDS1 uses IPU0_DI1.
I hope the above can help you understand display interface.
Regards,
Weidong
我与你一样,都使用了adv7125,不过,我使用的是imx6dl,由于dl的只有一个ipu,我想知道怎么做lcd与hdmi的自动切换
Hello Weidong,
First of all you are very helpful! thank you!
and second, can you please explain about the struct fsl_mxc_ldb_platform_data ldb_data?
Is the ipu_id&disp_id are for the primary display and sec_ipu_id&sec_disp_id for the secondary?
should their configurations match the configurations in fsl_mxc_hdmi_core_platform_data hdmi_core_data and fsl_mxc_lcd_platform_data lcdif_data?
and what about ext_ref? what does it mean?
also, can I change the mode? for example to mode = LDB_DUL0? (as I understand there are 4 modes: sin,spl,dul and sep)
Thank you!
Aline.
Weidong,
What is the relation between MXCFB0/1/2, and IPU0/1, DISP0/1?
Hi, Weidong
There is no output. There is no data come from DISP0_DAT0~DISP0_DAT23, but the HSYNC seems right
when 1360x768, the phenomenon is the same