Firefly开源社区

标题: 双mipi屏调试问题 [打印本页]

作者: bobo    时间: 2015-5-26 15:51
标题: 双mipi屏调试问题
本帖最后由 bobo 于 2015-5-26 16:07 编辑

大家好,我是一个rk3288的新人,目前在用firefly的开发板调试一款2k的mipi屏,因为之前没有调试过mipi屏,对于配置dts中初始化命令那一块不熟悉,想问一下各位应该如何调试。对于附件中的屏幕,我应该怎么来写初始化命令?谢谢

mipi屏.png (197.61 KB, 下载次数: 284)

mipi屏初始化代码

mipi屏初始化代码

作者: bobo    时间: 2015-5-26 15:54
我发的图为什么看不到?
作者: zhansb    时间: 2015-5-26 16:01
先看看wiki:http://wiki.t-firefly.com/index.php/Firefly-RK3288/DSI
作者: bobo    时间: 2015-5-26 16:04
本帖最后由 bobo 于 2015-5-26 16:13 编辑

已经看过了,现在是不能确认,写的对不对我的dts文件是这样写的:

/*
* Copyright (C) 2014 ROCKCHIP, Inc.
* arch/arm/boot/dts/lcd-lq070m1sx01-mipi.dtsi
* author: libing@rock-chips.com
* create date: 2014-04-15
* lcd model: wqxga
* resolution: 2560 X 1600
* mipi channel: dual
*/

/ {
        /* about mipi */
        disp_mipi_init: mipi_dsi_init{
                    compatible = "rockchip,mipi_dsi_init";
                    rockchip,screen_init    = <1>;
                    rockchip,dsi_lane        = <4>;
                    rockchip,dsi_hs_clk        = <940>;
                    rockchip,mipi_dsi_num    = <2>;
        };
        disp_mipi_power_ctr: mipi_power_ctr {
                                compatible = "rockchip,mipi_power_ctr";
                    mipi_lcd_rst:mipi_lcd_rst{
                            compatible = "rockchip,lcd_rst";
                            rockchip,gpios = <&gpio7 GPIO_B2 GPIO_ACTIVE_HIGH>;
                            rockchip,delay = <10>;
                    };
                    mipi_lcd_en:mipi_lcd_en {
                            compatible = "rockchip,lcd_en";
                            rockchip,gpios = <&gpio6 GPIO_A7 GPIO_ACTIVE_HIGH>;
                            rockchip,delay = <10>;
                    };
        };
        disp_mipi_init_cmds: screen-on-cmds {
                    rockchip,cmd_debug = <0>;
                    compatible = "rockchip,screen-on-cmds";
                    rockchip,on-cmds1 {
                                    compatible = "rockchip,on-cmds";
                            rockchip,cmd_type = <LPDT>;
                            rockchip,dsi_id = <2>;
                            rockchip,cmd = <0x29 0xb0 0x00>;
                            rockchip,cmd_delay = <0>;
                    };
                    rockchip,on-cmds2 {
                                    compatible = "rockchip,on-cmds";
                            rockchip,cmd_type = <LPDT>;
                            rockchip,dsi_id = <2>;
                            rockchip,cmd = <0x29 0xd6 0x01>;
                            rockchip,cmd_delay = <0>;
                    };
                    rockchip,on-cmds3 {
                                    compatible = "rockchip,on-cmds";
                            rockchip,cmd_type = <LPDT>;
                            rockchip,dsi_id = <2>;
                            rockchip,cmd = <0x39 0xb3 0x08>;
                            rockchip,cmd_delay = <0>;
                    };
                    rockchip,on-cmds4 {
                                    compatible = "rockchip,on-cmds";
                            rockchip,cmd_type = <LPDT>;
                            rockchip,dsi_id = <2>;
                            rockchip,cmd = <0x39 0x51 0xff>;
                            rockchip,cmd_delay = <0>;
                    };
                    rockchip,on-cmds5 {
                                    compatible = "rockchip,on-cmds";
                            rockchip,cmd_type = <LPDT>;
                            rockchip,dsi_id = <2>;
                            rockchip,cmd = <0x39 0x53 0x0c>;
                            rockchip,cmd_delay = <0>;
                    };
                    rockchip,on-cmds6 {
                                    compatible = "rockchip,on-cmds";
                            rockchip,cmd_type = <LPDT>;
                            rockchip,dsi_id = <2>;
                            rockchip,cmd = <0x39 0x35 0x00>;
                            rockchip,cmd_delay = <0>;
                    };
                    rockchip,on-cmds7 {
                                    compatible = "rockchip,on-cmds";
                            rockchip,cmd_type = <LPDT>;
                            rockchip,dsi_id = <2>;
                            rockchip,cmd = <0x39 0x2a 0x00 0x00 0x05 0x9f>;
                            rockchip,cmd_delay = <0>;
                    };
                    rockchip,on-cmds8 {
                                    compatible = "rockchip,on-cmds";
                            rockchip,cmd_type = <LPDT>;
                            rockchip,dsi_id = <2>;
                            rockchip,cmd = <0x29 0xb0 0x03>;
                            rockchip,cmd_delay = <0>;
                    };

                    rockchip,on-cmds9 {
                                    compatible = "rockchip,on-cmds";
                            rockchip,cmd_type = <LPDT>;
                            rockchip,dsi_id = <2>;
                            rockchip,cmd = <0x05 dcs_set_display_on>;
                            rockchip,cmd_delay = <10>;
                    };


        };

        disp_timings: display-timings {
                        native-mode = <&timing0>;
                        compatible = "rockchip,display-timings";
                        timing0: timing0 {
                screen-type = <SCREEN_DUAL_MIPI>;
                lvds-format = <LVDS_8BIT_2>;
                out-face    = <OUT_P888>;
                clock-frequency = <265000000>;
                hactive = <1440>;
                vactive = <2560>;
               
                hsync-len = <38>;//19
                hback-porch = <100>;//40
                hfront-porch = <46>;//123
               
                vsync-len = <1>;
                vback-porch = <4>;
                vfront-porch = <3>;
               
                hsync-active = <0>;
                vsync-active = <0>;
                de-active = <0>;
                pixelclk-active = <0>;
                swap-rb = <0>;
                swap-rg = <0>;
                swap-gb = <0>;
                         };
               };
};


作者: zhansb    时间: 2015-5-26 16:33
这样看不出有没有问题:上电时序和屏参数需根据datasheet来确认,具体的指令需要从屏厂获取
作者: bobo    时间: 2015-5-26 16:43
datasheet太大,上传不了,所以只截了一部分
作者: zhansb    时间: 2015-5-26 16:55
指令没看出问题,timing0有没有对过datasheet
作者: yzhansh    时间: 2015-5-27 14:15
升压时序应该不是问题所在,只是我的ubuntu装失败了。要不就一起学习了

作者: xmzzy    时间: 2015-12-10 10:50
bobo 发表于 2015-5-26 16:04
已经看过了,现在是不能确认,写的对不对我的dts文件是这样写的:

/*

hi bobo,不知道你屏幕点亮效果怎样?我用video mode 屏幕有波纹还有杂亮点,不知道你那边是什么情况,效果好么?
作者: glec54321    时间: 2015-12-22 18:43
借問一下.  

双mipi屏, 需要設定 rockchip,mipi_dsi_num        = <2>;  共使用8 MIPI lanes.
所以會使用到DPHY TX0, 還有DPHY TX1/DPHY RX1, 但是Firefly-RK3288 目前DPHY TX1/DPHY RX1是設定為RX1, 給camera使用.  要去哪邊修改呢?


http://wiki.t-firefly.com/index.php/Firefly-RK3288/DSI 我都有看過了,  lcd-xxxx-mipi.dtsi 要修改, firefly-rk3288.dts 要改, 我都知道, 但是不知道如何關掉camera DPHY RX1, 開啟DPHY TX1.  

作者: zhansb    时间: 2015-12-23 11:59
把摄像头xml配置关掉就行
作者: glec54321    时间: 2015-12-24 19:24
dsihost1 有看到東西了.  

另外有一個疑問, 在rk32_mipi_dsi.c,  line 1600 附近,

        if (rk_mipi_get_dsi_num() == 1) {
                if (lcdc_id == 1)
                        /* 1'b1: VOP LIT output to DSI host0;1'b0: VOP BIG output to DSI host0 */
                        val0 = 0x1 << 22 | 0x1 << 6;
                else
                        val0 = 0x1 << 22 | 0x0 << 6;
                writel_relaxed(val0, RK_GRF_VIRT + RK3288_GRF_SOC_CON6);
        } else {
                if (lcdc_id == 1) {
                        val0 = 0x1 << 25 | 0x1 <<  9 | 0x1 << 22 | 0x1 <<  6;
                        val1 = 0x1 << 31 | 0x1 << 30 | 0x0 << 15 | 0x1 << 14;
                } else {
                        val0 = 0x1 << 25 | 0x0 <<  9 | 0x1 << 22 | 0x0 <<  14;
                        val1 = 0x1 << 31 | 0x1 << 30 | 0x0 << 15 | 0x1 << 14;
                }
                writel_relaxed(val0, RK_GRF_VIRT + RK3288_GRF_SOC_CON6);
                writel_relaxed(val1, RK_GRF_VIRT + RK3288_GRF_SOC_CON14);
        }


是否有錯誤, 應該改成
                } else {
                        val0 = 0x1 << 25 | 0x0 <<  9 | 0x1 << 22 | 0x0 <<  6;
                        val1 = 0x1 << 31 | 0x1 << 30 | 0x0 << 15 | 0x1 << 14;


bit 6是grf_con_dsi0_lcdc_sel, bit 9 是grf_con_dsi1_lcdc_sel.  

作者: zishiquan    时间: 2016-2-3 16:27
我也再做 驱动2K屏
作者: zhansb    时间: 2016-2-25 11:53
glec54321 发表于 2015-12-24 19:24
dsihost1 有看到東西了.  

另外有一個疑問, 在rk32_mipi_dsi.c,  line 1600 附近,

不需要改动,代码驱动代码验证过双MIPI没有问题
作者: clare1942    时间: 2016-5-11 21:15
请问如果双MIPI,是否只需使能
&dsihost1 {
   status = "okay";
};
还是一定也要把摄像头的xml配置关掉?
摄像头配置如何关呢?
谢谢~~
作者: sunlh    时间: 2016-5-12 10:21
本帖最后由 sunlh 于 2016-5-12 10:27 编辑

小弟在搞一块 1600x2560 dual MIPI 的屏, 可画面只有一半, 有神人知道如何解决吗? 谢谢

1.JPG (44.98 KB, 下载次数: 73)

1.JPG

作者: clare1942    时间: 2016-5-13 13:22
clare1942 发表于 2016-5-11 21:15
请问如果双MIPI,是否只需使能
&dsihost1 {
   status = "okay";

经测试,双MIPI的确是这样设定即可
已成功点起AMOLED双MIPI
作者: sunlh    时间: 2016-5-13 16:24
clare1942 发表于 2016-5-13 13:22
经测试,双MIPI的确是这样设定即可
已成功点起AMOLED双MIPI

請問您是用 4.4 PAD 版吗?
作者: clare1942    时间: 2016-5-13 20:58
sunlh 发表于 2016-5-13 16:24
請問您是用 4.4 PAD 版吗?

是的没错
作者: movetoporket    时间: 2016-8-16 16:46
果然强大啊!
能点COMMAND MODE的不?

作者: zishiquan    时间: 2017-1-5 18:40
版主 双mipi屏  一个不亮,怎么摄像头xml配置关掉?
作者: Robinhan    时间: 2017-6-26 16:25
clare1942 发表于 2016-5-13 13:22
经测试,双MIPI的确是这样设定即可
已成功点起AMOLED双MIPI

您好 请教下 我看到3399这块板子MIPI DSI硬件接口只有一个Port 请问怎么能使用双Port呢?感谢~
作者: sds    时间: 2017-6-27 17:46
楼主  能告诉我双mipi是什么意思吗。是双通道还是双显示频啊
作者: godfather516    时间: 2017-9-4 21:52
clare1942 发表于 2016-5-13 13:22
经测试,双MIPI的确是这样设定即可
已成功点起AMOLED双MIPI

你好,我现在也在点一款双MIPI的AMOLED屏幕?请问你之前点屏时有遇到过无法初始化的情况吗?
作者: godfather516    时间: 2017-9-4 21:52
clare1942 发表于 2016-5-13 13:22
经测试,双MIPI的确是这样设定即可
已成功点起AMOLED双MIPI

你好,我现在也在点一款双MIPI的AMOLED屏幕?请问你之前点屏时有遇到过无法初始化的情况吗?




欢迎光临 Firefly开源社区 (https://dev.t-firefly.com/) Powered by Discuz! X3.1