以前做的一个项目,用的是imx 6q平台,显示屏用的2 lan的mipi口,也是我煞费苦心调出来的,最近屏幕换代,只支持4 lan,但6q只支持2 lan,所以只好加了个RGB->MIPI的IC SSD2828,网上找了半天资料也没找到写好的linux driver, 有的只是单片机的代码,鉴于自己也是个10多年的linux driver老司机,于是就自己写吧。博客记录一下,希望能对需要的人有所借鉴,以下都是干货。
鉴于mipi的复杂性,我大概列出了任务的完成步骤,号称天龙八步,前一步都是后一步开始的基础,所以还是一步一步来。
第一步,搭驱动框架
第二步:调试SPI,看是否能读取到芯片ID
第三步:配置2828的寄存器
第四步:读取2828的寄存器,看看上一步的写入是否成功
第五步:写mipi屏的初始化序列
看看这长度
第六步:读取mipi屏的初始化序列,看看第五步的写入是否成功
第七步:让前端的RGB有数据输出,方法就是量2828的RGB数据端是否有波形,Hsync,Vsync等参数是否正确
第八步:上述都成功的基础上屏幕还是没什么反应,于是开始找问题
1.量屏幕后端驱动ic各路电压