[i.MX] uboot阶段MIPI屏clock没起来

[复制链接]
9385|29
 楼主| jiangzhenxiu 发表于 2014-5-20 10:01 | 显示全部楼层 |阅读模式
使用的是i.MX6Q sabresd, android4.2, MIPI屏型号:NT35516,已加入MIPI DSI support in UBOOT.zip补丁(官网下载)。
在UBOOT阶段,DSI_CLK0P/DSI_CLK0M没有clock出来。
请问如何设置uboot阶段的MIPI屏clock。
FSL_TICS_A 发表于 2014-5-20 10:21 | 显示全部楼层
你好,楼主!
我会将你的问题转告给I.MX工程师,他稍后会回复你的。
 楼主| jiangzhenxiu 发表于 2014-5-20 12:12 | 显示全部楼层
FSL_TICS_A 发表于 2014-5-20 10:21
你好,楼主!
我会将你的问题转告给I.MX工程师,他稍后会回复你的。

好的,thx
FSL_TICS_Jeremy 发表于 2014-5-20 16:59 | 显示全部楼层
jiangzhenxiu 发表于 2014-5-20 12:12
好的,thx

I.MX工程师明天休假回来,请耐心等待!
 楼主| jiangzhenxiu 发表于 2014-5-26 09:31 | 显示全部楼层
FSL_TICS_Jeremy 发表于 2014-5-20 16:59
I.MX工程师明天休假回来,请耐心等待!

请问有工程师解答下这问题么?
FSL_TICS_Rita 发表于 2014-5-26 16:04 | 显示全部楼层
jiangzhenxiu 发表于 2014-5-26 09:31
请问有工程师解答下这问题么?

楼主你好,你可以参考一下https://community.freescale.com/message/321568#321568。对你应该有帮助,因为您是自己design的板子,所以这里我们只能给您一些思路,没有办法帮您调试的。希望您可以理解:)。
tz10067514 发表于 2014-5-26 17:13 | 显示全部楼层
请问,版主,这个问题解决了没有?我也遇到了一样的问题。
是不是MIPI的父时钟没有设置?内核中它的父时钟为pll3_pfd_540M。
 楼主| jiangzhenxiu 发表于 2014-5-27 09:25 | 显示全部楼层
FSL_TICS_Rita 发表于 2014-5-26 16:04
楼主你好,你可以参考一下https://community.freescale.com/message/321568#321568。对你应该有帮助,因 ...

Rita你好,感谢你给我提供支持。
你上面给来的链接都是内核方面的设置,而且我内核里面的设置clock是26.4M,pixel_fmt为24,内核是可以正常显示的了。

我现在的问题是,uboot这块,移植了官方下载的uboot mipi屏的补丁之后,uboot阶段,clock没有起来。而这个mipi屏的clock在uboot阶段是在哪里设置的呢?
 楼主| jiangzhenxiu 发表于 2014-5-27 09:27 | 显示全部楼层
tz10067514 发表于 2014-5-26 17:13
请问,版主,这个问题解决了没有?我也遇到了一样的问题。
是不是MIPI的父时钟没有设置?内核中它的父时钟 ...

搞了快一个月了,没头绪,uboot阶段的clock一直起不来。请问你有什么想法吗?
tz10067514 发表于 2014-5-27 09:54 | 显示全部楼层
我的时钟出来了,但屏是花的,没有图像。
补丁打进去后,在现有基础上增加电源,背光,复位的操作(在lcd_enable函数中)
gpio_direction_output(MIPI_POWER_EN,1);
gpio_direction_output(MIPI_RESET,0);
msleep(60);
gpio_direction_output(MIPI_RESET,1);
gpio_direction_output(PWM_BACKLIGHT_EN,1);
内核中要干掉MIPI的中断,不然内核会崩溃。
 楼主| jiangzhenxiu 发表于 2014-5-27 12:10 | 显示全部楼层
tz10067514 发表于 2014-5-27 09:54
我的时钟出来了,但屏是花的,没有图像。
补丁打进去后,在现有基础上增加电源,背光,复位的操作(在lcd_e ...

请问是在lcd_enable()函数哪个位置加入电源背光复位的操作么?
void lcd_enable(void)
{
        char *s;
        int ret;
        unsigned int reg;

        s = getenv("lvds_num");
        di = simple_strtol(s, NULL, 10);

        /*
        * hw_rev 2: IPUV3DEX
        * hw_rev 3: IPUV3M
        * hw_rev 4: IPUV3H
        */
        g_ipu_hw_rev = IPUV3_HW_REV_IPUV3H;

        imx_pwm_config(pwm0, 25000, 50000);
        imx_pwm_enable(pwm0);
        ......
}

tz10067514 发表于 2014-5-27 13:23 | 显示全部楼层
这要看你的电路图了,原有代码中有关于PWM1(如果你的电路更改了,需要进行对应的修改)的操作:
mxc_iomux_v3_setup_pad(MX6Q_PAD_SD1_DAT3__PWM1_PWMO);
电路中有使能操作在下面的加入能使操作。
补丁中有关于MIPI屏电源和复位的操作。
#if defined CONFIG_MX6Q
        power_on_and_reset_mipi_panel_6Q();
#elif defined CONFIG_MX6DL
        power_on_and_reset_mipi_panel_6DL();
#endif
我的电路图已经更改所以没有用到这个接口。我是直接在:
#if defined CONFIG_MX6Q
        /* PWM backlight */
        mxc_iomux_v3_setup_pad(MX6Q_PAD_GPIO_1__PWM2_PWMO);
        /* LVDS panel CABC_EN0 */
        mxc_iomux_v3_setup_pad(MX6Q_PAD_NANDF_CS2__GPIO_6_15);
        /* LVDS panel CABC_EN1 */
        mxc_iomux_v3_setup_pad(MX6Q_PAD_NANDF_CS3__GPIO_6_16);
#elif defined CONFIG_MX6DL
        /* PWM backlight */
        mxc_iomux_v3_setup_pad(MX6DL_PAD_SD1_DAT3__PWM1_PWMO);
        /* LVDS panel CABC_EN0 */
        mxc_iomux_v3_setup_pad(MX6DL_PAD_NANDF_CS2__GPIO_6_15);
        /* LVDS panel CABC_EN1 */
        mxc_iomux_v3_setup_pad(MX6DL_PAD_NANDF_CS3__GPIO_6_16);
#endif
        gpio_direction_output(MIPI_POWER_EN,1);
        gpio_direction_output(MIPI_RESET,0);
        msleep(60);
        gpio_direction_output(MIPI_RESET,1);
        gpio_direction_output(PWM_BACKLIGHT_EN,1);
 楼主| jiangzhenxiu 发表于 2014-5-27 17:38 | 显示全部楼层
tz10067514 发表于 2014-5-27 13:23
这要看你的电路图了,原有代码中有关于PWM1(如果你的电路更改了,需要进行对应的修改)的操作:
mxc_iomux ...

谢谢,这个稍后验证下!

还想请教下:上面你提到内核的MIPI中断要怎么屏蔽呢?
        /* ipu selected by platform data setting */
        setting->dev_id = pdata->ipu_id;
        setting->disp_id = pdata->disp_id;

        err = request_irq(mipi_dsi->irq, mipi_dsi_irq_handler,
                          0, "mipi_dsi", mipi_dsi);

        if (err) {
                dev_err(dev, "failed to request irq\n");
                err = -EBUSY;
                goto err_req_irq;
        }

是直接注释掉么?

另外,屏蔽掉后,启动到了内核,能显示正常吗?还是一直都是花屏的?
tz10067514 发表于 2014-5-27 18:24 | 显示全部楼层
jiangzhenxiu 发表于 2014-5-27 17:38
谢谢,这个稍后验证下!

还想请教下:上面你提到内核的MIPI中断要怎么屏蔽呢?

直接屏掉就行了。
忘了一个,在内核中加入一句:
static void mipi_dsi_enable_controller(struct mipi_dsi_info *mipi_dsi,
                                bool init)
{
        u32                val;
        u32                lane_byte_clk_period;
        struct  fb_videomode *mode = mipi_dsi->mode;
        struct  mipi_lcd_config *lcd_config = mipi_dsi->lcd_config;

        if (init) {
                mipi_dsi_write_register(mipi_dsi, MIPI_DSI_VID_MODE_CFG, 0);                mipi_dsi_write_register(mipi_dsi, MIPI_DSI_PWR_UP,
                        DSI_PWRUP_RESET);
                mipi_dsi_write_register(mipi_dsi, MIPI_DSI_PHY_RSTZ,
                        DSI_PHY_RSTZ_RST);
 楼主| jiangzhenxiu 发表于 2014-5-28 11:18 | 显示全部楼层
tz10067514 发表于 2014-5-27 18:24
直接屏掉就行了。
忘了一个,在内核中加入一句:
static void mipi_dsi_enable_controller(struct mipi_d ...

tz10067514,感谢你的指点!
现在Uboot阶段确实是花屏的,显示不正常,但切换到kernel就可以了!
这问题比较棘手呢!
tz10067514 发表于 2014-5-28 13:02 | 显示全部楼层
jiangzhenxiu 发表于 2014-5-28 11:18
tz10067514,感谢你的指点!
现在Uboot阶段确实是花屏的,显示不正常,但切换到kernel就可以了!
这问题 ...

呵呵。。。。相互帮助共同进步!!:handshake
那现在现象是一样的,说明还是补丁原本还是有问题的。
。。。。。。。。。。。。。。。。:'(
 楼主| jiangzhenxiu 发表于 2014-5-28 13:37 | 显示全部楼层
tz10067514 发表于 2014-5-28 13:02
呵呵。。。。相互帮助共同进步!!
那现在现象是一样的,说明还是补丁原本还是有问题的。
。。 ...

对呀,可惜官方也没人解答,哎。。郁闷,这支持很不到位呀!
tz10067514 发表于 2014-5-28 18:26 | 显示全部楼层
jiangzhenxiu 发表于 2014-5-28 13:37
对呀,可惜官方也没人解答,哎。。郁闷,这支持很不到位呀!

你QQ多少可以加你不?我的474434795
FSL_TICS_Rita 发表于 2014-5-29 11:40 | 显示全部楼层
jiangzhenxiu 发表于 2014-5-28 13:37
对呀,可惜官方也没人解答,哎。。郁闷,这支持很不到位呀!

你好,这样吧,你到我们飞思卡尔的官方网站上提交一个技术服务请求吧,链接为:https://bbs.21ic.com/icview-684518-1-1.html。那里有飞思卡尔全球的工程师。本人能力有限,望楼主理解啊~~
FSL_TICS_Rita 发表于 2014-5-29 11:42 | 显示全部楼层
jiangzhenxiu 发表于 2014-5-28 13:37
对呀,可惜官方也没人解答,哎。。郁闷,这支持很不到位呀!

提交SR时候,把您的问题和环境描述清楚哦:)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

18

主题

107

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部