DSI的数据传输过程如下: 由于DSI的数据是封包处理的,不像DBI接口那样可以明显知道原始的传输内容,所以在一些问题的解决方法是不同的。在调试OTM8009A的DIS接口LCM时,发现LCD在按电源键睡眠后必须按两次才能唤醒,一开始无论如何都没有想到是屏的问题,最后是修改LCM的DSI驱动公共函数解决的,也就是把dsi_enable_power...
&lcd0 { /* part 1 */ lcd_used = <1>; lcd_driver_name = "k101im2qa04"; /* part 2 */ lcd_if = <4>; lcd_dsi_if = <0>; /* part 3 */ lcd_x = <800>; lcd_y = <1280>; lcd_width = <135>; lcd_height = <216>; lcd_dclk_freq = <68>; lcd_hbp = <36>; lc...
• bit_per_pixel: 每个像素包含的比特数量,一般是24 或者18,通过lcd_dsi_format来设置。 • lane_num:lane 数量,通过lcd_dsi_lane来设置。 • 1e9:1000000000 的科学计数写法。 选择分辨率的同时需要考虑系统带宽,DE 能力,所以即使接口方面支持这个分辨率,对于整个系统来说不一定支持,比如说硬件为了节省成本...
MIPI DSI 屏,大部分需要初始化,使用的是DSI-D0 通道的LP 模式进行初始化。提供的接口函数说明如下: 函数:sunxi_lcd_dsi_clk_enable / sunxi_lcd_dsi_clk_disble 功能:仅限dsi 接口屏使用,使能/关闭dsi 输出的高速时钟clk 信号,必须在初始化的时候调用。 原型:s32 sunxi_lcd_dsi_clk_enable(u32 scree_id)...
MIPI_DSI_MODE_LPM | MIPI_DSI_MODE_EOT_PACKET)>; dsi,format= <MIPI_DSI_FMT_RGB888>; dsi,lanes = <4>; panel-init-sequence = [0578011105780129]; panel-exit-sequence = [0500012805780110]; disp_timings1: display-timings { native-mode = <&dsi1_timing0>; ...
在Linux驱动开发过程中,一般通用的MIPI的驱动都是现成的,比如以下的simple-panel-dsi,就是通用的MIPI接口LCD驱动,它在Linux内核中位于driver/gpu/drm/panel目录下,对应的文件是:panel-simple.c。 一般使用通用的MIPI LCD驱动,我们只需要根据自己选购的屏的参数进行配置即可,也就是只需要配置设备树即可顺利完成点屏的...
1.根据LVDS屏规格书确认LVDS Link和LVDS output format并选择屏的参数。 2.计算LVDS clock(蓝色单元无法写入,需要黄色单元自动计算得出),需要填入DSI Clock(HOST), Pixel Clock Source, Pixel Clock Divider。计算公式如下:DSI Clock/Pixel Clock Source/Pixel Clock Divider=LVDS Clock...
在Linux驱动开发过程中,一般通用的MIPI的驱动都是现成的,比如以下的simple-panel-dsi,就是通用的MIPI接口LCD驱动,它在Linux内核中位于driver/gpu/drm/panel目录下,对应的文件是:panel-simple.c。 一般使用通用的MIPI LCD驱动,我们只需要根据自己选购的屏的参数进行配置即可,也就是只需要配置设备树即可顺利完成点屏的...
2.1dsi节点 mipi 屏幕我们使用 dsi1 接口,所以需要在设备树里面查找 dsi 节点,如下图所示:kernel/...
dsi,format = ;bus-format = ;dsi,lanes = <4>;reset-delay-ms = <20>;init-delay-ms = <20...