RK3399单MIPI屏调试

RK3399单MIPI屏调试

RK3399单MIPI屏调试的步骤和RK3288的MIPI屏调试类似,只不过dts的书写方式有点不一样,首先需要根据电路原理图将enable和reset脚配置好,其次是根据屏的数据手册将屏的lane-rate以及屏的timings找到,具体的方法见我博客的Rockchip之RK3288解决MIPI屏花屏章节.

本文主要讲解与RK3288mipi屏配置dts的差异,首先看RK3399单mipi屏配置,如下:

&dsi {
        status = "okay";

        rockchip,lane-rate = <600>; 

		panel@0 {        
			compatible ="simple-panel-dsi";
			reg = <0>;
			backlight = <&backlight>;
			enable-gpios = <&gpio1 13 GPIO_ACTIVE_HIGH>;    
			enable-delay-ms = <100>;
			prepare-delay-ms = <100>;
			reset-gpios = <&gpio4 30 GPIO_ACTIVE_HIGH>;      
			reset-delay-ms = <50>;
			init-delay-ms = <100>;
	
			dsi,flags = <(MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_BURST |
			            MIPI_DSI_MODE_LPM | MIPI_DSI_MODE_EOT_PACKET)>;
			dsi,format = ;
			dsi,lanes = <4>;
			status = "okay";
	 
	        panel-init-sequence = [
				15 00 02 36 0A
				39 00 03 B3 0A 7F
				15 00 02 B4 00
				39 00 06 B5 4C 14 14 00 20
				39 00 08 B6 00 14 0F 16 13 9F 9F
				39 00 04 C0 00 0A 10
				15 0A 02 C2 6E
				39 00 0D C3 01 66 13 23 00 66 85 33 20 38 38 00
				39 00 06 C4 22 24 11 11 6D
				39 00 0A D0 00 37 52 17 01 04 70 45 05
				39 00 0A D1 00 37 52 17 01 04 70 45 05
				39 00 0A D2 00 37 52 17 01 04 70 45 05
				39 00 0A D3 00 37 52 17 01 04 70 45 05
				39 00 0A D4 00 37 52 17 01 04 70 45 05
				39 32 0A D5 00 37 52 17 01 04 70 45 05
				05 96 01 11
				05 00 01 29
	                ];
	       
			display-timings {
				native-mode = <&timing0>;
	
				timing0: timing0 {
					clock-frequency = <74250000>;
					hactive = <768>;
					vactive = <1024>;
					hback-porch = <10>;
					hfront-porch = <160>;
					vback-porch = <40>;
					vfront-porch = <16>;
					hsync-len = <160>;
					vsync-len = <10>;
					hsync-active = <1>;
					vsync-active = <1>;
					de-active = <0>;
					pixelclk-active = <1>;
				};
			};
		}; 
}

首先不一样的是节点配置方式,其次是命令的配置方式不一样,rk3399的命令配置需要把初始化命令写在

panel-init-sequence = [
				15 00 02 36 0A
				39 00 03 B3 0A 7F
				15 00 02 B4 00
				39 00 06 B5 4C 14 14 00 20
				39 00 08 B6 00 14 0F 16 13 9F 9F
				39 00 04 C0 00 0A 10
				15 0A 02 C2 6E
				39 00 0D C3 01 66 13 23 00 66 85 33 20 38 38 00
				39 00 06 C4 22 24 11 11 6D
				39 00 0A D0 00 37 52 17 01 04 70 45 05
				39 00 0A D1 00 37 52 17 01 04 70 45 05
				39 00 0A D2 00 37 52 17 01 04 70 45 05
				39 00 0A D3 00 37 52 17 01 04 70 45 05
				39 00 0A D4 00 37 52 17 01 04 70 45 05
				39 32 0A D5 00 37 52 17 01 04 70 45 05
				05 96 01 11
				05 00 01 29
];

把退出命令写在

panel-exit-sequence = [
];

命令的前面三个字节分别表示命令类型、延时和命令净荷长度。从第四个字节开始表示命令的有效 payload。这个字节数需要与第三个字节一致。
命令的类型有三种 : 0x05/0x15/0x39.
其中0x05命令类型是带1个参数,如:

		05 96 01 11

0x15命令类型是带2个参数,如:

		15 00 02 36 0A

0x39命令类型是带多个参数,即大于两个参数,如:

		39 00 0A D4 00 37 52 17 01 04 70 45 05

其中,这些命令就需要根据屏的数据手册去寻找,比如我的屏的数据手册中的命令如图:
RK3399单MIPI屏调试_第1张图片
与我这几个命令相符
15 00 02 36 0A
39 00 03 B3 0A 7F
15 00 02 B4 00
39 00 06 B5 4C 14 14 00 20

这些参数配置完了之后编译烧录屏就能显示了.

遇到问题:
1.背光不能亮
检查硬件电路,或者enable脚是否配置正确.
2.可以显示,但是屏幕花屏
调节rockchip,lane-rate以及timings参数.

你可能感兴趣的:(Android,&,Linux底层驱动)