Edit online

LVDS 屏调试配置

相比 MIPI 屏的调试,LVDS 屏的调试相对简单,只需要把规格书中所描述的时序和规格参数加入相应的配置文件即可,不需要额外的驱动程序。 此章节详细的描述一款 LVDS 显示屏的调试过程和配置方法。

内核配置

驱动源码目录:linux-5.10/drivers/video/artinchip/disp/panel/

配置请参考 Display 配置

DTS 参数配置

这些参数主要在文件 target/d211/方案 x/board.dts 中,功能参数的设置必须和硬件原理图相匹配

  1. 设置显示模块数据通路关系,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 中没有正确定义一条数据通道,显示驱动可能无法完成初始化。

  2. 设置屏幕参数
    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 需要从屏幕规格书中或供应商处获取,例如规格书会有如下信息:

    ../../images/lvds_timing.png

调试

调试部分查看 常见问题