This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] Linux/AM3352:LCD 频率不会根据 DTS 文件更改

Guru**** 2560410 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/596204/linux-am3352-lcd-frequency-not-changing-as-per-dts-file

器件型号:AM3352

工具/软件:Linux

您好!

我们移植了基于 Linux-4.4.12的 SDK、借助该 LCDC 驱动程序、可以在 DRM 调试日志中报告6500 KHz 时钟、这符合 DTS 文件的要求。

但是、当我在 CRO 上探测它时、它会报告32MHz、即使我将时钟更改为任何值、它在 CRO 上报告为32MHz。 这会在 LCD 上产生闪烁和混叠效应。 LCD 尺寸为320x240。

我们在基于 Linux-3.2.0的 PSP 上有相同的产品、但报告正确的6.5MHz。  

基于 DRM 的新驱动程序和旧 fbdev 驱动程序有什么变化 ,我们做了什么错?

BR、

Rohit Khatri

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    软件团队已收到通知。 他们将在这里作出回应。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我们已经找到了这个问题的解决方案、我们将获得6.5MHz 的稳定时钟。

    但这一问题出现了新的问题。

    我们在 u-boot 以及内核中设置了标识。 因此、当内核启动时、我们在 LCD 上看到第二次闪烁。 我们已经验证了时钟在 u-boot 以及内核中是完美的。

    我已附加视频、您可以在第三秒看到闪烁线。 这是内核启动的时刻。 DTS 文件中设置的时序参数如下所示。

    面板{
    兼容="ti、tilcdc、panel ";
    状态="正常";
    pinctrl-names ="default";
    pinctrl-0 =<&LCD_PINS_s0>;
    面板信息{
    交流偏置=<255>;
    AC-BIAS-INtrpt =<0>;
    dma-burse-SZ =<16>;
    bpp =<32>;
    FDD =<0x80>;
    同步边沿=<0>;
    SYNC-Ctrl =<1>;
    栅格顺序=<0>;
    FIFO-TH =<0>;
    };

    显示时序{
    320x240p62{
    时钟频率=<6500000>;
    hactive =<320>;
    Vactive =<240>;
    前沿=<38>;
    后沿=<20>;
    HSYNC-LEN =<30>;
    后沿=<16>;
    垂直前沿=<4>;
    vsync-len =<3>;
    HSYNC-ACTIVE =<0>;
    vsync-active =<0>;
    };
    };
    };

    那么、内核中会影响什么呢?

    e2e.ti.com/.../VID_5F00_20170522_5F00_101619.rar

    此致、

    Rohit Khatri

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这是内核驱动程序重新初始化 LCDC 或要重写的帧缓冲区的存储器区域。 我恐怕没有解决这个问题的现成解决方案。 您需要分析内核代码以查看导致此问题的原因。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    LCDC 不会重新初始化、因为我们在 HW 数据文件中设置了标志、所以在内核中需要小心谨慎。 因此、LCDC 不会复位。

    我们在内核和 u-boot 中转储了所有 LCDC 寄存器。 IRQ 寄存器的值只是不同的、其它的值是相同的。

    此致、

    Rohit Khatri