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.

[参考译文] AM5728:PLL_configuration2寄存器设置

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/659902/am5728-pll_configuration2-register-settings

器件型号:AM5728

您好!

是否需要设置以下寄存器的位字段?

表11-45. PLL_CONFIGURATION 2.
DPLL_VIDEO1_MAIN _ L 3.
保留位1-3

Linux 代码似乎会根据频率而变化。
linux\drivers\GPU \drm\omapdrm\dss\pll.c

int dss_pll_write_config_type_b (struct dss_pll * pll、
const 结构 dss_pll_clock_info * Cinfo)

(笑声)

/* PLL_SELFREQDCO */
如果(Cinfo->clkdco > hw->clkdco_low)
L = FLD_MOD (l、0x4、3、1);
其他
L = FLD_MOD (l、0x2、3、1);
writel_relaxed (l、base + pll_configuration2);

此致、
新义郎

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

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

    您好、Biser、

    感谢您的快速回复。

    我确认了 AM572x TRM 修订版 I 中的第11.1.3.3节
    但是、除了该部分、它不解释 AM572x TRM 中 PLL_configuration2寄存器的保留位[1..3]的设置。

    当我在 Linux 上的 LCD 显示期间转储该寄存器时、它似乎被设置为位3。
    转储结果:
    地址0x58004310 读取值0x00616008

    抱歉、我查看了 Linux 内核的代码。
    视频 DPLL 正在执行 DSS_PLL_WRITE_CONFIG_TYPE_A ()。
    它似乎是以下选择。

    int dss_pll_write_config_type_a (struct dss_pll * pll、
    const 结构 dss_pll_clock_info * Cinfo)

    (笑声)

    L = readl_relaxed (base + pll_configuration2);
    if (hw->hs_freqsel){
    u32 f = Cinfo->fint < 1000000? 0x3:
    CINFO->FINT<1250000? 0x4:
    Cinfo->fint < 1500000? 0x5:
    CINFO->FINT<1750000? 0x6:
    0x7;

    L = FLD_MOD (l、f、4、1);/* PLL_FREQSEL *
    }如果(hw->ha_selfreqdco){
    u32 f = Cinfo->clkdco < hw->clkdco_low? 0x2:0x4;

    L = FLD_MOD (l、f、3、1);/* PLL_SELFREQDCO *



    此致、
    新义郎

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    PLL_configuration2的[3:1]位在 TRM 中标记为保留和只读。 它们不应由用户代码修改。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我还要求工厂团队对此进行评论。 他们将在这里作出回应。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Biser、

    感谢您的快速回复。
    您的工厂团队是否提供了任何更新信息?

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

    只需要设置 TRM 中提到的位。

    PLL 代码源自较旧的器件(OMAP3次)、并在此后进行了扩展。 因此、很显然、现在有一些位被保留、但这些旧器件需要这些位。

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

    大家好、Manisha、

    感谢您的快速回复。

    我知道不需要设置该位。
    我将回复我们的客户。

    感谢您的支持。

    此致、
    新义郎

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

    我还认为驱动程序中存在软件错误。 实际上、TRM 看起来是正确的、这些位[3:1]应该被保留用于 AM572x DPLL_VIDEO1/2 PLL_configuration2寄存器、因此驱动程序没有写入。


    Linux 内核/驱动程序/GPU/DRM/omapdrm/dss/DSI.c

    静态常量结构 dss_pll_HW dss_omap5_dsI_pll_HW ={
    .type = DSS_PLL_TYPE_A、
    (笑声)

    has _freqsel = false、
    -.has _selfreqdco = true、
    +.has _selfreqdco = false、
    .has _refsel = true、
    };


    此致、
    帕维尔