<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic uboot lvds split 模式的设置 in i.MX Processors</title>
    <link>https://community.nxp.com/t5/i-MX-Processors/uboot-lvds-split-%E6%A8%A1%E5%BC%8F%E7%9A%84%E8%AE%BE%E7%BD%AE/m-p/610762#M92159</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;大家好！&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 我现在用的是imx6q Linux3.14.52的BSP。LCD 是1920*720 LVDS的屏（split ）,24位的色深。&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 现在在Linux驱动中已经调好了，屏显示是正常的。&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 但是现在在UBOOT里面显示不正常。&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;我在mx6sabresd.c中修改了struct display_info_t const displays[]的时序，修改的和Linux驱动中是一样的。&lt;/P&gt;&lt;P&gt;&amp;nbsp;下面是修改的参数： &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P&gt;struct display_info_t const displays[] = {{&lt;BR /&gt;.bus = 0,&lt;BR /&gt;.addr = 0,&lt;BR /&gt;.pixfmt = IPU_PIX_FMT_RGB24,&lt;BR /&gt;.detect = NULL,&lt;BR /&gt;.enable = enable_lvds,&lt;BR /&gt;.mode = {&lt;BR /&gt;#if 0&lt;BR /&gt;.name = "Hannstar-XGA",&lt;BR /&gt;.refresh = 60,&lt;BR /&gt;.xres = 1024,&lt;BR /&gt;.yres = 768,&lt;BR /&gt;.pixclock = 15385,&lt;BR /&gt;.left_margin = 220,&lt;BR /&gt;.right_margin = 40,&lt;BR /&gt;.upper_margin = 21,&lt;BR /&gt;.lower_margin = 7,&lt;BR /&gt;.hsync_len = 60,&lt;BR /&gt;.vsync_len = 10,&lt;BR /&gt;.sync = FB_SYNC_EXT,&lt;BR /&gt;.vmode = FB_VMODE_NONINTERLACED&lt;BR /&gt;#else&lt;/P&gt;&lt;P&gt;.name = "Hannstar-XGA",&lt;BR /&gt;.refresh = 60,&lt;BR /&gt;.xres = 1920,&lt;BR /&gt;.yres = 720,&lt;BR /&gt;.pixclock = 11210,&lt;BR /&gt;.left_margin = 16,&lt;BR /&gt;.right_margin = 16,&lt;BR /&gt;.upper_margin = 5,&lt;BR /&gt;.lower_margin = 16,&lt;BR /&gt;.hsync_len = 8,&lt;BR /&gt;.vsync_len = 2,&lt;BR /&gt;.sync = 0,&lt;BR /&gt;.vmode = FB_VMODE_NONINTERLACED&lt;BR /&gt;#endif&lt;BR /&gt;} },&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;另外修改了enable_lvds函数，将通道改为24位，并打开了SPLIT模式&lt;/P&gt;&lt;P&gt;static void enable_lvds(struct display_info_t const *dev)&lt;BR /&gt;{&lt;BR /&gt;struct iomuxc *iomux = (struct iomuxc *)&lt;BR /&gt;IOMUXC_BASE_ADDR;&lt;BR /&gt;u32 reg = readl(&amp;amp;iomux-&amp;gt;gpr[2]);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#if 0&lt;BR /&gt;reg |= IOMUXC_GPR2_DATA_WIDTH_CH0_18BIT |&lt;BR /&gt;IOMUXC_GPR2_DATA_WIDTH_CH1_18BIT;&lt;BR /&gt;#else&lt;BR /&gt;reg |= IOMUXC_GPR2_DATA_WIDTH_CH0_24BIT |&lt;BR /&gt;IOMUXC_GPR2_DATA_WIDTH_CH1_24BIT |IOMUXC_GPR2_SPLIT_MODE_EN_MASK;&lt;BR /&gt;#endif&lt;BR /&gt;writel(reg, &amp;amp;iomux-&amp;gt;gpr[2]);&lt;BR /&gt;printf("enable_lvds reg =0x%x\n",reg);&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;但是编译后显示不正常。&lt;/P&gt;&lt;P&gt;显示的logo图片是正确的，但是整个图像偏右了。另外背静色本来是黑色的，但是显示出来的背景色，靠右边四分之一的位置变成红色了。&lt;/P&gt;&lt;P&gt;另外测量了下CLOCK，是80MHZ。&lt;/P&gt;&lt;P&gt;我的屏是88M的，SPLIT模式两路都是输出44M，在LINUX驱动跑起来后就是44M。&lt;/P&gt;&lt;P&gt;但是在BOOT中却是80M左右。&lt;/P&gt;&lt;P&gt;我打印了 &lt;SPAN class=""&gt;IOMUXC_GPR2&lt;/SPAN&gt;&amp;nbsp;寄存器，设置和在驱动里面也是一样的。&lt;/P&gt;&lt;P&gt;请高手看看，是不是还有什么设置没有改对。&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 08 Feb 2017 02:47:05 GMT</pubDate>
    <dc:creator>senli</dc:creator>
    <dc:date>2017-02-08T02:47:05Z</dc:date>
    <item>
      <title>uboot lvds split 模式的设置</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/uboot-lvds-split-%E6%A8%A1%E5%BC%8F%E7%9A%84%E8%AE%BE%E7%BD%AE/m-p/610762#M92159</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;大家好！&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 我现在用的是imx6q Linux3.14.52的BSP。LCD 是1920*720 LVDS的屏（split ）,24位的色深。&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 现在在Linux驱动中已经调好了，屏显示是正常的。&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 但是现在在UBOOT里面显示不正常。&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;我在mx6sabresd.c中修改了struct display_info_t const displays[]的时序，修改的和Linux驱动中是一样的。&lt;/P&gt;&lt;P&gt;&amp;nbsp;下面是修改的参数： &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P&gt;struct display_info_t const displays[] = {{&lt;BR /&gt;.bus = 0,&lt;BR /&gt;.addr = 0,&lt;BR /&gt;.pixfmt = IPU_PIX_FMT_RGB24,&lt;BR /&gt;.detect = NULL,&lt;BR /&gt;.enable = enable_lvds,&lt;BR /&gt;.mode = {&lt;BR /&gt;#if 0&lt;BR /&gt;.name = "Hannstar-XGA",&lt;BR /&gt;.refresh = 60,&lt;BR /&gt;.xres = 1024,&lt;BR /&gt;.yres = 768,&lt;BR /&gt;.pixclock = 15385,&lt;BR /&gt;.left_margin = 220,&lt;BR /&gt;.right_margin = 40,&lt;BR /&gt;.upper_margin = 21,&lt;BR /&gt;.lower_margin = 7,&lt;BR /&gt;.hsync_len = 60,&lt;BR /&gt;.vsync_len = 10,&lt;BR /&gt;.sync = FB_SYNC_EXT,&lt;BR /&gt;.vmode = FB_VMODE_NONINTERLACED&lt;BR /&gt;#else&lt;/P&gt;&lt;P&gt;.name = "Hannstar-XGA",&lt;BR /&gt;.refresh = 60,&lt;BR /&gt;.xres = 1920,&lt;BR /&gt;.yres = 720,&lt;BR /&gt;.pixclock = 11210,&lt;BR /&gt;.left_margin = 16,&lt;BR /&gt;.right_margin = 16,&lt;BR /&gt;.upper_margin = 5,&lt;BR /&gt;.lower_margin = 16,&lt;BR /&gt;.hsync_len = 8,&lt;BR /&gt;.vsync_len = 2,&lt;BR /&gt;.sync = 0,&lt;BR /&gt;.vmode = FB_VMODE_NONINTERLACED&lt;BR /&gt;#endif&lt;BR /&gt;} },&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;另外修改了enable_lvds函数，将通道改为24位，并打开了SPLIT模式&lt;/P&gt;&lt;P&gt;static void enable_lvds(struct display_info_t const *dev)&lt;BR /&gt;{&lt;BR /&gt;struct iomuxc *iomux = (struct iomuxc *)&lt;BR /&gt;IOMUXC_BASE_ADDR;&lt;BR /&gt;u32 reg = readl(&amp;amp;iomux-&amp;gt;gpr[2]);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#if 0&lt;BR /&gt;reg |= IOMUXC_GPR2_DATA_WIDTH_CH0_18BIT |&lt;BR /&gt;IOMUXC_GPR2_DATA_WIDTH_CH1_18BIT;&lt;BR /&gt;#else&lt;BR /&gt;reg |= IOMUXC_GPR2_DATA_WIDTH_CH0_24BIT |&lt;BR /&gt;IOMUXC_GPR2_DATA_WIDTH_CH1_24BIT |IOMUXC_GPR2_SPLIT_MODE_EN_MASK;&lt;BR /&gt;#endif&lt;BR /&gt;writel(reg, &amp;amp;iomux-&amp;gt;gpr[2]);&lt;BR /&gt;printf("enable_lvds reg =0x%x\n",reg);&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;但是编译后显示不正常。&lt;/P&gt;&lt;P&gt;显示的logo图片是正确的，但是整个图像偏右了。另外背静色本来是黑色的，但是显示出来的背景色，靠右边四分之一的位置变成红色了。&lt;/P&gt;&lt;P&gt;另外测量了下CLOCK，是80MHZ。&lt;/P&gt;&lt;P&gt;我的屏是88M的，SPLIT模式两路都是输出44M，在LINUX驱动跑起来后就是44M。&lt;/P&gt;&lt;P&gt;但是在BOOT中却是80M左右。&lt;/P&gt;&lt;P&gt;我打印了 &lt;SPAN class=""&gt;IOMUXC_GPR2&lt;/SPAN&gt;&amp;nbsp;寄存器，设置和在驱动里面也是一样的。&lt;/P&gt;&lt;P&gt;请高手看看，是不是还有什么设置没有改对。&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 08 Feb 2017 02:47:05 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/uboot-lvds-split-%E6%A8%A1%E5%BC%8F%E7%9A%84%E8%AE%BE%E7%BD%AE/m-p/610762#M92159</guid>
      <dc:creator>senli</dc:creator>
      <dc:date>2017-02-08T02:47:05Z</dc:date>
    </item>
  </channel>
</rss>

