LVDS 屏调试配置
相比 MIPI 屏的调试,LVDS 屏的调试相对简单,只需要把规格书中所描述的时序和规格参数加入相应的配置文件即可,不需要额外的驱动程序。 此章节详细的描述一款 LVDS 显示屏的调试过程和配置方法。
内核配置
驱动源码目录:linux-5.10/drivers/video/artinchip/disp/panel/
配置请参考 Display 配置。
DTS 参数配置
这些参数主要在文件 target/d211/方案 x/board.dts 中,功能参数的设置必须和硬件原理图相匹配
-
设置显示模块数据通路关系,RGB 屏幕数据通路如下:
&fb0 { port { fb0_out: endpoint { remote-endpoint = <&de0_in>; }; }; }; &de0 { status = "okay"; port@0 { reg = <0>; de0_in: endpoint { remote-endpoint = <&fb0_out>; }; }; port@1 { reg = <1>; de0_out: endpoint { remote-endpoint = <&lvds0_in>; }; }; }; &lvds0 { status = "okay"; port@0 { reg = <0>; lvds0_in: endpoint { remote-endpoint = <&de0_out>; }; }; port@1 { reg = <1>; lvds0_out: endpoint { remote-endpoint = <&panel_lvds_in>; }; }; };
在上述例子中,board.dts 通过 port 和 status 结点,定义了一条数据通道。fb | de | | lvds | panel port --> port0 port1 --> port0 port1 --> port
如果 dts 中没有正确定义一条数据通道,显示驱动可能无法完成初始化。
- 设置屏幕参数
panel_lvds { compatible = "artinchip,aic-general-lvds-panel"; enable-gpios = <&gpio_a 4 GPIO_ACTIVE_HIGH>; data-mapping = "vesa-24"; data-channel = "single-link0"; status = "okay"; port { panel_lvds_in: endpoint { remote-endpoint = <&lvds0_out>; }; }; display-timings { native-mode = <&timing1>; timing1: 1024x600 { clock-frequency = <60000000>; hactive = <1024>; vactive = <600>; hback-porch = <140>; hfront-porch = <160>; hsync-len = <20>; vback-porch = <20>; vfront-porch = <12>; vsync-len = <3>; de-active = <1>; pixelclk-active = <1>; }; }; };
其中类似
enable-gpios
控制引脚需要根据实际显示屏的需要增加或减少,驱动中做相应修改,data-mapping
data-channel
需要从规格书中获取, 关于参数详细的解析请参考 panel-lvds。其中参数
display-timings
需要从屏幕规格书中或供应商处获取,例如规格书会有如下信息:
调试
调试部分查看 常见问题。