LCD移植种碰到的问题(am5729)

综述:使用AM5729芯片,板子为公司自己制作,LCD型号为:AT080TN64, AT070TN94

出现的问题:

1. 没有产生/de/fb0设备节点

2. lcd字显示顺序反了

3. lcd颜色显示不对

设备树中与 lcd相关的配置如下:

aliases {

    display1 = &lcd;
    rtc0 = &tps659038_rtc;
    rtc1 = &isl1208_rtc;
};

lcd_bl: backlight {

    compatible = "pwm-backlight";
    pwms = <&ecap0 0 50000 0>;
    brightness-levels = <0 51 53 56 62 75 101 152 255>;
    default-brightness-level = <8>;
};

lcd: display {
    compatible = "osddisplays,osd070t1718-19ts", "panel-dpi";
    enable-gpios = <&gpio3 30 GPIO_ACTIVE_HIGH>;
    backlight = <&lcd_bl>;
    label = "lcd";

    panel-timing {
        clock-frequency = <33300000>;
        hactive = <800>;
        vactive = <480>;
        hfront-porch = <210>;
        hback-porch = <46>;
        hsync-len = <20>;
        vfront-porch = <22>;
        vback-porch = <23>;
        vsync-len = <10>;
        hsync-active = <1>;
        vsync-active = <1>;
        de-active = <0>;
        pixelclk-active = <0>;
    };

    port {
    lcd_in: endpoint {
    remote-endpoint = <&dpi_out>;
       };
    };
};



&dss {

    status = "okay";
    vdda_video-supply = <&ldoln_reg>;
    ports {

        #address-cells = <1>;
        #size-cells = <0>;
        port {
            reg = <1>;
            dpi_out: endpoint {
            data-lines = <24>;
            remote-endpoint = <&lcd_in>;
                };
           };
    };

};

分析问题产生的原因:

        1. 内核打印信息中,出现反复出现 Linked as a consumer to regulator.20

                Dropping the link to regulator.20

        2. lcd中的pinmux设置有问题

        3. 设备驱动中compatible “panel-dpi” 对应的驱动有问题

        4. 设置驱动中的 .bus_format = MEDIA_BUS_FMT_RGB888_1X24, 其中可以改变rgb数据的形成格式,输出不同格式的RGB数据

        5. lcd驱动板的硬件问题

        6. lcd输出时序有问题

解决问题过程:

        1. regulator.20在设备节点为 /sys/class/regulator/目录下,电压为1.8,使用万用表测量也显示正常

        2. 在设备树中,配置好了pinmux之后,还是没有节点产生

        3. 在panel-dpi对应的驱动目录下查看,发现并没有编译此驱动,所以应该是设备匹配有问题

        4. 修改格式为 BGR,GRB等,显示效果没有变化。

        5. 测量lcd驱动板和和核心板上的引脚是否是导通的

        6. 用示波器测量lcd输出时序是否有误

问题已解决:

        1. 将compatible 改成 compatible = "osddisplays,osd070t1718-19ts", "panel-dpi";即可生成设备节点 /dev/fb0

        2. lcd颜色显示不对,使用万用表测量电压,发现是lcd驱动板 io的电压过高,硬件组在驱动板中加一个电阻即可

上一篇:AM335x利用设备树dts挂载spidev0.0、spidev1.0或spidev2.0驱动


下一篇:在二叉排序树上找出任意两个不同结点的最近公共祖先。