RK3588 MIPI DSI 完整移植过程及问题记录

临滴 LKD3588-Android11 移植 MIPI DSI 显示 (ATK-MIPI-720p)

硬件信息:临滴LCB3588、ATK-5.5寸MIPI屏(720*1280)
主页有MIPI DSI 协议简述,搭配食用更佳MIPI DSI 协议简述

一、适配 ATK-MIPI-720p 屏幕显示

1. LKD3588开发板的MIPI接口

临滴的LKD3588开发板显示接口HDMI1.4、HDMI2.0、双通道LVDS、DP,并未将MIPI接口引出,但是RK3588芯片是有MIPI信号接口的,查看临滴LKD3588原理图有两路MIPI-D-Phy输出,只不过临滴将其转为LVDS接口和HDMI接口了,下面就将 MIPI_DPHY1_TX 引出并适配到正点原子的720PMIPI屏幕:

在这里插入图片描述

MIPI_DPHY1_TX 信号本身是转换为 HDMI 信号的,方便起见直接在 Neardi-3588-SDK-Android-V2.0/kernel-5.10/arch/arm64/boot/dts/rockchip/rk3588-neardi-android-ld160-mipi2hdmi.dtsi 设备树文件中进行修改,修改之前先看下MIPI屏幕相关。

2. MIPI屏幕硬件原理图

使用的MIPI屏幕有两个接口( 4Lane 和 2Lane ),这里使用 4Lane 接口。

在这里插入图片描述

3. MIPI 屏幕驱动调试

调试 MIPI 屏幕主要有三部分内容:
1)、屏幕背光调试,这个是首先要搞定的,背光不亮,屏幕也就什么都看不到。这个比较简单,属于 PWM 相关知识,后面也会讲解如何调试背光。
2)、向屏幕发送初始化序列。
3)、调试屏幕的 DPI 参数,最后需要调试 MIPI 屏幕的 DPI 参数,也就是 HBP、HFP、VBP、VFP 等这些参数。

3.1. 屏幕背光调试
3.1.1. PWM

屏幕背光使用 PWM 来控制,通过 PWM 波形来调节屏幕亮度。接口图中 Pin7(LCD_BL)便是控制背光的,因为LKD3588上没有引出MIPI接口,自然就没有相关引脚配置。因为 LKD3588 的 PWM7 引脚引出,我们就直接使用PWM7 (PWM7_M3_GPIO4_C6_d_IO3_1V8) 控制背光,将 GPIO4_C6 连接 MIPI 屏的 LCD_BL 引脚。

在这里插入图片描述

GPIO4_C6 pinctrl 配置,在 rk3588s-pinctrl.dtsi 或 rk3588-vccio3-pinctrl.dtsi 找到如下内容:

	pwm7 {
   
   
		/omit-if-no-ref/
		pwm7m3_pins: pwm7m3-pins {
   
   
			rockchip,pins =
				/* pwm7_ir_m3 */
				<4 RK_PC6 11 &pcfg_pull_none>;
		};
	};

然后在 rk3588-neardi-android-ld160-mipi2hdmi.dtsi 中向pwm7追加如下内容:

	pwm7: pwm@febd0030 {
		compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
		reg = <0x0 0xfebd0030 0x0 0x10>;
		#pwm-cells = <3>;
		pinctrl-names = "active";
		pinctrl-0 = <&pwm7m3_pins>;			// 	使用 rk3588-vccio3-pinctrl.dtsi 中的配置
		clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>;
		clock-names = "pwm", "pclk";
		status = "okay";	// 启用状态
	};
3.1.2. backlight 节点设置

直接沿用 mipi2hdmi 的背光设置,稍加修改:

backlight: backlight {
   
   
		status="okay";
		compatible = "pwm-backlight";
		pwms = <&pwm7 0 25000 0>;	// 使用pwm7
		brightness-levels = <
			  0  20  20  21  21  22  22  23
			 23  24  24  25  25  26  26  27
			 27  28  28  29  29  30  30  31
			 31  32  32  33  33  34  34  35
			 35  36  36  37  37  38  38  39
			 40  41  42  43  44  45  46  47
			 48  49  50  51  52  53  54  55
			 56  57  58  59  60  61  62  63
			 64  65  66  67  68  69  70  71
			 72  73  74  75  76  77  78  79
			 80  81  82  83  84  85  86  87
			 88  89  90  91  92  93  94  95
			 96  97  98  99 100 101 102 103
			104 105 106 107 108 109 110 111
			112 113 114 115 116 117 118 119
			120 121 122 123 124 125 126 127
			128 129 130 131 132 133 134 135
			136 137 138 139 140 141 142 143
			144 145 146 147 148 149 150 151
			152 153 154 155 156 157 158 159
			160 161 162 163 164 165 166 167
			168 169 170 171 172 173 174 175
			176 177 178 179 180 181 182 183
			184 185 186 187 188 189 190 191
			192 193 194 195 196 197 198 199
			200 201 202 203 204 205 206 207
			208 209 210 211 212 213 214 215
			216 217 218 219 220 221 222 223
			224 225 226 227 228 229 230 231
			232 233 234 235 236 237 238 239
			240 241 242 243 244 245 246 247
			248 249 250 251 252 253 254 255
		>;
		default-brightness-level = <255>;	// 默认亮度
	};
};

修改到这里,背光应该已经点亮了。

3.2. DSI 设备树节点修改

因为我们只修改一个接口使用,所有的修改都在最后一级的设备树文件追加 ( rk3588-neardi-android-ld160-mipi2hdmi.dtsi ) ,DSI设备节点追加修改如下:

&dsi1 {
   
      
	status = "okay";
	dsi1_panel: panel@0 {
   
   
		status = "okay";
		compatible = "simple-panel-dsi";
		reset-gpios = <&gpio2 RK_PB6 GPIO_ACTIVE_LOW>;  //复位 
		pinctrl
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值