Dear all,
this is my configure of lcd panel:
mxcfb1: fb@0 {
compatible = "fsl,mxc_sdc_fb";
disp_dev = "ldb";
interface_pix_fmt = "RGB24";
mode_str ="LDB-1080P60";
default_bpp = <32>;
int_clk = <0>;
late_init = <0>;
status = "okay";
};
&ldb {
status = "okay";
split-mode;
lvds-channel@0 {
fsl,data-mapping = "spwg";
fsl,data-width = <24>;
crtc = "ipu2-di0";
primary;
status = "okay";
display-timings {
native-mode = <&timing0>;
timing0: hsd100pxn1 {
clock-frequency = <83000000>;
hactive = <1920>;
vactive = <1080>;
hback-porch = <80>;
hfront-porch = <68>;
vback-porch = <15>;
vfront-porch = <15>;
hsync-len = <12>;
vsync-len = <8>;
};
};
};
lvds-channel@1 {
fsl,data-mapping = "spwg";
fsl,data-width = <24>;
crtc = "ipu2-di1";
status = "disabled";
display-timings {
native-mode = <&timing1>;
timing1: hsd100pxn1 {
clock-frequency = <83000000>;
hactive = <1920>;
vactive = <1080>;
hback-porch = <80>;
hfront-porch = <68>;
vback-porch = <15>;
vfront-porch = <15>;
hsync-len = <12>;
vsync-len = <8>;
};
};
};
};
kernel:
# cat /proc/cmdline
noinitrd console=ttymxc0,115200 root=/dev/mmcblk0p1 rw init=/linuxrc video=mxcfb0:dev=ldb,LDB-1080P60,if=RGB24,bpp=32 consoleblank=0 ldb=spl0 ldo_active=on
# cat /sys/class/graphics/fb0/modes
U:1920x1080p-35
why my refresh frequency is 35Hz, i need 60Hz or 75Hz, how can i do that?
thank you,
fulinux.
已解决! 转到解答。
Hi Fulinux,
I found the issue in the thread I created: i.MX6Q Dual channel LVDS output in kernel 3.10.53 / 3.14.52
Your frequency may be wrong. I assume you are using the two LVDS channel lines to drive one screen that has an LVDS clock of 83Mhz.
Inside the "Documentation/devicetree/bindings/video/fsl,ldb.txt" file describing the ldb section, it says that if split mode is specified you do not need to provide a lvds-channel@1. I think you can remove this section.
Try this:
====
&ldb {
status = "okay";
split-mode;
lvds-channel@0 {
fsl,data-mapping = "spwg";
fsl,data-width = <24>;
crtc = "ipu2-di0";
primary;
status = "okay";
display-timings {
native-mode = <&timing0>;
timing0: hsd100pxn1 {
clock-frequency = <166000000>;
hactive = <1920>;
vactive = <1080>;
hback-porch = <80>;
hfront-porch = <68>;
vback-porch = <15>;
vfront-porch = <15>;
hsync-len = <12>;
vsync-len = <8>;
};
};
};
};
Hi Fulinux,
I found the issue in the thread I created: i.MX6Q Dual channel LVDS output in kernel 3.10.53 / 3.14.52
Your frequency may be wrong. I assume you are using the two LVDS channel lines to drive one screen that has an LVDS clock of 83Mhz.
Inside the "Documentation/devicetree/bindings/video/fsl,ldb.txt" file describing the ldb section, it says that if split mode is specified you do not need to provide a lvds-channel@1. I think you can remove this section.
Try this:
====
&ldb {
status = "okay";
split-mode;
lvds-channel@0 {
fsl,data-mapping = "spwg";
fsl,data-width = <24>;
crtc = "ipu2-di0";
primary;
status = "okay";
display-timings {
native-mode = <&timing0>;
timing0: hsd100pxn1 {
clock-frequency = <166000000>;
hactive = <1920>;
vactive = <1080>;
hback-porch = <80>;
hfront-porch = <68>;
vback-porch = <15>;
vfront-porch = <15>;
hsync-len = <12>;
vsync-len = <8>;
};
};
};
};
did you use imx6 board? if yes, could you share your ldb.c file, which have the struct fb_videomode. and pls confirm if board and lvds can support it or not. and try to confirm if you set the correct refresh rate value in the source code or not.
Dear GuanQiong,
which ldb.c file? i have never modified anything code in kernel,just modified dts file, my kernel is linux-4.1.15, board is imx6q,should i modify some code file?Would you please detail your replay for our sample?