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:如何在 AM335x 上选择 LCDC 时钟源并设置 DISP PLL 参数

Guru**** 2563960 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/613475/linux-am3352-how-to-select-lcdc-clock-source-and-set-the-disp-pll-parameter-on-am335x

器件型号:AM3352

工具/软件:Linux

您好、专家:

MPU:AM335x
Boaed:客户电路板(请参阅 BeagleBone Black)
操作系统:Linux (SDK 7.0)

客户正在移植 AM335x 客户板上的 LCD 模块、所需的 PCLK 为33.3MHz。
我们了解器件树可以通过设置"display-timing"参数来设置 PCLK。
但是、在显示时序中设置"时钟频率=<33300000>;"应使"LCD_PCLK"焊盘(V5)输出为33.3MHz、但我们测量 V5焊盘、频率为38.4MHz。

我们讨论并完成了该实验、我们发现 TI SDK 的默认 LCDC 时钟源为"按 PLL CLKOUTM2"(192Mz)、因此通过设置 clkdiv 寄存器无法准确地获得33.3MHz 的 LCDC 时钟分频值。
然后、我们使用 devmem2工具来设置寄存器、并使"DISP PLL CLKOUTM2"输出为200MHz、并将该时钟用作 LCDC 时钟源、我们可以通过将 LCDC 时钟分频值设置为6来精确地获得 LCD_PCLK 的33.3MHz。

无论如何、我们可以使用 devmem2工具来设置寄存器并在系统运行时获得所需的 PCLK。
现在、我们要在 LCD 驱动程序中进行此寄存器设置、而不是在初始过程中系统可以设置相应的参数。

问题如下:
我们无法找到内核源代码在何处设置 LCDC 时钟源以及在何处设置"DISP PLL CLKOUTM2"乘法器/除法器因子。
有人能告诉我如何将更改应用到 Linux 内核。


此致、
郭恩

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

    您好、Wayne、

    [引用用户="Wayne Kua"]

    我们讨论并完成了该实验、我们发现 TI SDK 的默认 LCDC 时钟源为"按 PLL CLKOUTM2"(192Mz)、因此通过设置 clkdiv 寄存器无法准确地获得33.3MHz 的 LCDC 时钟分频值。
    然后、我们使用 devmem2工具来设置寄存器、并使"DISP PLL CLKOUTM2"输出为200MHz、并将该时钟用作 LCDC 时钟源、我们可以通过将 LCDC 时钟分频值设置为6来精确地获得 LCD_PCLK 的33.3MHz。

    [/报价]

    [引用 user="Wayne Kua"]我们找不到内核源代码设置 LCDC 时钟源的位置

    我没有 SDK7 (因为它很旧)可以尝试、但我认为默认情况下、DISP PLL 被选为 LCD 像素时钟的源。 您如何定义选择的是 PER PLL 而不是 DISP PLL? 默认情况下(不进行任何修改)、用户空间中的寄存器 CLKSEL_LCDC_PIXEL_CLK 中具有什么值(devmem2工具)?

    另请检查 u-boot 提示符(MD 命令)中寄存器 CLKSEL_LCDC_PIXEL_CLK 中默认包含的内容(无需任何修改)。

    您可以通过时钟框架在 Linux 内核中修改时钟源、请参阅下面的 wiki 页面:

    processors.wiki.ti.com/.../AM335x_PSP_User's_Guide

    另请参见文件:

    linux-kernel/arch/arm/boot/dts/am33xx-clocks.dtsi

    linux-kernel/drivers/clk/ti/clk-33xx.c

    [引用 user="Wayne Kua"]在何处设置"DISP PLL CLKOUTM2"乘法器/除法器因子。

    您可以使用时钟框架来设置所需的 LCD_gclk 频率、并且 Linux 内核将根据传递给它的频率来调整 DISP PLL 设置。

    此致、
    帕维尔

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

    您好、Pavel、

    很抱歉耽误你的回答、感谢你的回答。

    我知道 SDK7非常旧、但客户非常熟悉此 SDK 版本、并且没有升级 SDK 的计划。

    我说过每个 PLL 是默认值、但我使用 devmem2工具读取带有 SDK7预构建映像的 BeagleBone Black 上的寄存器0x44E00534 (CLKSEL_LCDC_PIXEL_CLK)为0x2。

    2.我将尝试在 U-Boot 中读取 CLKSEL_LCDC_PIXEL_CLK 寄存器。 如果我有任何信息、我将在这里发布结果。

    3.我将查看您提供的信息,非常感谢。 如果我成功修改 LCD PCLK、我将在这里提供反馈。


    谢谢、此致、
    郭恩