RGB 屏调试配置
相比 MIPI 屏的调试,RGB 屏的调试相对简单,只需要把规格书中所描述的时序和规格参数加入相应的配置文件即可,不需要额外的驱动程序。
此章节详细的描述一款 RGB 显示屏的调试过程和配置方法。
- 内核配置
驱动源码目录: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 = <&rgb0_in>; }; }; }; &rgb0 { status = "okay"; port@0 { reg = <0>; rgb0_in: endpoint { remote-endpoint = <&de0_out>; }; }; port@1 { reg = <1>; rgb0_out: endpoint { remote-endpoint = <&panel_rgb_in>; }; }; };
在上述例子中,board.dts 通过 port 和 status 结点,定义了一条数据通道。fb | de | | rgb | panel port --> port0 port1 --> port0 port1 --> port 如果 dts 中没有正确定义一条数据通道,显示驱动可能无法完成初始化。
- 设置屏幕参数
panel_rgb { compatible = "artinchip,aic-general-rgb-panel"; enable-gpios = <&gpio_a 4 GPIO_ACTIVE_HIGH>; rgb-mode = <PRGB>; interface-format = <PRGB_24BIT>; clock-phase = <DEGREE_90>; data-order = <RGB>; data-mirror; status = "okay"; port { panel_rgb_in: endpoint { remote-endpoint = <&rgb0_out>; }; }; display-timings { native-mode = <&timing0>; timing0: 800x480 { clock-frequency = <30000000>; hactive = <800>; vactive = <480>; hback-porch = <88>; hfront-porch = <40>; hsync-len = <48>; vback-porch = <32>; vfront-porch = <13>; vsync-len = <3>; de-active = <1>; pixelclk-active = <1>; }; }; };
其中类似enable-gpios
控制引脚需要根据实际显示屏的需要增加或减少,驱动中做相应修改,rgb-mode
interface-format
需要从规格书中获取,data-order
data-mirror
需要根据板级走线的顺序设置相关参数。clock-phase
需要根据最终实际的显示效果做相应调整。 关于参数详细的解析,参考 panel-rgb。其中参数
display-timings
需要从屏幕规格书中或供应商处获取,例如规格书会有如下信息:
- 设置显示模块数据通路关系,RGB 屏幕数据通路如下:
- 调试
关于调试的细节,查看 常见问题。