Hello,
I'm trying to enable lvds on wandboard-solo.I'm using yocto bsp with kernel 3.10.17-r0.
The device tree alterations seems to look like http://pastebin.com/CdGyygCM. which has been altered from devshell.
After compiling and deploying the kernel, the zimage was dumped to the sdcard. With this settings i'm not
getting the display on lvds. Also i've posted the serial logs here http://pastebin.com/nXgcGKkY. The LCD i'm using is https://www.koe-europe.com/doc/TX31D38VM2BAA.pdf. Do i need to do something in addition? Please let me know.
Can anyone please help on this.
--Nilesh Kokane
Hi
I'm also posting the (imx6dl-wandboard.dts,imx6dl.
dtsi and imx6qdl-wandboard.dtsi)
1. http://pastebin.com/C3WTSktc (imx6dl-wandboard.dts)
2. http://pastebin.com/T0Hd0Vtt (imx6dl.dtsi)
3. http://pastebin.com/np0UqVi4 (imx6qdl-wandboard.dtsi)
I've altered these files with reference to sabreboard to enable lvds on wandboard-solo.These edits are made from devshell.And after bitbake -f -c compile linux wandboard and bitbake -c deploy linux-wandboard.I've tested the zImage on the wandboard-solo with which i'm unable to get the lvds output.I've posted the serial log [4].
4. http://pastebin.com/nXgcGKkY
Please if anyone can let me know on this.
Nilesh Kokane
Hi Nilesh,
I don't know if you have solved your problem, but I guess that you must specify the timming of your LCD Screen ( Refer to .\Documentation\devicetree\bindings\video\display-timing.txt file in the kernel dir).
Also, you must update timing parameters in ./drivers/video/mxc/ldb.c file, just change settings of "fb_videomode" structure in ldb_modedb table.
struct fb_videomode {
const char *name; /* name */
u32 refresh; /* refresh frequency */
u32 xres; //horizontal pixel
u32 yres; //vertical pixel
u32 pixclock; //clock frequency (in ps),
u32 left_margin; // HBPD(horizontal back porch)
u32 right_margin; // HFPD(horizontal front porth)
u32 upper_margin; // VBPD(vertical back porch)
u32 lower_margin; // VFBD(vertical front porch)
u32 hsync_len; // HSPW(horizontal sync pulse width)
u32 vsync_len; // VSPW(vertical sync pulse width)
u32 sync;
u32 vmode;
u32 flag;
};
Could you come back please with your steps done to solve your problem to share more informations.
--
Ismail ZEMNI
Hi Ismal,
Thanks for your reply.The problem seems to be solved with the following steps.
1. Device tree source is present in the kernel source code arch/arm/boot/dts
here
$cd bin/fsl-community-bsp/build/tmp/work/wandboard_solo-poky-linux-gnueabi/linux-wandboard/3.10.17-r0/git/arch/arm/boot/dts/
find bellow files
imx6dl-wandboard.dtb
imx6dl-wandboard.dts
imx6qdl-wandboard.dtsi
2. Now open the file imx6qdl-wandboard.dtsi
bin/fsl-community-bsp/build/tmp/work/wandboard_solo-poky-linux-gnueabi/linux-wandboard/3.10.17-r0/git/arch/arm/boot/dts/$gedit imx6qdl-wandboard.dtsi
aliases {
# delete this line
mxcfb1 = &mxcfb2;
mxcfb2 = &mxcfb3;
mxcfb3 = &mxcfb4;
};
#if 0
mxcfb1: fb@0 {
compatible = "fsl,mxc_sdc_fb";
disp_dev = "hdmi";
interface_pix_fmt = "RGB24";
mode_str ="1920x1080M@60";
default_bpp = <24>;
int_clk = <0>;
late_init = <0>;
status = "disabled";
};
#endif
mxcfb2: fb@1 {
compatible = "fsl,mxc_sdc_fb";
disp_dev = "ldb";
interface_pix_fmt = "RGB666";
mode_str ="LDB-HSXGA";
default_bpp = <16>;
int_clk = <0>;
late_init = <0>;
status = "disabled";
};
#if 1
&ldb {
ipu_id = <0>;
disp_id = <1>;
ext_ref = <1>;
mode = "sin0";
sec_ipu_id = <1>;
sec_disp_id = <1>;
status = "okay";
};
#endif
3. $ bitbake -c devshell linux-wandboard
new window will open
root@Minda:~/bin/fsl-community-bsp/build/tmp/work/wandboard_solo-poky-linux-gnueabi/linux-wandboard/3.10.17-r0/git# make imx6dl-wandboard.dtb
after completion of this command new imx6dl-wandboard.dtb file will be generate in dts/ directory
4. ~/bin/fsl-community-bsp/build/tmp/work/wandboard_solo-poky-linux-gnueabi/linux-wandboard/3.10.17-r0/git/drivers/video/mxc$ gedit ldb.c
Make changes as below in blue color -
static struct fb_videomode ldb_modedb[] = {
{
"LDB-WXGA", 60, 1280, 800, 14065,
40, 40,
10, 3,
80, 10,
0,
FB_VMODE_NONINTERLACED,
FB_MODE_IS_DETAILED,},
{
"LDB-HSXGA", 60, 1280, 480, 22828, # NOTE that “LDB-HSXGA” this is same as in imx6qdl-wandboard.dtsi
220, 40,
21, 7,
60, 10,
0,
FB_VMODE_NONINTERLACED,
FB_MODE_IS_DETAILED,},
{
"LDB-XGA", 60, 1024, 768, 15385,
220, 40,
21, 7,
60, 10,
0,
FB_VMODE_NONINTERLACED,
FB_MODE_IS_DETAILED,},
{
"LDB-1080P60", 60, 1920, 1080, 7692,
100, 40,
30, 3,
10, 2,
0,
FB_VMODE_NONINTERLACED,
FB_MODE_IS_DETAILED,},
};
Thanks for your answer Nielsh,
Just about the timing values of LDB-HSXGA:
{
"LDB-HSXGA", 60, 1280, 480, 22828, # NOTE that “LDB-HSXGA” this is same as in imx6qdl-wandboard.dtsi
220, 40,
21, 7,
60, 10,
0,
FB_VMODE_NONINTERLACED,
FB_MODE_IS_DETAILED,}
According to the screen datasheet they must be:
{
"LDB-HSXGA", 60, 1280, 480, 23148,
40,40,
30,20,
TBD, TBD,
0,
FB_VMODE_NONINTERLACED,
FB_MODE_IS_DETAILED,}
Could you please detail your timing values choice?
Thanks,
Ismail,
The values of hsync and vsysc fairly depends on the specifications of LCD.
In my case the hsync and vsync was ignored and derived from pixel clock by the LCD.So I least bothered about hsync and vsync.
Hope that helps.
Hi,
I'm a fresh owner (yesterday so it's still hot ..) of a wandboard quad and I would like to enable lvds output ot make use of an old laptop screen (AU optronics -- Model B140XW03).
Reading the display datasheet I understood I have to use a LVDS single channel in RGB6bits (1366x768@60Hz mode).
Reading your last post I was feeling lucky as you pointed me where the right file to modify is (arch/arm/boot/dtsimx6qdl-wandboard.dtsi) but I discover that my file doesn't seem to contain any lines related to ldb device. So qustion is: is this due to any of my kernel parameter ?
note : I m using a 4.1.13-armv7-rt-x6 kernel as I needed a rt-preempted kernel, following robert nelson excellent blog (https://eewiki.net/display/linuxonarm/Wandboard ). or is there any root cause ?
Sorry for such a stupid but it seems I'm stuck from the early beginning of my trip....
Hope to get some help here...
Regards
Snarf77