Hi,
I'm trying to get output from a custom board based on a Seco QuadMo747-X/i.MX6. The signal comes out from LVDS and then it's converted to VGA. I'm using kernel imx_3.10.53_1.1.0_ga.
When I connect my board to a TFT display through the VGA input, sync signals are detected fine (1024x768) but the screen is black, even though I've checked the framebuffer has something, because I've dumped its contents to a PPM file and I see the four penguins.
I've set the relevant parts of my DTS like this:
mxcfb1: fb@0 {
compatible = "fsl,mxc_sdc_fb";
disp_dev = "ldb";
interface_pix_fmt = "RGB666";
default_bpp = <16>;
int_clk = <0>;
late_init = <0>;
status = "okay";
};
mxcfb2: fb@1 {
compatible = "fsl,mxc_sdc_fb";
disp_dev = "ldb";
interface_pix_fmt = "RGB666";
default_bpp = <16>;
int_clk = <0>;
late_init = <0>;
status = "okay";
};
mxcfb3: fb@2 {
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";
};
mxcfb4: fb@3 {
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";
};
And the ldb:
&ldb {
status = "okay";
lvds-channel@0 {
fsl,data-mapping = "spwg";
fsl,data-width = <18>;
crtc = "ipu1-di0";
primary;
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;
crtc = "ipu1-di1";
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>;
};
};
};
};
And my bootargs are:
console=ttymxc1,115200 root=/dev/nfs nfsroot=192.168.1.14:/home/cs/nfs_secoimx6 rw nolock,wsize=4096,rsize=4096 ip=192.168.1.18:::255.255.255.0::eth0:off mem=1024M arm_freq=996 video=mxcfb0:dev=ldb,LDB-XGA,if=RGB666
Thanks in advance,
Carlos
Well, we've solved the issue. It was a hardware problem.
Hi Carlos
according to kernel command line (LDB-XGA) timings are for XGA resolution,
they will not work for VGA resolution. Suggest to look at
sect.18.3 Modifying Boot Kernel Parameters to Support a New LCD
MX53UG or AN3974 Different Display Configurations on i.MX35 Linux PDK
and add configuration for VGA timings.
Note, your panel should have lvds interface not VGA (it is analog).
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Hi Igor,
thanks for your anwer.
Well, maybe I didn't explained it right. I want XGA resolution (1024x768), and I'm using LVDS but in my board it's converted to analog signal and I'm using a VGA (analog) connector to attach it to my TFT-LCD display.
When I switch to the analog input of my display, it detects a signal with the correct resolution, so at least the sync signals (Hsync, Vsync) are correctly generated, but I can only see a black screen. At first I thought it was because there was nothing showing in the framebuffer, but I made a capture and I saw the four penguins, so there should be something showing in the screen.
Is there anything I'm missing in my configuration?