本文详细记录在基于RK356x-SDK最小系统上,配置mipi接口的触摸屏,调试直到完全正常显示的过程,让和我一样的新手无压力搞定mipi显示屏在RK356x芯片上的应用。
如何配置最小系统,请看:RK356x-5: 最小系统配置和运行
mipi触摸屏配置,分两部分,一部分是显示屏,一部分是触摸板。
注意,本文配置涉及到两个设备树文件,是在《RK356x-SDK开发入门》中自定义的:rk3566-test.dtsi和rk3566-test-base.dtsi
目录
3.打开多媒体处理器(Multi-Media Processor)相关单元节点
一、显示屏部分
RK356x-SDK自带了mipi驱动,在kernel/drivers/gpu/drm/panel/下,因此只需要正确配置了各节点,即可点亮mipi屏
1. 打开dsi节点
查看主板的原理图,mipi显示屏接口接在芯片的哪个dsi口上,我的原理图是这样的:
显示屏的接口引脚名就可以判断得出,它接在DSI1上面。因此,在rk3566-test-base.dtsi中,找到dsi1节点打开(注:下文说的打开即:将状态的disabled变成okay)它,同时打开子节点dsi1_panel:
在rk3566-test.dtsi中删除dsi1节点,因为这里会重新关闭上面打开的节点,同时打开&route_dsi1,以显示开机logo。
2.打开VOP(视频输出处理器)节点
RK控制显示的单元VOP有三个,我们选择第2个,即VP1,因此:
在rk3566-test.dtsi中,打开节点&video_phy1,&dsi1_in_vp1
在rk3566-test-base.dtsi中,打开&vop,&vop_mmu以启用VOP
3.打开多媒体处理器(Multi-Media Processor)相关单元节点
在rk3566-test-base.dtsi中,打开&mpp_srv(Media process platform,MPP多媒体处理服务),&gpu(图形处理单元),&vdpu(视频显示相关),&vdpu_mmu,&vepu(视频显示相关),&vepu_mmu,&dfi(加速数据传输),&dmc(内存优化,加快响应),&rk_rga(加速2D图形显示),&rkvdec(视频解码),&rkvdec_mmu,&rkvenc(视频编码),&rkvenc_mmu,&jpegd(JPEG解码,不打开,MPP可能无法解码有些视频),&jpegd_mmu。
注意:截图只显示打开了其中一部分,实际dts中需要将文案里提到的节点都打开
4. 背光配置
在dsi1节点中的dsi1_panel子节点,变量backlight是赋值的backligh1:
backlight = <&backlight1>;
对照原理图如下,我的背光灯是GPIO0_C3
它连的是芯片的PWM4上:
因此,找到backlight1节点,修改节点的pwm,并使最高频率变成50000:
backlight1: backlight1 {
compatible = "pwm-backlight";
pwms = <&pwm4 0 50000 0>;
brightness-levels = <
然后打开pwm4节点:
&pwm4 {
pinctrl-names = "active";
pinctrl-0 = <&pwm4_pins>;
status = "okay";
};
5.复位脚配置
查看原理图,我的复位脚用了GPIO4