1、rk3128 lcd驱动调试记录
最近刚调试了基于rk3128平台的lcd驱动,顺便记录总结一下,有不足之处,望各位不吝赐教!
关于framebuffer(帧缓冲设备)的架构这里就不多罗嗦了,不会的可以去网上百度,这个很多的
代码架构
drivers/video/rockchip/transmitter/
|_ rk32_mipi_dsi.c /* MIPI 驱动主体文件 */
|_ rk32_mipi_dsi.h /* 寄存器以及结构体的定义 */
|_ mipi_dsi.c /* 封装的函数指针接口函数, 供 lcd_mipi.c 调用, 函数的具体实现
在 rk32_mipi_dsi.c 中 */
|_ mipi_dsi.h /* mipi 协议相关的宏定义以及函数指针结构体定义 */
drivers/video/rockchip/screen/
|_ lcd_mipi.c /* 屏参 dtsi 文件的解析 */
由于rk3128平台使用了3.10以后的内核,所以采用了dts的形式来管理驱动,刚开始的时候会觉得不顺手,用多了还是相当方便的
代码架构图
无论是正常的开机流程以及休眠唤醒的流程,显示相关的模块都是要和 fb 以及vop(lcdc)交互的。rk32_dsi_enable()和
rk32_dsi_disable()函数作为 MIPI 和 vop 之间 的 交 互 的 总 入 口 函 数 。 另 外 还 有 一 对rk32_mipi_power_up_DDR() 和rk32_mipi_power_down_DDR()函数是单独供 ddr变频的时候使用,正常的开机以及休眠唤醒流程不走这两个函数。开机流程图如下图所示:
原作者:君醉为红颜
更多回帖