1920*720屏幕配置 返回首页

发表于 2023-01-12 | 本文共 299 字

修改lvds分辨率为1920*720

1、修改boot参数(非必要)

video=mxcfb0:dev=ldb' //lvds

2、修改设备树

2.1 修改dtsi

	mxcfb3: fb@2 {
		compatible = "fsl,mxc_sdc_fb";
		disp_dev = "ldb";
		interface_pix_fmt = "RGB24";
		mode_str ="1920x720M@60";
		default_bpp = <16>;
		int_clk = <0>;
		late_init = <0>;
		status = "disabled";
	};
	
	&ldb {
		status = "okay";
		/* split-mode; */ /* dual-channel setting */
		split-mode;//设置双通道模式
		
		lvds-channel@0 {
			fsl,data-mapping = "spwg";
			fsl,data-width = <24>;
			crtc = "ipu2-di0";
			primary;
			status = "okay";

2.2、修改dts

	&ldb {
		status = "okay";
		split-mode;
		
		lvds-channel@0 {
			display-timings {
				native-mode = <&timing90>;
	
				timing90:S123AWU06ES {
					  clock-frequency = <100980000>;
					  hactive = <1920>;
					  vactive = <720>;
					  hback-porch = <148>;
					  hfront-porch = <88>;
					  vback-porch = <36>;
					  vfront-porch = <4>;
					  hsync-len = <44>;
					  vsync-len = <5>;
				};

3、说明书屏幕参数

6.4 Timing Condition 
a.DE ModeItem 
Symbol             Min         Typ         Max         Unit 
 Clock frequency FOCLK                   90    100  130 MHZ 
 Horizontal period area TH           1980 2046 2160 DCLK 
 Horizontal display area THD       1920 1920 1920 DCLK 
 Horizontal blanking area THB       60   126 240 DCLK 
 Vertical period area TV                    730  760 840 TH 
 Vertical display area TVD                720 720 720 TH 
 Vertical blanking area TVB             10 40 120 TH 
 Frame rate FR                                   55 60 65 HZ

## 4、修改内核

4.1、mxc_edid.c 增加参数

[48] = { 		
	NULL, 60, 1920, 720, 10098, 88, 148, 4, 36, 44, 5,
	FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
	FB_VMODE_NONINTERLACED | FB_VMODE_ASPECT_16_9, 0,
},

4.2、mxc_lcdif.c 增加参数

static const struct fb_videomode lvds_mode = {
	NULL, 60, 1920, 720, 10098, 88, 148, 4, 36, 44, 5,	
	FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
	FB_VMODE_NONINTERLACED | FB_VMODE_ASPECT_16_9,FB_MODE_IS_VESA
};
fb_add_videomode(&lvds_mode, &fbi->modelist);
printk( "Added default mode lvds_mode:");
printk("xres = %d, yres = %d, freq = %d, vmode = %d, flag = %d\n",
			lvds_mode.xres,
			lvds_mode.yres,
			lvds_mode.refresh,
			lvds_mode.vmode,
			lvds_mode.flag);