uboot lvds split 模式的设置

cancel
Showing results for 
Search instead for 
Did you mean: 

uboot lvds split 模式的设置

805 Views
senli
Contributor II

大家好!

            我现在用的是imx6q Linux3.14.52的BSP。LCD 是1920*720 LVDS的屏(split ),24位的色深。

            现在在Linux驱动中已经调好了,屏显示是正常的。

            但是现在在UBOOT里面显示不正常。

             我在mx6sabresd.c中修改了struct display_info_t const displays[]的时序,修改的和Linux驱动中是一样的。

 下面是修改的参数:            

struct display_info_t const displays[] = {{
.bus = 0,
.addr = 0,
.pixfmt = IPU_PIX_FMT_RGB24,
.detect = NULL,
.enable = enable_lvds,
.mode = {
#if 0
.name = "Hannstar-XGA",
.refresh = 60,
.xres = 1024,
.yres = 768,
.pixclock = 15385,
.left_margin = 220,
.right_margin = 40,
.upper_margin = 21,
.lower_margin = 7,
.hsync_len = 60,
.vsync_len = 10,
.sync = FB_SYNC_EXT,
.vmode = FB_VMODE_NONINTERLACED
#else

.name = "Hannstar-XGA",
.refresh = 60,
.xres = 1920,
.yres = 720,
.pixclock = 11210,
.left_margin = 16,
.right_margin = 16,
.upper_margin = 5,
.lower_margin = 16,
.hsync_len = 8,
.vsync_len = 2,
.sync = 0,
.vmode = FB_VMODE_NONINTERLACED
#endif
} },

另外修改了enable_lvds函数,将通道改为24位,并打开了SPLIT模式

static void enable_lvds(struct display_info_t const *dev)
{
struct iomuxc *iomux = (struct iomuxc *)
IOMUXC_BASE_ADDR;
u32 reg = readl(&iomux->gpr[2]);

#if 0
reg |= IOMUXC_GPR2_DATA_WIDTH_CH0_18BIT |
IOMUXC_GPR2_DATA_WIDTH_CH1_18BIT;
#else
reg |= IOMUXC_GPR2_DATA_WIDTH_CH0_24BIT |
IOMUXC_GPR2_DATA_WIDTH_CH1_24BIT |IOMUXC_GPR2_SPLIT_MODE_EN_MASK;
#endif
writel(reg, &iomux->gpr[2]);
printf("enable_lvds reg =0x%x\n",reg);
}

但是编译后显示不正常。

显示的logo图片是正确的,但是整个图像偏右了。另外背静色本来是黑色的,但是显示出来的背景色,靠右边四分之一的位置变成红色了。

另外测量了下CLOCK,是80MHZ。

我的屏是88M的,SPLIT模式两路都是输出44M,在LINUX驱动跑起来后就是44M。

但是在BOOT中却是80M左右。

我打印了 IOMUXC_GPR2 寄存器,设置和在驱动里面也是一样的。

请高手看看,是不是还有什么设置没有改对。

Labels (3)
0 Kudos
5 Replies

161 Views
jimmychan
NXP TechSupport
NXP TechSupport
0 Kudos

161 Views
senli
Contributor II

Hi Jimmychan :

     Thanks for your reply .

     At the website ,I found the patch 0001-Fix-the-split-mode-LVDS-panel-no-TX3-signal-issue,and download it .

     But I found this patch is not for BSP3.14.52. 

     I can not found the file cpu/arm_cortexa8/mx6/ipu.c,so this patch can not be used .

     Can you   support the document to discribe how to set the register for split mode .so I can modify source code by myself.

0 Kudos

161 Views
jimmychan
NXP TechSupport
NXP TechSupport

please patch the uboot_logo_keep_patch file first.

0 Kudos

161 Views
senli
Contributor II

Hi Jimmychan :

    The bsp I used is 3.14.52,but the patch only suported 3.10.53 ot 4.1.15.

     I try to do the patch .It is compiled sucess .

     But it is can not work . In uboot ,it display normally ,but when jump to kernel ,the system hang up.

     Can you support the patch for 3.14.52.

0 Kudos

161 Views
jimmychan
NXP TechSupport
NXP TechSupport

sorry, we only have this two patches.

0 Kudos