rk3128中更改设备树,使用新的MIPI屏幕JD8952

您所在的位置:网站首页 mipi显示屏怎么驱动 rk3128中更改设备树,使用新的MIPI屏幕JD8952

rk3128中更改设备树,使用新的MIPI屏幕JD8952

2024-05-25 02:33| 来源: 网络整理| 查看: 265

公司对rk3128的芯片重新适配屏幕,所以我们要重新写设备树

Menuconfig 配置

要调用到 MIPI 驱动需要在 menuconfig 里面进行配置 在这里插入图片描述 在这里插入图片描述

屏参文件配置

mipi host 配置、屏电源控制配置、屏初始化序列三部分是在 drivers/video/rockchip/screen/lcd_mipi.c 中解析的,最后的屏参是在 drivers/video/of_display_timing.c 中解析。因为该部分信息 mipi/edp/lvds/hdmi 之 类显示设备都存在,所以在统一的地方进行解析。

mipi host 配置 disp_mipi_init: mipi_dsi_init{ compatible = "rockchip,mipi_dsi_init"; rockchip,screen_init = ; rockchip,dsi_lane = ; rockchip,dsi_hs_clk = ; rockchip,mipi_dsi_num = ; };

screen_init : 表示屏是否需要初始化,如果需要则置为 1. dsi_lane : mipi 数据传输需要几条数据 lane,手上这个屏幕就一条数据 dsi_hs_clk : 屏 ddr clk,表示一条数据 lane 的传输速率,单位为 Mbits/s。有个大概 的计算公式:100+H_totalV_totalfps38/lanes。 所以 H_total = 240 V_total=240 fps=60(根据厂家给的单片机) 在最后厂商说100来左右 那就160

mipi_dsi_num : 单 mipi 还是双 mipi

屏电源控制配置

在之前上电后背光已经能正常亮,所以这个暂时不用调整

屏初始化序列

这个就需要问厂商要一份单片机初始化代码,根据把他改成RK3128中MIPI格式 在这里插入图片描述 关键的是cmd 一条命令(如 0x05/0x15/0x39)+命令+参数 0x05 : 后面只有一个参数 0x15 : 后面有两个参数 0x39 : 两个参数以上

disp_mipi_init_cmds: screen-on-cmds { rockchip,cmd_debug = ; compatible = "rockchip,screen-on-cmds"; rockchip,on-cmds1 { compatible = "rockchip,on-cmds"; rockchip,cmd_type = ; rockchip,dsi_id = ; rockchip,cmd = ; rockchip,cmd_delay = ; }; rockchip,on-cmds2 { compatible = "rockchip,on-cmds"; rockchip,cmd_type = ; rockchip,dsi_id = ; rockchip,cmd = ; rockchip,cmd_delay = ; }; rockchip,on-cmds3 { compatible = "rockchip,on-cmds"; rockchip,cmd_type = ; rockchip,dsi_id = ; rockchip,cmd = ; rockchip,cmd_delay = ; }; rockchip,on-cmds4 { compatible = "rockchip,on-cmds"; rockchip,cmd_type = ; rockchip,dsi_id = ; rockchip,cmd = ; rockchip,cmd_delay = ; }; rockchip,on-cmds5 { compatible = "rockchip,on-cmds"; rockchip,cmd_type = ; rockchip,dsi_id = ; rockchip,cmd = ; rockchip,cmd_delay = ; }; rockchip,on-cmds6 { compatible = "rockchip,on-cmds"; rockchip,cmd_type = ; rockchip,dsi_id = ; rockchip,cmd = ; rockchip,cmd_delay = ; }; rockchip,on-cmds7 { compatible = "rockchip,on-cmds"; rockchip,cmd_type = ; rockchip,dsi_id = ; rockchip,cmd = ; rockchip,cmd_delay = ; }; rockchip,on-cmds8 { compatible = "rockchip,on-cmds"; rockchip,cmd_type = ; rockchip,dsi_id = ; rockchip,cmd = ; rockchip,cmd_delay = ; }; rockchip,on-cmds9 { compatible = "rockchip,on-cmds"; rockchip,cmd_type = ; rockchip,dsi_id = ; rockchip,cmd = ; rockchip,cmd_delay = ; }; rockchip,on-cmds10 { compatible = "rockchip,on-cmds"; rockchip,cmd_type = ; rockchip,dsi_id = ; rockchip,cmd = ; rockchip,cmd_delay = ; }; rockchip,on-cmd11 { compatible = "rockchip,on-cmds"; rockchip,cmd_type = ; rockchip,dsi_id = ; rockchip,cmd = ; rockchip,cmd_delay = ; }; rockchip,on-cmds12 { compatible = "rockchip,on-cmds"; rockchip,cmd_type = ; rockchip,dsi_id = ; rockchip,cmd = ; rockchip,cmd_delay = ; }; rockchip,on-cmds13 { compatible = "rockchip,on-cmds"; rockchip,cmd_type = ; rockchip,dsi_id = ; rockchip,cmd = ; rockchip,cmd_delay = ; }; rockchip,on-cmds14 { compatible = "rockchip,on-cmds"; rockchip,cmd_type = ; rockchip,dsi_id = ; rockchip,cmd = ; rockchip,cmd_delay = ; }; rockchip,on-cmds15 { compatible = "rockchip,on-cmds"; rockchip,cmd_type = ; rockchip,dsi_id = ; rockchip,cmd = ; rockchip,cmd_delay = ; }; rockchip,on-cmds16 { compatible = "rockchip,on-cmds"; rockchip,cmd_type = ; rockchip,dsi_id = ; rockchip,cmd = ; rockchip,cmd_delay = ; }; rockchip,on-cmds17 { compatible = "rockchip,on-cmds"; rockchip,cmd_type = ; rockchip,dsi_id = ; rockchip,cmd = ; rockchip,cmd_delay = ; }; rockchip,on-cmds18 { compatible = "rockchip,on-cmds"; rockchip,cmd_type = ; rockchip,dsi_id = ; rockchip,cmd = ; rockchip,cmd_delay = ; }; rockchip,on-cmds19 { compatible = "rockchip,on-cmds"; rockchip,cmd_type = ; rockchip,dsi_id = ; rockchip,cmd = ; rockchip,cmd_delay = ; }; rockchip,on-cmds20 { compatible = "rockchip,on-cmds"; rockchip,cmd_type = ; rockchip,dsi_id = ; rockchip,cmd = ; rockchip,cmd_delay = ; }; rockchip,on-cmds21 { compatible = "rockchip,on-cmds"; rockchip,cmd_type = ; rockchip,dsi_id = ; rockchip,cmd = ; rockchip,cmd_delay = ; }; rockchip,on-cmds22 { compatible = "rockchip,on-cmds"; rockchip,cmd_type = ; rockchip,dsi_id = ; rockchip,cmd = ; rockchip,cmd_delay = ; }; rockchip,on-cmds23 { compatible = "rockchip,on-cmds"; rockchip,cmd_type = ; rockchip,dsi_id = ; rockchip,cmd = ; rockchip,cmd_delay = ; }; rockchip,on-cmds24 { compatible = "rockchip,on-cmds"; rockchip,cmd_type = ; rockchip,dsi_id = ; rockchip,cmd = ; rockchip,cmd_delay = ; }; rockchip,on-cmds25 { compatible = "rockchip,on-cmds"; rockchip,cmd_type = ; rockchip,dsi_id = ; rockchip,cmd = ; rockchip,cmd_delay = ; }; rockchip,on-cmds26 { compatible = "rockchip,on-cmds"; rockchip,cmd_type = ; rockchip,dsi_id = ; rockchip,cmd = ; rockchip,cmd_delay = ; }; rockchip,on-cmds27 { compatible = "rockchip,on-cmds"; rockchip,cmd_type = ; rockchip,dsi_id = ; rockchip,cmd = ; rockchip,cmd_delay = ; }; }; 屏参 disp_timings: display-timings { native-mode = ; compatible = "rockchip,display-timings"; timing0: timing0 { screen-type = ; lvds-format = ; out-face = ; clock-frequency = ; hactive = ; vactive = ; hback-porch = ; hfront-porch = ; hsync-len = ; vback-porch = ; vfront-porch = ; vsync-len = ; hsync-active = ; vsync-active = ; de-active = ; pixelclk-active = ; swap-rb = ; swap-rg = ; swap-gb = ; }; };

screen-type : 屏幕类型,对于 mipi 屏来说有两种选择:单 mipi(SCREEN_MIPI); 双 mipi(SCREEN_DUAL_MIPI); lvds-format : lvds 数据格式。对于 mipi 来说是无效参数,不用配置 out-face : 屏幕接线格式,include/dt-bindings/rkfb/rk_fb.h 中定义。 在这里插入图片描述 clock-frequency : dclk 频率,单位为 HZ,6000000 这个地方设置错了,根据单片机设置成了60000000,还是要自己根据公式算才正确,不然会花屏

Hactive : 水平有效像素 Vactive : 垂直有效像素 hback-porch/hfront-porch/hsync-len : 水平同步信号 vback-porch/vfront-porch/vsync-len : 垂直同步信号 hsync-active 、 vsync-active 、 de-active 、 pixelclk-active : 分 别 为 hync, vsync,DEN,dclk 的极性控制。置 1 将对极性进行翻转。 swap-rb、swap-rg、swap-gb : 设 1 将对对应的颜色进行翻转。

最后整个屏幕的设备树

lcd-480X800-mipi0.dtsi 名字是这个名字,因为在总设备树里导入了它

/ { disp_mipi_init: mipi_dsi_init{ compatible = "rockchip,mipi_dsi_init"; rockchip,screen_init = ; rockchip,dsi_lane = ; rockchip,dsi_hs_clk = ; rockchip,mipi_dsi_num = ; }; disp_mipi_power_ctr: mipi_power_ctr { compatible = "rockchip,mipi_power_ctr"; mipi_lcd_rst:mipi_lcd_rst{ compatible = "rockchip,lcd_rst"; rockchip,gpios = ; rockchip,delay = ; };/* mipi_lcd_en:mipi_lcd_en { compatible = "rockchip,lcd_en"; rockchip,gpios = ; rockchip,delay = ; };*/ }; disp_mipi_init_cmds: screen-on-cmds { rockchip,cmd_debug = ; compatible = "rockchip,screen-on-cmds"; rockchip,on-cmds1 { compatible = "rockchip,on-cmds"; rockchip,cmd_type = ; rockchip,dsi_id = ; rockchip,cmd = ; rockchip,cmd_delay = ; }; rockchip,on-cmds2 { compatible = "rockchip,on-cmds"; rockchip,cmd_type = ; rockchip,dsi_id = ; rockchip,cmd = ; rockchip,cmd_delay = ; }; rockchip,on-cmds3 { compatible = "rockchip,on-cmds"; rockchip,cmd_type = ; rockchip,dsi_id = ; rockchip,cmd = ; rockchip,cmd_delay = ; }; rockchip,on-cmds4 { compatible = "rockchip,on-cmds"; rockchip,cmd_type = ; rockchip,dsi_id = ; rockchip,cmd = ; rockchip,cmd_delay = ; }; rockchip,on-cmds5 { compatible = "rockchip,on-cmds"; rockchip,cmd_type = ; rockchip,dsi_id = ; rockchip,cmd = ; rockchip,cmd_delay = ; }; rockchip,on-cmds6 { compatible = "rockchip,on-cmds"; rockchip,cmd_type = ; rockchip,dsi_id = ; rockchip,cmd = ; rockchip,cmd_delay = ; }; rockchip,on-cmds7 { compatible = "rockchip,on-cmds"; rockchip,cmd_type = ; rockchip,dsi_id = ; rockchip,cmd = ; rockchip,cmd_delay = ; }; rockchip,on-cmds8 { compatible = "rockchip,on-cmds"; rockchip,cmd_type = ; rockchip,dsi_id = ; rockchip,cmd = ; rockchip,cmd_delay = ; }; rockchip,on-cmds9 { compatible = "rockchip,on-cmds"; rockchip,cmd_type = ; rockchip,dsi_id = ; rockchip,cmd = ; rockchip,cmd_delay = ; }; rockchip,on-cmds10 { compatible = "rockchip,on-cmds"; rockchip,cmd_type = ; rockchip,dsi_id = ; rockchip,cmd = ; rockchip,cmd_delay = ; }; rockchip,on-cmd11 { compatible = "rockchip,on-cmds"; rockchip,cmd_type = ; rockchip,dsi_id = ; rockchip,cmd = ; rockchip,cmd_delay = ; }; rockchip,on-cmds12 { compatible = "rockchip,on-cmds"; rockchip,cmd_type = ; rockchip,dsi_id = ; rockchip,cmd = ; rockchip,cmd_delay = ; }; rockchip,on-cmds13 { compatible = "rockchip,on-cmds"; rockchip,cmd_type = ; rockchip,dsi_id = ; rockchip,cmd = ; rockchip,cmd_delay = ; }; rockchip,on-cmds14 { compatible = "rockchip,on-cmds"; rockchip,cmd_type = ; rockchip,dsi_id = ; rockchip,cmd = ; rockchip,cmd_delay = ; }; rockchip,on-cmds15 { compatible = "rockchip,on-cmds"; rockchip,cmd_type = ; rockchip,dsi_id = ; rockchip,cmd = ; rockchip,cmd_delay = ; }; rockchip,on-cmds16 { compatible = "rockchip,on-cmds"; rockchip,cmd_type = ; rockchip,dsi_id = ; rockchip,cmd = ; rockchip,cmd_delay = ; }; rockchip,on-cmds17 { compatible = "rockchip,on-cmds"; rockchip,cmd_type = ; rockchip,dsi_id = ; rockchip,cmd = ; rockchip,cmd_delay = ; }; rockchip,on-cmds18 { compatible = "rockchip,on-cmds"; rockchip,cmd_type = ; rockchip,dsi_id = ; rockchip,cmd = ; rockchip,cmd_delay = ; }; rockchip,on-cmds19 { compatible = "rockchip,on-cmds"; rockchip,cmd_type = ; rockchip,dsi_id = ; rockchip,cmd = ; rockchip,cmd_delay = ; }; rockchip,on-cmds20 { compatible = "rockchip,on-cmds"; rockchip,cmd_type = ; rockchip,dsi_id = ; rockchip,cmd = ; rockchip,cmd_delay = ; }; rockchip,on-cmds21 { compatible = "rockchip,on-cmds"; rockchip,cmd_type = ; rockchip,dsi_id = ; rockchip,cmd = ; rockchip,cmd_delay = ; }; rockchip,on-cmds22 { compatible = "rockchip,on-cmds"; rockchip,cmd_type = ; rockchip,dsi_id = ; rockchip,cmd = ; rockchip,cmd_delay = ; }; rockchip,on-cmds23 { compatible = "rockchip,on-cmds"; rockchip,cmd_type = ; rockchip,dsi_id = ; rockchip,cmd = ; rockchip,cmd_delay = ; }; rockchip,on-cmds24 { compatible = "rockchip,on-cmds"; rockchip,cmd_type = ; rockchip,dsi_id = ; rockchip,cmd = ; rockchip,cmd_delay = ; }; rockchip,on-cmds25 { compatible = "rockchip,on-cmds"; rockchip,cmd_type = ; rockchip,dsi_id = ; rockchip,cmd = ; rockchip,cmd_delay = ; }; rockchip,on-cmds26 { compatible = "rockchip,on-cmds"; rockchip,cmd_type = ; rockchip,dsi_id = ; rockchip,cmd = ; rockchip,cmd_delay = ; }; rockchip,on-cmds27 { compatible = "rockchip,on-cmds"; rockchip,cmd_type = ; rockchip,dsi_id = ; rockchip,cmd = ; rockchip,cmd_delay = ; }; }; disp_timings: display-timings { native-mode = ; compatible = "rockchip,display-timings"; timing0: timing0 { screen-type = ; lvds-format = ; out-face = ; clock-frequency = ; hactive = ; vactive = ; hback-porch = ; hfront-porch = ; hsync-len = ; vback-porch = ; vfront-porch = ; vsync-len = ; hsync-active = ; vsync-active = ; de-active = ; pixelclk-active = ; swap-rb = ; swap-rg = ; swap-gb = ; }; }; };


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3