在IMX8MM平台linux下开发rm67191屏驱动


NXP IMX8M MINI:
rel_imx_4.14.98_2.0.0_ga:
屏芯片:rm67191

屏调试记录:
1.不能挂设备
  设备树删除ADV7535屏的配置adv_bridge: 不通编译通过,结果按
  https://community.nxp.com/thread/527611 处理就可以了。
2.编译驱动后,系统出现
[ 1.264851] imx_sec_dsim_drv 32e10000.mipi_dsi: version number is 0x1060200
[ 1.271865] imx_sec_dsim_drv 32e10000.mipi_dsi: Failed to attach bridge: 32e10000.mipi_dsi
[ 1.280142] imx_sec_dsim_drv 32e10000.mipi_dsi: failed to bind sec dsim bridge: -19
[ 1.287846] ------------[ cut here ]------------
[ 1.292472] WARNING: CPU: 3 PID: 1 at drivers/gpu/drm/drm_bridge.c:155 drm_bridge_detach+0x50/0x60
[ 1.301428] Modules linked in:
[ 1.304487] CPU: 3 PID: 1 Comm: swapper/0 Not tainted 4.14.98 #3
[ 1.310492] Hardware name: FSL i.MX8MM EVK board (DT)
错误 ,从显示信息来看,应当是设备驱动没有挂载上去出现的,因为删除了adv7535驱动,增加的rm6719驱动没有增加上,所以会报错。
处理方式:
在uboot里,修改使用的设备树配置文件为:fsl-imx8mm-evk-rm67191.dtb 修改方法是 env edit fdt_file 回车后修改成这个文件。
问题描述:https://community.nxp.com/thread/527611

3.sec_mipi_dsim_irq_handler错误 :
    描述见:https://community.nxp.com/thread/514261
    这个问题是信号线方面的问题,驱动加载上去,收不到回应,就认为超时了
    解决方式请确保信号质量。
4.uboot里调试时,示波器抓包只有包头,无包内容
    解决方式驱动配置前增加LD配置,配置完后,还原回HS模式。数据有了,但并不能点亮,只是解决了这个现象。
    
5.屏初始化完成,无报错,但仍无数据显示。
  backlight 配置被删除了,一开始是因为屏没有背光,且在一处文档上发现背光影响点亮,就先删除了。后面看协议时,发现是用协议来配置的,所以,必须要开。
  
  直到现在,驱动可以正常点亮,但会闪烁。
  
6.屏闪烁问题
  配置项的pixelclock 里的中间值原来配的是132000000,后来改成66000000。重新改这个值到132M,却不能显示,估计问题就这个值,把这个值改为90M,屏显就正常了。
static const struct display_timing rad_default_timing = {
        .pixelclock = { 66000000, 132000000, 132000000 },
        .hactive = { 1080, 1080, 1080 },
        .hfront_porch = { 20, 20, 20 },
        .hsync_len = { 2, 2, 2 },
        .hback_porch = { 34, 34, 34 },
        .vactive = { 1920, 1920, 1920 },
        .vfront_porch = { 10, 10, 10 },
        .vsync_len = { 2, 2, 2 },
        .vback_porch = { 4, 4, 4 },
        .flags = DISPLAY_FLAGS_HSYNC_LOW |
                 DISPLAY_FLAGS_VSYNC_LOW |
                 DISPLAY_FLAGS_DE_LOW |
                 DISPLAY_FLAGS_PIXDATA_NEGEDGE,
};

屏显驱动基本调试完成,遇到的这些问题也算正常,也有点运气成份在里面,总共花了一周多一点的时间完成整个过程的调试。
中间还用对比验证的方式,换了一块坏的屏,这个也加快了点进度。还有一点就是对设备树的理解不深,包含关系没搞明白。另外NXP平台用起来很不方便
得到的支持非常少,除问题1有一点点支持外,后面就没有任何支持了。

在IMX8MM平台linux下开发rm67191屏驱动_第1张图片

你可能感兴趣的:(imx8m,驱动开发)