RK3399 LT9211 MIPI转LVDS芯片调试总结

平台:RK3399
KERNEL版本:kernel4.4
Android版本:android8.1

需求分析

项目上需要使用LVDS屏以拓展应用场景,RK自身显示体系丰富,支持MIPI,HDMI,EDP等显示方案,虽然不支持LVDS接口输出,但可以通过IC转换将MIPI转换成LVDS,固选择了这套方案。

硬件原理

RK3399 LT9211 MIPI转LVDS芯片调试总结_第1张图片
硬件部分基本没有大的差异,LT9211为IIC接口IC(0X5A为addr+RW,固填入dts地址为0x2d),主要控制int,rst两个引脚,以及屏供电复位等GPIO,这个结合具体项目对应添加即可。

屏参Datasheet

Datasheet内主要关注两点,一个是时序,包括屏、背光供电时间,延迟以及Horizontal,Vertical参数。另一个就是对应时钟DCLK。
RK3399 LT9211 MIPI转LVDS芯片调试总结_第2张图片
RK3399 LT9211 MIPI转LVDS芯片调试总结_第3张图片

思路及移植步骤

完成MIPI转LVDS调试分成两个步骤,
一:主控RK3399输出MIPI信号,需要配置对应DTS,打开对应宏。
二:IC拿到信号后初始化芯片写对应寄存器将MIPI信号转成对应LVDS信号输出显示。

主控部分DTS配置:
RK3399 LT9211 MIPI转LVDS芯片调试总结_第4张图片
backlight绑定背光节点,屏复位和供电根据项目硬件来配置。RK平台对flags的描述可参照kernel/include内drm相关头文件,一般只需要关注模式即可,如下。
/* video mode /
#define MIPI_DSI_MODE_VIDEO BIT(0)
/
video burst mode /
#define MIPI_DSI_MODE_VIDEO_BURST BIT(1)
/
video pulse mode /
#define MIPI_DSI_MODE_VIDEO_SYNC_PULSE BIT(2)
/
enable auto vertical count mode */
#define MIPI_DSI_MODE_VIDEO_AUTO_VERT BIT(3)
格式RGB888基本不需要改变,lanes根据屏datasheet来做调整,一般为4或者8。再就是延迟及timings,结合手册填入即可,这里有一点需要注意,参数请严格与9211驱动内配置一致,不然可能会导致图像不能刷新。主控部分还需要根据项目来选择VOPB,VOPL,两者差别可参考:[RK3399][Android7.1] Display中的VOP模块介绍

配置完主控部分,接着对LT9211驱动移植,这里最好先问厂商拿到单片机的初始化源码,在进行相关修改,上电完成后,先读取芯片ID寄存器以确认I2C通信是否正常,接着就可以进行一系列寄存器配置操作,MIPI信号正常输出且寄存器配置无误,则可以点亮对应LVDS屏。
RK3399 LT9211 MIPI转LVDS芯片调试总结_第5张图片

遇到的问题

1.I2C不通,主要检查硬件,Rockchip平台需要仔细对照原理图确认PMIC各LDO以及IO_domains是否配置正确,确认该路I2C功能是否正常,也可以通过cat /sys/kernel/debug/pinctrl/pinctrl/pinmux-pins来确认对应gpio复用是否正常。另一点就是上拉能力,电阻使用是否符合原理设计。
2.LT9211拿到的hfp,hbp,hsync,vfp,vbp,vysnc等参数为0,软件、硬件问题都会导致这个现象,我在项目里遇到的是没有严谨将DTS内各参数填入驱动的video_timing结构,对应为video_1920x1080_60Hz。

//hfp, hs, hbp,hact,htotal,vfp, vs, vbp, vact,vtotal,clk
struct video_timing video_1366x768_60Hz ={88, 44, 148,1920, 2200, 4, 5, 36, 1080, 1125, 148500};

硬件上问题需要对比原理图排查,另通过示波器量MIPI信号,LVDS信号是否存在异常,检查主控晶振,电阻等是否与参照不一致。如果能直接点亮最好,长时间找不到问题所在可以考虑多试几块主板或IC,我们调试是手焊的,之前调EDP就出现过单板怎么都不通但是软件配置没问题的情况,换了主板点亮了,硬件check后发现漏了一个电阻…
3.休眠唤醒点不亮,这个需要仔细检查时序,对照屏手册适当增加延迟等,可以在内核dw-mipi-dsi,panel-simple等驱动内加入打印,看唤醒流程是否符合时序,同步用万能表等工具测量各引脚状态是否控制到了。
4.打开内核logo配置后,发现屏只显示Logo,进系统也没有显示,这个问题咨询了RK,由于项目使用多显方案,固需要在device内配置主副显示,sys.hwc.device.extend以及sys.hwc.device.main,配置完成后可正常显示

参考

Rockchip_DRM_Panel_Porting_Guide_V1.5_20180830.pdf
Rockchip DRM Panel Porting Guide.pdf
LT9211_MIPI2TTL_LVDS_Code_v1_4_2.rar
Rockchip_Redmine

你可能感兴趣的:(RK3399,android,mipi,lvds,linux)