2023-08-15 linux mipi 屏幕调试:有一个屏幕开机时候不显示,开机后按power 按键休眠唤醒就可以显示。原因是reset gpio 被复用

一、现象:今天更新了一个新版本的buildroot linux sdk ,调试两个mipi 屏幕,这两个屏幕之前在其他的sdk都调好了的,所有直接把配置搬过来。但是有一个屏幕可以正常显示,有一个屏幕开机时候不显示,开机后按power 按键休眠唤醒就可以显示,真是百思不得其解。

二、经过分析,出现这样的问题原因是reset gpio 被复用了,有的屏幕内部有reset了,有的屏幕没有reset。在u-boot运行的时候u-boot\drivers\video\drm\rockchip_panel.c 里面就对mipi 屏幕进行初始化了,如果在kernel里面才正确的配置gpio,那就会出现这种情况。 下面的LCD_RST_1V8 连接到GPIO1_B5.

2023-08-15 linux mipi 屏幕调试:有一个屏幕开机时候不显示,开机后按power 按键休眠唤醒就可以显示。原因是reset gpio 被复用_第1张图片

 

三、解决方法一,

root@xxx:/# io -4 -r 0xff14000c
ff14000c:  00001111 发现是被设置成flash_wrn。

在uboot里面强制配置复用的脚是gpio,writel(0xf00000, 0xff14000c) ,如何得来呢,看datasheet。

2023-08-15 linux mipi 屏幕调试:有一个屏幕开机时候不显示,开机后按power 按键休眠唤醒就可以显示。原因是reset gpio 被复用_第2张图片

 

2023-08-15 linux mipi 屏幕调试:有一个屏幕开机时候不显示,开机后按power 按键休眠唤醒就可以显示。原因是reset gpio 被复用_第3张图片

 2023-08-15 linux mipi 屏幕调试:有一个屏幕开机时候不显示,开机后按power 按键休眠唤醒就可以显示。原因是reset gpio 被复用_第4张图片

 2023-08-15 linux mipi 屏幕调试:有一个屏幕开机时候不显示,开机后按power 按键休眠唤醒就可以显示。原因是reset gpio 被复用_第5张图片

 

二、解决方案二,在kernel下的dts里面增加下面的代码,设置gpio1_b5 默认为gpio。实际测试,在开机运行后uboot里面处置化mipi屏幕也是可以的。正常天亮mipi屏幕。

&dsi {
       status = "okay";
	   rockchip,lane-rate = <600>;

	   panel@0 {
                compatible =  "simple-panel-dsi";
                status = "okay";
                reg = <0>;
		        power-supply = <&vcc3v3_lcd>;
                backlight = <&backlight>;
                pinctrl-names = "default";
                pinctrl-0 = <&mipilcd_rst_gpio>;


&pinctrl {
       mipilcd_ctl {
               mipilcd_rst_gpio: mipilcd-rst-gpioo {
                        rockchip,pins =
                                <1 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
                };
	};
};

 

你可能感兴趣的:(linux,buildroot,Linux驱动编程,linux,运维,服务器)