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.

[参考译文] AM62P:Linux/tidss 中支持 AM62Px DSS DPI(RGB 并行)

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1621371/am62p-am62px-dss-dpi-rgb-parallel-support-in-linux-tidss

部件号: AM62P

您好 TI 支持部门、

我正在使用 Linux (tidss/DRM) 来使用 AM62Pxx (AM62Px EVM)。 我正在尝试从 DSS 输出 RGB 并行 (DPI) 显示。

我的设备树将 panel-dpi 连接到 DSS 端口、并且正确探测了面板、

但 tidss 始终失败、其原因是:tidss 30220000.dss: VP_BUS_TYPE 2 不受支持

这在所有 DSS 端口(端口 0 和端口 1)上进行。

------------------------------------------------------------------------------------

[  0.075079]/bus@f0000/DSS@30220000:带/panel 的固定依赖周期
[  0.075157]/panel:固定依赖周期、其中/bus@f0000/DSS@30220000
[  0.305852] tidss 30220000.dss:TIDSS 调试:开始探测端口 0
[0.305878]  tidss 30220000.dss:TIDSS 调试:端口 0 -> panel=000000002146ea68 bridge=0000000000000000
[  0.305886] tidss 30220000.dss:TIDSS 调试:设置端口 0 的面板
[  0.305934] tidss 30220000.dss:TIDSS 调试:端口 0 的 VP_BUS_TYPE 2 不受支持
[0.305940]  tidss 30220000.dss:初始化 DRM/KMS 失败(–22)
[0.306166]  tidss 30220000.dss:带有驱动程序 tidss 的探测器失败、错误为–22

root@am62pxx-EVM:~# dmesg | grep dss
[  0.074061]/bus@f0000/DSS@30220000:带/panel 的固定依赖周期
[  0.074142]/panel:固定依赖周期、其中/bus@f0000/dss@30220000
[0.305653]  tidss 30220000.dss:TIDSS 调试:开始探测端口 0
[0.305675]  tidss 30220000.dss:TIDSS 调试:端口 0 ->无面板/网桥 (ENODEV)
[0.305680]  tidss 30220000.dss:TIDSS 调试:开始探测端口 1
[0.305693]  tidss 30220000.dss:TIDSS 调试:端口 1 -> panel=00000000345fe045 bridge=0000000000000000
[0.305701]  tidss 30220000.dss: TIDSS 调试:设置端口 1 的面板
[  0.305706] tidss 30220000.dss: TIDSS 调试:端口 1 的 VP_BUS_TYPE 2 不受支持
[0.305712]  tidss 30220000.dss:初始化 DRM/KMS 失败(–22)
[0.306058]  tidss 30220000.dss:带有驱动程序 tidss 的探测器失败、错误为–22

------------------------------------------------------------------------------------

问题:AM62Pxx DSS 是否支持 Linux 中的 RGB 并行 (DPI) 输出?

如果没有、这是 AM62Pxx 的硬件限制还是当前 BSP/Tidss 驱动器的软件限制?

如果不支持 DPI、建议通过哪种方法从 AM62Pxx 驱动 RGB 面板? (OLDI/LVDS +外部桥接器?)

环境: — SoC:AM62Pxx — 电路板:AM62Px EVM - Linux:(内核版本/TI SDK 版本)-显示驱动程序:tidss (DRM)  

此致、  

泉泽文之

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

    尊敬的  Fumiyuki:
    您似乎正在尝试从 DSS1 而不是默认的 DSS0 启用 DPI 输出。

    检查下图以了解内部 SoC 布线:

    要使用 DSS0VP1 启用 DPI 输出、请参阅以下 E2E 的示例:  AM623:DSS:am62x 上显示 DPI 

    要在 DSS1VP0 上启用 DPI 输出、以及为 DSS1VP0 修改的上述补丁、您还需要在 https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/drivers/gpu/drm/tidss/tidss_dispc.c?h=ti-linux-6.12.y#n496 中将第一个 DISPC_VP_INTERNAL 更改为 DISPC_VP_DPI 、并确保在 DTS 中正确设置多路复用器 241 和 245。  

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

    您好 TI 支持团队:

    我们正在使用 AM62Px EVM、并尝试启动 DPI LCD 面板 (320x240)。
    更新 DTS 后、与总线类型相关的错误消失、DSS/DRM 驱动程序正确初始化、但显示完全黑屏(无可见视频输出)。

    以下是我们当前状态和调查结果的详细信息。

    存在许多风险
    SoC:AM62Px
    接口:DSS→DPI 面板
    分辨率:320x240
    像素时钟:6MHz
    总线格式:RGB888(24 位)

    dmesg 输出(摘录)

    root@am62pxx-evm:~# dmesg | grep dss
    [ 0.072166] /bus@f0000/dss@30220000: Fixed dependency cycle(s) with /panel
    [ 0.072237] /panel: Fixed dependency cycle(s) with /bus@f0000/dss@30220000
    [ 0.304202] tidss 30220000.dss: TIDSS DEBUG: start probing port 0
    [ 0.304227] tidss 30220000.dss: TIDSS DEBUG: port 0 -> panel=00000000635506fb bridge=0000000000000000
    [ 0.304236] tidss 30220000.dss: TIDSS DEBUG: setting up panel for port 0
    [ 0.304241] tidss 30220000.dss: TIDSS DEBUG: port 0 connector_type panel=17 expected=17
    [ 0.304252] tidss 30220000.dss: TIDSS DEBUG: panel bridge created for port 0
    [ 0.304257] tidss 30220000.dss: TIDSS DEBUG: port 0 successfully added
    [ 0.304262] tidss 30220000.dss: TIDSS DEBUG: start probing port 1
    [ 0.304268] tidss 30220000.dss: TIDSS DEBUG: port 1 -> no panel/bridge (ENODEV)
    [ 0.305151] [drm] Initialized tidss 1.0.0 for 30220000.dss on minor 0
    [ 1.869951] tidss 30220000.dss: [drm] fb0: tidssdrmfb frame buffer device

    DRM 和帧缓冲区 (/dev/fb0) 创建成功。

    DRM/帧缓冲区检查

    root@am62pxx-evm:~# cat /sys/class/drm/card0-*/modes
    320x240

    向 fb0 写入随机数据:

    cat /dev/urandom > /dev/fb0
    cat: write error: No space left on device

    (由于帧缓冲区大小,这似乎是正常现象。)

    背光控制

    root@am62pxx-evm:~# ls /sys/class/backlight/
    1-0036
    
    root@am62pxx-evm:~# cat /sys/class/backlight/1-0036/max_brightness
    255

    亮度控制的工作原理:

    echo 0 > /sys/class/backlight/1-0036/brightness
    echo 255 > /sys/class/backlight/1-0036/brightness

    直接 I2C 访问因器件繁忙(由背光驱动器控制)而失败:

    i2cset -y 1 0x36 0x11 0x11
    Error: Could not set address to 0x36: Device or resource busy

    DTS 摘录(面板和 DSS 配置)

    panel_lcd: panel {
    compatible = "panel-dpi";
    status = "okay";
    
    backlight = <&backlight>;
    bus-format = <0x1017>; /* RGB888_1X24 */
    bus-flags = <0x6>;
    bpc = <8>;
    
    panel-timing {
    clock-frequency = <6000000>; /* 6 MHz */
    
    hactive = <320>;
    hfront-porch = <8>;
    hback-porch = <43>;
    hsync-len = <4>;
    
    vactive = <240>;
    vfront-porch = <8>;
    vback-porch = <12>;
    vsync-len = <4>;
    
    de-active = <1>;
    hsync-active = <0>;
    vsync-active = <0>;
    pixelclk-active = <1>;
    };
    
    port {
    panel_in: endpoint {
    reg = <0>;
    remote-endpoint = <&dss1_vp2_out>;
    };
    };
    };
    
    &dss1 {
    status = "okay";
    pinctrl-names = "default";
    pinctrl-0 = <&main_dpi_pins_default>;
    };
    
    &dss1_ports {
    port@0 {
    reg = <0>;
    dss1_vp2_out: endpoint {
    reg = <0>;
    remote-endpoint = <&panel_in>;
    bus-type = <2>; /* DPI */
    bus-format = <0x1017>;
    bus-flags = <0x6>;
    data-lines = <24>;
    };
    };
    };

    此更改后、与总线类型相关的错误消失。

    当前问题
    DRM、DSS 和帧缓冲区已正确初始化。
    可以控制背光并打开/关闭背光。
    报告了正确的模式 (320x240)。
    但是、面板上不会显示任何图像(黑屏)。
    问题/咨询请求
    在这一点上、我们认为需要进一步调查。
    请您告知我们接下来应该关注哪些方面? 例如:

    DSS VP (VP1/VP2) 路由或端口选择正确性
    DPI 信号极性 (DE/HSYNC/VSYNC/PCLK) 以及是否需要额外的反相
    像素时钟源和时钟使能状态
    AM62Px 上的 DPI 面板是否需要额外的 DSS 或 VP 配置
    AM62Px 上 DPI 启动的任何已知限制或常见缺陷
    非常感谢有关建议调试步骤的任何指导。

    此致、
    泉泽文之

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

    尊敬的 Fumiyaki:
    您似乎错过了我上次发布的一些配置。
    一些提示/问题:
    1. DTS 的变化是什么帮助的? 您是否不需要为 DISPC_VP_INTERNAL 更改驱动程序?
    2.您是否尝试使用 DSS0VP1 或 DSS1VP0。 如果使用  DSS1VP0、请问是否有任何具体原因?
    3.在 DTS 中、您似乎正在尝试使用 DSS1VP0(因为您使用的是端口@0、但将其标记为 DSS1_vp2_out)  。 如果您确实要使用 DSS1VP0、则需要更改前面提到的 MUX241 和 MUX245 的多路复用值。 要了解如何更改此设置、请参阅此 应用手册部分中的&DSS1 节点示例

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

    您好、

    感谢您发送编修。

    1.是的,需要修改源代码。 与 DISPC_VP_INTERNAL 相关的更改生效、总线类型错误现已解决。 感谢您的指导。

    2.我正在使用 DSS1VP0。 DSS0 当前已禁用、因为它计划将来用于单独的 HDMI 输出路径、但目前尚未使用。

    3.您对 DTS 中的标签不匹配的问题是正确的。 我很抱歉—这是我忘记更新的一个残留标签。
    关于 MUX241 和 MUX245 设置:我最初没有更改这些值、因为在应用第 1 点提到的修复后、即使不修改多路复用器值、总线类型错误也会消失。
    不过、我现在知道、使用 DSS1VP0 时仍然需要更改 MUX241 和 MUX245 值。 我将重新检查并相应地更新这些设置、如果我有任何其他问题、我将跟进。

    目前、系统处于以下状态:
    -正确创建 DRM 设备。
    -检测到连接器 DPI-1 并报告为“已连接“。
    -列出了有效模式 (320x240)。
    -背光控制工作。

    但是、显示屏输出仍然完全黑屏。

    下面是相关的 DRM 调试日志和 sysfs 信息、供参考。

    DRM 状态:
    ------------------------------------

    cat /sys/kernel/debug/dri/0/state
    
    plane[32]: plane-0
    crtc=(null)
    fb=0
    crtc-pos=0x0+0+0
    src-pos=0.000000x0.000000+0.000000+0.000000
    rotation=1
    normalized-zpos=0
    color-encoding=ITU-R BT.601 YCbCr
    color-range=YCbCr full range
    color_mgmt_changed=0
    
    plane[42]: plane-1
    crtc=(null)
    fb=0
    crtc-pos=0x0+0+0
    src-pos=0.000000x0.000000+0.000000+0.000000
    rotation=1
    normalized-zpos=1
    color-encoding=ITU-R BT.601 YCbCr
    color-range=YCbCr full range
    color_mgmt_changed=0
    
    crtc[39]: crtc-0
    enable=0
    active=0
    plane_mask=0
    connector_mask=0
    encoder_mask=0
    mode: "": 0 0 0 0 0 0 0 0 0 0 0x0 0x0
    
    connector[41]: DPI-1
    crtc=(null)
    
    

    ------------------------------------

    sysfs DRM 信息:
    ------------------------------------

    /sys/class/drm:
    card0
    card0-DPI-1
    
    /sys/class/drm/card0/card0-DPI-1/status:
    connected
    
    /sys/class/drm/card0/card0-DPI-1/modes:
    320x240


    ------------------------------------

    从 DRM 状态来看、即使连接了连接器并且存在有效模式、CRTC 似乎未启用、并且当前未连接任何平面。

    请告诉我是否有任何其他特定于 DSS1VP0 的配置需要我验证。

    此致、
    泉泽文之

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

    尊敬的 Fumiyuki:
    请您在将来回复中粘贴日志/代码时使用代码块。

    我正在使用 DSS1VP0。 DSS0 当前已禁用、因为它计划将来用于单独的 HDMI 输出路径、但目前尚未使用。

    我懂了。 需要注意的是:DSS1 随后会使用 DPI 输出来驱动 DSS0 的 HDMI、您需要在电路板上使用单独的 OLDI 转 HDMI 桥接器。

    我现在了解、使用 DSS1VP0 时仍需要更改 MUX241 和 MUX245 值。 我将重新检查并相应地更新这些设置、如果我有任何其他问题、我将跟进。
    [quote userid=“430947" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1621371/am62p-am62px-dss-dpi-rgb-parallel-support-in-linux-tidss/6252325

    但是、显示屏输出仍然完全黑屏。

    [/报价]

    由于默认情况下 MUX 245 设置为输出 DSS0VP1、因此预计会出现黑色输出。

    将等待结果。 对于 MUX 241、您可以使用“k3conf dump clock 241“交叉检查配置

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

    您好、

    感谢您的指导。

    我计划通过为 DSS1VP0 添加 MUX241(正面)和 MUX245(背面)配置来更新 DTS、如下所示。


    &DSS1{
    状态=“正常“;

    /* DSS1 VP0(前多路复用器)和 DPI(后多路复用器)*/
    Assigned-clocks =<&K3_CLKS 241 0>、/* MUX241:DSS1 VP0 */
    <&K3_CLKS 245 0>;/* MUX245:DPI */

    /* PLL17 -> DSS1 VP0 -> DPI */
    分配的时钟父级=<&K3_CLKS 17 0>、/* PLL17 */
    <&K3_CLKS 241 1>;/* DSS1 VP0 输出*/

    pinctrl-names =“default";“;
    pinctrl-0 =<&main_dpi_pins_default>;
    };

    /* DSS1 VP0 端口定义*/
    &DSS1_ports{
    端口@0{/* DSS1 VP0 (DPI)*/
    reg =<0>;

    ds1_vp0_out:端点{
    远程端点=<&panel_in>;
    总线类型=<2>;/* DPI */
    总线格式=<0x1017>;
    总线标志=<0x6>;
    数据线路=<24>;
    };
    };
    };

    目前目标上没有安装 k3conf 和 modetest、因此还无法转储时钟配置。


    root@am62pxx-EVM:/sys/class/drm/card0/card0-DPI-1 k3conf 转储时钟 241
    -sh: k3conf:找不到命令

    root@am62pxx-EVM:/sys/class/drm/card0/card0-DPI-1 k3conf 转储时钟 245
    -sh: k3conf:找不到命令

    我将首先应用上述 DTS 更改并在重新启动后验证行为。
    看到结果后、我就会跟进更新后的状态。

    请告诉我上述 DTS 配置是否正确、尤其是 PLL17 时钟 ID 的使用情况。

    此致、
    泉泽文之

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

    您好、
    以下是有关如何在 E2E 论坛上添加代码块的参考:

    [引述 userid=“430947" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1621371/am62p-am62px-dss-dpi-rgb-parallel-support-in-linux-tidss/6252461

    /* DSS1 VP0(前多路复用器)和 DPI(后多路复用器)*/
    Assigned-clocks =<&K3_CLKS 241 0>、/* MUX241:DSS1 VP0 */
    <&K3_CLKS 245 0>;/* MUX245:DPI */

    /* PLL17 -> DSS1 VP0 -> DPI */
    分配的时钟父级=<&K3_CLKS 17 0>、/* PLL17 */
    <&K3_CLKS 241 1>;/* DSS1 VP0 输出*/

    [/报价]

    似乎不正确:
    1.时钟和父时钟之间的顺序必须相同。
    2.<241 0>将需要<241 2>父级、同样<245 0>将需要<245 2>。   有关此信息、请参阅 software-dl.ti.com/.../clocks.html。

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

    尊敬的 TI 团队:

    我们在 AM62Px EVM 上测试了 k3conf 和 DSS/DPI 配置。
    以下是当前观察结果和测试日志。

    ------------------------------------
    k3conf 结果
    ------------------------------------
    【代码】
    Root@am62pxx-EVM:/usr/bin
    k3conf 转储时钟 245 1.

    ------------------------------------------------------------------------------------ |
    | VERSION INFO |
    ------------------------------------------------------------------------------------ |
    | K3CONF |(版本 0.3-nogit Builded Wed Mar 04 01:43:00 UTC 2026)|
    SoC | AM62Px SR1.0 |
    | SYSFW | ABI:4.0(固件版本 0x000b “11.0.7--v11.00.07(花哨 RAT)“|
    ------------------------------------------------------------------------------------ |

    |-------------------------------------------------------------------------------------------------------------------------------------- |
    |器件 ID |时钟 ID |时钟名称|状态|时钟频率|
    |-------------------------------------------------------------------------------------------------------------------------------------- |
    | 241 | 0 | DEV_DSS1_DPI0_PLLSEL_DEV_VD_CLK | CLK_STATE_READY | 300000000 |
    | 241 | 1 | DEV_DSS1_DPI0_PLLSEL_DEV_VD_CLK_parent_HSDIV0_16FFT_MAIN_18_HSDIVOUT0_CLK | CLK_STATE_READY | 300000000 |
    | 241 | 2 | DEV_DSS1_DPI0_PLLSEL_DEV_VD_CLK_parent_HSDIV0_16FFT_MAIN_17_HSDIVOUT0_CLK | CLK_STATE_READY | 300000000 |
    |-------------------------------------------------------------------------------------------------------------------------------------- |

    【代码】

    ------------------------------------
    modetest(DSS/DPI 状态)
    ------------------------------------
    【代码】
    Root@am62pxx-EVM:/usr/bin
    modetest -M tidss -c

    连接器:
    ID 编码器状态名称大小 (mm) 模式编码器
    41 0 已连接 DPI-1 0x0 1 40

    模式:
    首选#0 320x240 60.61Hz

    Root@am62pxx-EVM:/usr/bin
    modetest -M tidss -p

    CRTC:
    ID fb 位置大小
    39 0 (0、0)(0x0)

    层面:
    主平面和覆盖平面存在且正常工作。
    【代码】

    ------------------------------------
    计划的器件树更改(尚未应用)
    ------------------------------------
    【代码】
    &DSS1{
    状态=“正常“;

    Assigned-clocks =<&K3_CLKS 241 0>、/* DSS1 VP0 */
    <&K3_CLKS 245 0>;/* DPI */

    assigned-clock-parter =<&K3_CLKS 241 2>、/* 241 的父级*/
    <&K3_CLKS 245 2>;/* 245 的父级*/

    pinctrl-names =“default";“;
    pinctrl-0 =<&main_dpi_pins_default>;
    };

    /* DSS1 VP0 端口定义*/
    &DSS1_ports{
    端口@0{
    reg =<0>;
    ds1_vp0_out:端点{
    远程端点=<&panel_in>;
    总线类型=<2>;/* DPI */
    总线格式=<0x1017>;
    总线标志=<0x6>;
    数据线路=<24>;
    };
    };
    };
    【代码】

    ------------------------------------
    问题
    ------------------------------------
    1.使用 DPI 输出时、AM62Px 的时钟 ID 241 (DSS1) 和 245 (DPI) 是否正确?
    2.在这种情况下、是否建议为 DSS/DPI 分配父时钟索引“2"?“?
    3. AM62Px 上的稳定 DPI 输出是否需要任何额外的时钟或 SYSFW 限制?

    接下来、我们将应用 DT 更改、并返回结果报告。

    此致、
    泉泽文之

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

    尊敬的 Fumiyuki:
    抱歉、我刚才注意到了。 您要求的 320x240 分辨率太低。 假设您使用的是最新的 SDK 版本、则需要请求最低 6.25MHz 像素时钟。

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

    尊敬的 Divyansh:

    感谢您关于最低像素时钟要求(≥6.25MHz) 的)的建议。

    我已更新面板时序以使用 7.0MHz 像素时钟、并将首先使用仅取消模式(HSYNC/VSYNC 被视为虚拟)验证输出。 更新后的参数为:

    【代码】
    时钟频率=<7000000>;/* 7.0MHz */

    hactive =<320>;
    前沿=<20>;
    HSYNC-LEN =<4>;/* DE 模式下的虚拟*/
    后沿=<28>;

    vactive =<240>;
    vfront-g沿=<8>;
    Vsync 长度=<4>;/* DE 模式下的虚拟*/
    后沿=<12>;

    停用=<1>;
    HSYNC 有效=<0>;
    Vsync 激活=<0>;
    pixelclk-active =<1>;
    【代码】

    在 DSS 端、配置为:

    【代码】
    &DSS1{
    状态=“正常“;
    Assigned-clocks =<&K3_CLKS 241 0>、/* DSS1 VP0 */
    <&K3_CLKS 245 0>;/* DPI */

    assigned-clock-parter =<&K3_CLKS 241 2>、
    &K3_CLKS 245 2>;

    pinctrl-names =“default";“;
    pinctrl-0 =<&main_dpi_pins_default>;
    };
    【代码】

    在 k3conf 中、DSS1 DPI 父时钟(器件 241)处于就绪状态、具有 300MHz 源:

    【日志】
    root@am62pxx-EVM:~# k3conf dump clock 241

    |器件 ID |时钟 ID |时钟名称|状态|时钟频率|
    |----- |----- |----- |----- |----- |
    | 241 | 0 | DEV_DSS1_DPI0_PLLSEL_DEV_VD_CLK | CLK_STATE_READY | 300000000 |
    | 241 | 1 | DEV_DSS1_DPI0_PLLSEL_DEV_VD_CLK_parent_HSDIV0_16FFT_MAIN_18_HSDIVOUT0_CLK | CLK_STATE_READY | 300000000 |
    | 241 | 2 | DEV_DSS1_DPI0_PLLSEL_DEV_VD_CLK_parent_HSDIV0_16FFT_MAIN_17_HSDIVOUT0_CLK | CLK_STATE_READY | 300000000 |
    [/log]

    我的理解是、最终的 7MHz 像素时钟是通过来自此 300MHz 父级的 VP DSS/DPI 分频器在内部产生的。

    请确认:
    1) 上述 DSS 时钟分配对于 DPI 输出是否正确?
    2) DT 或 DSS 驱动程序中是否需要任何额外的 VP 或 DPI 分频器配置来可靠地生成 7MHz 像素时钟?
    3) AM62Px DSS 上是否有特定于仅取消模式的任何额外最小像素时钟限制?

    在使用更新后的 7MHz 配置进行测试后、我将共享 dmesg 日志。

    此致、
    文之

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

    尊敬的 Fumiyuki:
    我在结束时尝试复制此设置、发现问题。 我们将在本周结束时回复您。

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

    尊敬的 Fumiyuki:
    请尝试以下补丁:

    diff --git a/arch/arm64/boot/dts/ti/k3-am62p-j722s-common-main.dtsi b/arch/arm64/boot/dts/ti/k3-am62p-j722s-common-main.dtsi
    index 25e7c3797..035da4f4e 100644
    --- a/arch/arm64/boot/dts/ti/k3-am62p-j722s-common-main.dtsi
    +++ b/arch/arm64/boot/dts/ti/k3-am62p-j722s-common-main.dtsi
    @@ -1153,9 +1153,8 @@ dss0: dss@30200000 {
     				<&k3_pds 243 TI_SCI_PD_EXCLUSIVE>,	/* OLDI0 */
     				<&k3_pds 244 TI_SCI_PD_EXCLUSIVE>;	/* OLDI1 */
     		clocks = <&k3_clks 186 6>,
    -			 <&dss0_vp1_clk>,
    -			 <&k3_clks 186 2>;
    -		clock-names = "fck", "vp1", "vp2";
    +			 <&dss0_vp1_clk>;
    +		clock-names = "fck", "vp1";
     		interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
     		ti,clk-ctrl = <&dss_clk_ctrl>;
     		status = "disabled";
    @@ -1202,31 +1201,16 @@ dss1: dss@30220000 {
     		      <0x00 0x30221000 0x00 0x1000>; /* common1 */
     		reg-names = "common", "vidl1", "vid",
     			    "ovr1", "ovr2", "vp1", "vp2", "common1";
    -		power-domains = <&k3_pds 232 TI_SCI_PD_EXCLUSIVE>,	/* DSS0 */
    +		power-domains = <&k3_pds 232 TI_SCI_PD_EXCLUSIVE>,	/* DSS1 */
     				<&k3_pds 244 TI_SCI_PD_EXCLUSIVE>;	/* OLDI1 */
     		clocks = <&k3_clks 232 8>,
    -			 <&dss1_vp1_clk>,
    +			 <&k3_clks 232 0>,
     			 <&k3_clks 232 4>;
     		clock-names = "fck", "vp1", "vp2";
     		interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
     		ti,clk-ctrl = <&dss_clk_ctrl>;
     		status = "disabled";
     
    -		oldi-transmitters {
    -			#address-cells = <1>;
    -			#size-cells = <0>;
    -
    -			oldi1_dss1: oldi@1 {
    -				reg = <1>;
    -				clocks = <&k3_clks 232 0>;
    -				clock-names = "serial";
    -				ti,oldi-io-ctrl = <&dss_oldi_io_ctrl>;
    -				status = "disabled";
    -
    -				oldi1_dss1_ports: ports {
    -				};
    -			};
    -		};
     
     		dss1_ports: ports {
     			#address-cells = <1>;
    diff --git a/arch/arm64/boot/dts/ti/k3-am62p.dtsi b/arch/arm64/boot/dts/ti/k3-am62p.dtsi
    index 6f1125186..1555eea3f 100644
    --- a/arch/arm64/boot/dts/ti/k3-am62p.dtsi
    +++ b/arch/arm64/boot/dts/ti/k3-am62p.dtsi
    @@ -156,14 +156,6 @@ dss0_vp1_clk: clock-divider-oldi-dss0 {
     		clock-mult = <1>;
     	};
     
    -	dss1_vp1_clk: clock-divider-oldi-dss1 {
    -		compatible = "fixed-factor-clock";
    -		clocks = <&k3_clks 232 0>;
    -		#clock-cells = <0>;
    -		clock-div = <7>;
    -		clock-mult = <1>;
    -	};
    -
     	#include "k3-am62p-j722s-common-thermal.dtsi"
     };
     
    diff --git a/arch/arm64/boot/dts/ti/k3-am62p5-sk.dts b/arch/arm64/boot/dts/ti/k3-am62p5-sk.dts
    index 740c25d92..aa12ab9ab 100644
    --- a/arch/arm64/boot/dts/ti/k3-am62p5-sk.dts
    +++ b/arch/arm64/boot/dts/ti/k3-am62p5-sk.dts
    @@ -41,10 +41,11 @@ chosen {
     
     		framebuffer0: framebuffer@0 {
     			compatible = "simple-framebuffer";
    -			power-domains = <&k3_pds 186 TI_SCI_PD_EXCLUSIVE>;
    +			power-domains = <&k3_pds 186 TI_SCI_PD_EXCLUSIVE>,
    +							<&k3_pds 232 TI_SCI_PD_EXCLUSIVE>;
     			clocks = <&k3_clks 186 6>,
     				 <&dss0_vp1_clk>,
    -				 <&k3_clks 186 2>;
    +				 <&k3_clks 232 0>;
     			display = <&dss0>;
     			status = "disabled";
     		};
    @@ -160,6 +161,16 @@ vddshv_sdio: regulator-3 {
     		bootph-all;
     	};
     
    +	panel {
    +		compatible = "newhaven,nhd-4.3-480272ef-atxl";
    +		port {
    +			panel_in: endpoint {
    +					remote-endpoint = <&dss1_dpi0_out>;
    +			};
    +		};
    +	};
    +	
    +
     	leds {
     		compatible = "gpio-leds";
     		pinctrl-names = "default";
    @@ -219,6 +230,7 @@ sound_master: simple-audio-card,codec {
     	};
     
     	hdmi0: connector-hdmi {
    +		status = "disabled";
     		compatible = "hdmi-connector";
     		label = "hdmi";
     		type = "a";
    @@ -575,6 +587,7 @@ exp2: gpio@23 {
     
     	sii9022: bridge-hdmi@3b {
     		compatible = "sil,sii9022";
    +		status = "disabled";
     		reg = <0x3b>;
     		interrupt-parent = <&exp1>;
     		interrupts = <16 IRQ_TYPE_EDGE_FALLING>;
    @@ -594,7 +607,7 @@ port@0 {
     				reg = <0>;
     
     				sii9022_in: endpoint {
    -					remote-endpoint = <&dss0_dpi1_out>;
    +					remote-endpoint = <&dss1_dpi0_out>;
     				};
     			};
     
    @@ -884,17 +897,28 @@ &dss_oldi_io_ctrl {
     &dss0 {
     	bootph-all;
     	status = "okay";
    -	pinctrl-names = "default";
    -	pinctrl-0 = <&main_dpi_pins_default>;
     };
     
     &dss0_ports {
     	/* DSS0-VP2: DPI/HDMI Output */
    -	hdmi0_dss: port@1 {
    -		reg = <1>;
    +};
    +
    +&dss1 {
    +	bootph-all;
    +	status = "okay";
    +	pinctrl-names = "default";
    +	pinctrl-0 = <&main_dpi_pins_default>;
    +	assigned-clocks = <&k3_clks 241 0>, <&k3_clks 245 0>;
    +	assigned-clock-parents = <&k3_clks 241 2>, <&k3_clks 245 2>;
    +};
    +
    +&dss1_ports {
    +	/* DSS1-VP0: DPI/HDMI Output */
    +	hdmi0_dss: port@0 {
    +		reg = <0>;
     
    -		dss0_dpi1_out: endpoint {
    -			remote-endpoint = <&sii9022_in>;
    +		dss1_dpi0_out: endpoint {
    +			remote-endpoint = <&panel_in>;
     		};
     	};
     };
    diff --git a/drivers/gpu/drm/tidss/tidss_dispc.c b/drivers/gpu/drm/tidss/tidss_dispc.c
    index e0adf8fe4..3274f809b 100644
    --- a/drivers/gpu/drm/tidss/tidss_dispc.c
    +++ b/drivers/gpu/drm/tidss/tidss_dispc.c
    @@ -493,7 +493,7 @@ const struct dispc_features dispc_am62p52_feats = {
     	.vp_name = { "vp1", "vp2" },
     	.ovr_name = { "ovr1", "ovr2" },
     	.vpclk_name =  { "vp1", "vp2" },
    -	.vp_bus_type = { DISPC_VP_INTERNAL, DISPC_VP_INTERNAL },
    +	.vp_bus_type = { DISPC_VP_DPI, DISPC_VP_INTERNAL },
     
     	.vp_feat = { .color = {
     			.has_ctm = true,


    您应该会看到以下日志:
    root@am62pxx-evm:~# kmsprint --device=/dev/dri/by-path/platform-30220000.dss-card
    Connector 0 (41) DPI-1 (connected)
      Encoder 0 (40) DPI
        Crtc 0 (39) 480x272@59.94 9.000 480/2/41/2/- 272/2/10/2/- 60 (59.94) P|D
          Plane 0 (32) fb-id: 49 (crtcs: 0) 0,0 480x272 -> 0,0 480x272 (AR12 AB12 RA12 RG16 BG16 AR15 AB15 AR24 AB24 RA24 BA24 RG24 BG24 AR30 AB30 XR12 XB12 RX12 XR15 XB15 XR24 XB24 RX24 BX24 XR30 XB30 YUYV UYVY NV12)
            FB 49 480x272 XR24
    root@am62pxx-evm:~#
    root@am62pxx-evm:~# kmstest --device=/dev/dri/by-path/platform-30220000.dss-card
    Connector 0/@41: DPI-1
      Crtc 0/@39: 480x272@59.94 9.000 480/2/41/2/- 272/2/10/2/- 60 (59.94) P|D
      Plane 0/@32: 0,0-480x272
    press enter to exit
    root@am62pxx-evm:~#
    root@am62pxx-evm:~# k3conf dump clock 241
    |------------------------------------------------------------------------------------------------|
    | VERSION INFO                                                                                   |
    |------------------------------------------------------------------------------------------------|
    | K3CONF           | (version 0.4-nogit built Thu Dec 04 18:37:59 UTC 2025)                      |
    | SoC              | AM62Px SR1.0                                                                |
    | SoC identifiers  | [0x6a5db56e] 0x352ed Func-Safe Secure 'U' Grade -40 C to 125 C AMH Package  |
    | SYSFW            | ABI: 4.0 (firmware version 0x000b '11.2.5--v11.02.05 (Fancy Rat))')         |
    | DM ABI Info      | 3.0                                                                         |
    | DM F/w rev       | 11.2.5                                                                      |
    | DM Component rev | RM/PM HAL:'v11.02.05' SCI_SERV:'MSDK.11.02.00.11'                           |
    | F/w Capabilities | 0x7f7: GEN DEEP_SLP MCU_ONLY PART_IO DM_MGD_LPM IO+DDR_RET IO_ISO DM-SPLT   |
    |------------------------------------------------------------------------------------------------|
    
    |--------------------------------------------------------------------------------------------------------------------------------------|
    | Device ID | Clock ID | Clock Name                                                                | Status          | Clock Frequency |
    |--------------------------------------------------------------------------------------------------------------------------------------|
    |   241     |     0    | DEV_DSS1_DPI0_PLLSEL_DEV_VD_CLK                                           | CLK_STATE_READY | 9000000         |
    |   241     |     1    | DEV_DSS1_DPI0_PLLSEL_DEV_VD_CLK_PARENT_HSDIV0_16FFT_MAIN_18_HSDIVOUT0_CLK | CLK_STATE_READY | 300000000       |
    |   241     |     2    | DEV_DSS1_DPI0_PLLSEL_DEV_VD_CLK_PARENT_HSDIV0_16FFT_MAIN_17_HSDIVOUT0_CLK | CLK_STATE_READY | 9000000         |
    |--------------------------------------------------------------------------------------------------------------------------------------|

    运行 kmstest 时应该会看到时钟输出。 您可以更换与您自己的面板兼容的面板。 举个例子。

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

    你好 Divyansh

    我对 k3-am62p5-sk.dts 的补丁有两个问题。

    问题 1:显示=<&dss0>;定义
    以下属性导致构建错误、因为未定义显示:

    显示=<&dss0>;

    没有相应的定义或别名可供显示。

    是否可以删除此属性?
    还是应该添加显示别名并保留该属性?
    补丁上下文:

    [code]
    /* before */
    chosen {
     stdout-path = &main_uart0;
    
     framebuffer0: framebuffer@0 {
      compatible = "simple-framebuffer";
      status = "disabled";
     };
    };
    
    /* after */
    framebuffer0: framebuffer@0 {
      compatible = "simple-framebuffer";
      /* ADD TI Support start */
      power-domains = <&k3_pds 186 TI_SCI_PD_EXCLUSIVE>,
      <&k3_pds 232 TI_SCI_PD_EXCLUSIVE>;
      clocks = <&k3_clks 186 6>,
      <&dss0_vp1_clk>,
      <&k3_clks 232 0>;
      /* display = <&dss0>; */
      /* ADD TI Support end */
      status = "disabled";
    };
    [/code]


    请告知哪种方法正确。

    问题 2:面板驱动程序和设备树配置
    我检查了以下源代码:

    drivers/GPU/DRM/面板

    但找不到与相对应的面板驱动器
    NHD-4.3-480272ef-atxl。

    目前、显示服务使用以下通用 DPI 面板定义正确启动。

    这种配置现在是否可以接受?

    [code]
    panel_lcd: panel {
      compatible = "panel-dpi";
      status = "okay";
    
      bus-format = <0x1017>; /* RGB888_1X24 */
      bus-flags = <0x6>;
      bpc = <8>;
    
      panel-timing {
       clock-frequency = <7000000>; /* 7MHz */
    
       hactive = <320>;
       hfront-porch = <20>;
       hsync-len = <4>; /* dummy in DE mode */
       hback-porch = <28>;
       vactive = <240>;
       vfront-porch = <8>;
       vsync-len = <4>; /* dummy in DE mode */
       vback-porch = <12>;
    
       /* DE mode */
       de-active = <1>;
       /* HSYNC / VSYNC : Active Low */
       hsync-active = <0>;
       vsync-active = <0>;
       /* Pixel Clock : Rising Edge */
       pixelclk-active = <1>;
      };
    
      port {
       panel_in: endpoint {
         reg = <0>;
         remote-endpoint = <&dss1_dpi0_out>;
         /* RGB888 / 24bit */
         bus-type = <2>;
         bus-format = <0x1017>;
         data-lines = <24>;
         bus-flags = <0x6>;
         bpc = <8>;
       };
      };
    };
    [/code]


    其他变化
    除上述要点外、我们还计划合并 DTS 更改、如下所示:

    [code]
    &oldi0_dss0 {
      status = "disabled";
    };
    
    &oldi1_dss0 {
      status = "disabled";
    };
    
    /* &dss0 { status = "disabled"; }; */
    &dss0 {
      bootph-all;
      status = "okay";
    };
    
    &dss0_ports {
      /* DSS0-VP2: DPI/HDMI Output */
    };
    
    &dss1 {
     bootph-all;
     status = "okay";
     pinctrl-names = "default";
     pinctrl-0 = <&main_dpi_pins_default>;
    
     assigned-clocks = <&k3_clks 241 0>, /* DSS1 VP0 */
     <&k3_clks 245 0>; /* DPI */
    
     assigned-clock-parents = <&k3_clks 241 2>, /* parent of 241 */
     <&k3_clks 245 2>; /* parent of 245 */
    
     /* assigned-clock-rates = <49000000>, <0>; */ /* clk 7M */
    };
    
    /* Added because port definition was missing */
    &dss1_ports {
      /* DSS1-VP0: DPI/HDMI Output */
      hdmi0_dss: port@0 {
       reg = <0>;
       dss1_dpi0_out: endpoint {
       remote-endpoint = <&panel_in>;
       bus-type = <2>; /* DPI */
       bus-format = <0x1017>;
       bus-flags = <0x6>;
       data-lines = <24>;
      };
     };
    };
    [/code]


    您能否回顾并确认此方法是否正确?
    感谢您的支持。

    此致、
    文之

    你好 Divyansh-san

    我使用 panel-dpi 检查时钟的行为,但时钟没有改变,并保持高频率。

    我正在使用的器件  TI-PROCESSOR-SDK-LINUX-RT-am62pxx-EVM-11.00.09.04  引导加载程序。 您能告诉我您之前提到的面板驱动程序源代码包含在哪个 SDK 中吗?

    由于我希望保持基准不变、因此我的计划是仅采用相关的源代码、根据需要修改 Makefile、并在本地应用此修复程序。 如果您能确认这一点、我将不胜感激。

    [log]
    
    root@am62pxx-evm:~# dmesg | grep dss
    [ 0.074596] /bus@f0000/dss@30220000: Fixed dependency cycle(s) with /panel
    [ 0.074673] /panel: Fixed dependency cycle(s) with /bus@f0000/dss@30220000
    [ 0.309327] tidss 30200000.dss: dispc_init: Failed to get clk vp2:-2
    [ 0.309342] tidss 30200000.dss: failed to initialize dispc: -2
    [ 0.309639] tidss 30200000.dss: probe with driver tidss failed with error -2
    [ 0.311502] tidss 30220000.dss: TIDSS DEBUG: start probing port 0
    [ 0.311529] tidss 30220000.dss: TIDSS DEBUG: port 0 -> panel=00000000ab50afc5 bridge=0000000000000000
    [ 0.311538] tidss 30220000.dss: TIDSS DEBUG: setting up panel for port 0
    [ 0.311543] tidss 30220000.dss: TIDSS DEBUG: port 0 connector_type panel=17 expected=17
    [ 0.311555] tidss 30220000.dss: TIDSS DEBUG: panel bridge created for port 0
    [ 0.311559] tidss 30220000.dss: TIDSS DEBUG: port 0 successfully added
    [ 0.311564] tidss 30220000.dss: TIDSS DEBUG: start probing port 1
    [ 0.311570] tidss 30220000.dss: TIDSS DEBUG: port 1 -> no panel/bridge (ENODEV)
    [ 0.312592] [drm] Initialized tidss 1.0.0 for 30220000.dss on minor 0
    [ 1.894570] tidss 30220000.dss: [drm] fb0: tidssdrmfb frame buffer device
    root@am62pxx-evm:~# k3conf dump clock 241
    |------------------------------------------------------------------------------|
    | VERSION INFO |
    |------------------------------------------------------------------------------|
    | K3CONF | (version 0.3-nogit built Wed Mar 04 01:43:00 UTC 2026) |
    | SoC | AM62Px SR1.0 |
    | SYSFW | ABI: 4.0 (firmware version 0x000b '11.0.7--v11.00.07 (Fancy Rat))') |
    |------------------------------------------------------------------------------|
    
    |--------------------------------------------------------------------------------------------------------------------------------------|
    | Device ID | Clock ID | Clock Name | Status | Clock Frequency |
    |--------------------------------------------------------------------------------------------------------------------------------------|
    | 241 | 0 | DEV_DSS1_DPI0_PLLSEL_DEV_VD_CLK | CLK_STATE_READY | 300000000 |
    | 241 | 1 | DEV_DSS1_DPI0_PLLSEL_DEV_VD_CLK_PARENT_HSDIV0_16FFT_MAIN_18_HSDIVOUT0_CLK | CLK_STATE_READY | 300000000 |
    | 241 | 2 | DEV_DSS1_DPI0_PLLSEL_DEV_VD_CLK_PARENT_HSDIV0_16FFT_MAIN_17_HSDIVOUT0_CLK | CLK_STATE_READY | 300000000 |
    |--------------------------------------------------------------------------------------------------------------------------------------|
    
    root@am62pxx-evm:~#
    
    [/log]

    此致、
    文之

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

    尊敬的 Fumiyuki-San:
    首先,我会要求您使用代码块(不是[/代码]),因为我已经通过图片显示了几个帖子回来.
    如果没有、此 E2E 主题页面的长度将会非常长。

    另外、我看到您通过编辑最后一个回复来添加一个新回复。 请在将来创建一个新的回复、因为很容易错过此回复。

    修补程序是在 11.02 上制作的、但也应该可以在 11.00 上使用。

    或者我们是否应该添加显示的别名并保留此属性?
    [/报价]

    simple-framebuffer YAML 文件将其指定为正确的属性。 但是、如果您不在 U-Boot 中使用启动界面、则可以完全删除简单帧缓冲区节点。

    、但找不到与对应的面板驱动程序
    NHD-4.3-480272ef-atxl.

    它定义为: drivers/GPU/DRM/panel/panel-simple.c

    [引述 userid=“430947" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1621371/am62p-am62px-dss-dpi-rgb-parallel-support-in-linux-tidss/6258294

    我使用 panel-dpi 检查时钟的行为,但时钟没有改变,并保持高频率。

    [/报价]

    你可以只使用 11.00 应用的共享补丁来尝试,分享你所看到的 git diff 吗?


    请再次使用代码块:

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

    尊敬的 Divyansh-san:

    我与 TI 共享了以下日志、并在将兼容字符串更改为:

    compatible = "newhaven,nhd-4.3-480272ef-atxl";

    根据结果、时钟频率似乎实际上在变化。
    对不起之前的困惑—这是我的误解。 修复程序似乎已集成。

    不过、  320x240 配置仍被忽略 、面板被检测和驱动为  480x272

    请您告知我们应如何正确修改面板尺寸?
    是否应在设备树、中 panel-simple.c或其他位置修复此问题?

    现在、我将继续使用当前设置验证行为。

    以下是相关的日志和输出:

    # dmesg | grep dss [ 0.074360] /bus@f0000/dss@30220000: Fixed dependency cycle(s) with /panel [ 0.310451] tidss 30220000.dss: TIDSS DEBUG: panel bridge created for port 0 [ 0.311371] [drm] Initialized tidss 1.0.0 for 30220000.dss on minor 0 [ 2.106059] tidss 30220000.dss: [drm] fb0: tidssdrmfb frame buffer device
    # k3conf dump clock 241 DEV_DSS1_DPI0_PLLSEL_DEV_VD_CLK : 9000000 Hz DEV_DSS1_DPI0_PLLSEL_DEV_VD_CLK_PARENT : 300000000 Hz
    # modetest -M tidss -c Connectors: 41 connected DPI-1 95x54 mm modes: 480x272 59.94 Hz (preferred)
    # modetest -M tidss -p CRTC: size: 480x272

    感谢您的支持。

    此致、
    文之

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

    尊敬的 Fumiyuki-San:
    很棒!
    现在、您可以尝试根据 320x240 的时序参数在 panel-simple.c 中修改以下内容吗?

    static const struct drm_display_mode newhaven_nhd_43_480272ef_atxl_mode = {
    	.clock = 9000,
    	.hdisplay = 480,
    	.hsync_start = 480 + 2,
    	.hsync_end = 480 + 2 + 41,
    	.htotal = 480 + 2 + 41 + 2,
    	.vdisplay = 272,
    	.vsync_start = 272 + 2,
    	.vsync_end = 272 + 2 + 10,
    	.vtotal = 272 + 2 + 10 + 2,
    	.flags = DRM_MODE_FLAG_NVSYNC | DRM_MODE_FLAG_NHSYNC,
    };

    请在此处使用 7MHz 时钟 (.clock=7000) 并分享结果。

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

    如果需要、请使用:

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

    尊敬的 Divyansh-san:

    非常感谢您的支持。

    由于其他承诺、我下周无法在星期一上查看。 我将修改代码  星期二、3 月 10 日 、并与您分享结果。

    此致、
    文之

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

    尊敬的 Divyansh-san:

    我正在使用的器件  AM62x(tidss/DSS DPI 输出)  和 A  320x240 RGB LCD 面板、WF35XSWACDNN0#(WF35XSWACDNN0- Winstar)

    当前状态:

    • 正确检测到 DPI 连接器并报告为 已连接
    • DRM/KMS 配置显示正确。
    • 像素时钟可以配置、当前设置为  7MHz
    • modetest (原子模式)成功配置了连接器、CRTC 和 PLANE。
    • 已连接帧缓冲区并处于活动状态。
    • 背光灯亮起

    但是、显示屏仍保持不变  完全黑色 、并且不显示任何图像。


    显示配置:

    • 分辨率:  320 x 240
    • 像素时钟:  7MHz
    • 接口:RGB(SYNC+DE 模式)
    • HSYNC 极性:  
    • VSYNC 极性:  
    • 德语:  高电平有效
    • DCLK 极性:  负(像素数据在下降沿锁存)

    DRM 配置:

    .flags = DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC; .bus_flags = DRM_BUS_FLAG_DE_HIGH | DRM_BUS_FLAG_PIXDATA_DRIVE_NEGEDGE | DRM_BUS_FLAG_SYNC_DRIVE_NEGEDGE;

    LCD 面板信息 (WF35XSWACDNN0#):

    • 分辨率:  320 x 240
    • 具有 DE、HSYNC、VSYNC 和 DCLK 的 RGB 接口
    • 支持这两者  DCLK 正极性和负极性
    • Hsync:  低电平有效
    • Vsync:  低电平有效
    • 德语:  高电平有效

    数据表中的时序规格汇总:

    DCLK 负极性模式:

    • 像素数据 (DIN) 在上采样  保持一致  不可预测性
    • HSYNC 和 VSYNC  低电平有效
    • HSYNC/VSYNC 时序以为基准  DCLK 下降沿
    • 建立和保持时间 (Tdsu、Tdhd、Tdest、Tdehd、thst、 Thhd、Tvst、Tvhd) 是相对于下降沿定义的
    • DE 高电平有效期间从“第一个数据“到“最后一个数据“的连续像素数据传输

    DCLK 正极性模式:

    • 像素数据 (DIN) 在上采样  发送到 DOUT 上  不可预测性
    • HSYNC 和 VSYNC 保持不变  低电平有效
    • DE 仍然存在  高电平有效
    • 时序参数是相对于 DCLK 的上升沿定义的

    问题:

    鉴于这种配置和 LCD 时序要求、我想问:

    1. 使用  AM62x DSS DPI 输出完全支持 DCLK 下降沿的像素数据和同步信号对齐
    2. 是否存在 DPI 输出有效假定的任何已知限制或内部行为  上升沿采样 、即使通过 DRM 总线标志配置了负边极性?
    3. 是否有任何其他 DPI 或 DSS 配置要求(对于 DE 模式面板)可能导致黑屏、即使在 DRM/KMS 和 modetest 报告正确的配置时也是如此?

    对于是否存在配置问题或 IP 限制、我们非常希望提供任何建议。

    感谢您的支持。

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

     尊敬的 Fumiyuki-San:

    我已更新面板时序以使用 7.0MHz 像素时钟、并将首先使用仅失效模式(HSYNC/VSYNC 被视为虚拟)验证输出。 更新后的参数为

    在回答您的问题之前、您的小组是否可以支持高 fps?  由于您最初的要求是 60fps、并且 SoC 的时钟过低、因此您尝试了 7MHz、但大多数 DPI 面板对其支持的 fps 有严格限制、这可能是您的屏幕黑屏的原因。
    如果可能、您能否共享面板数据表(如果它确实支持 70fps - 75fps)?

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

    由于电路板上还暴露了 DPI 通道、因此您始终可以探测 PCLK、HSYNC、VSYNC 和 DE 线路、以检查 这些信号是否 根据面板规格正确发出、或者是否需要极性配置。

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

    尊敬的 Divyansh-san:

    当我尝试上传数据表时、将显示以下消息、上传失败:
    “我们很抱歉、但由于出现意外问题、您请求的页面无法使用。 我们已经记录了该问题、因此站点管理员可以解决该问题。“

    因此、我将联系支持人员、让他们帮助发送数据表。

    最好的考虑

    文之  

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

    尊敬的 Divyansh-san:

     我确定了数据表的 URL(如下所示)、并将其附加到此电子邮件中。 请仔细查看。

    https://datasheet4u.com/pdf-down/W/F/3/WF35XSWACDNN0-Winstar.pdf

    此致、

    文之

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

    尊敬的 Fumiyuki-San:
    感谢您分享数据表。 根据您的数据表、它可支持高达 8MHz 的速率、但时序参数会发生变化。 最好将 8MHz 及其指定的参数一同使用:

    DRM_BUS_FLAG_DE_HIGH

    根据您的数据表、该标志是正确的。

    [报价 userid=“430947" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1621371/am62p-am62px-dss-dpi-rgb-parallel-support-in-linux-tidss/6262083 ].flags = DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC;.BUS_FLAGS = DRM_BUS_FLAG_DE_HIGH | DRM_BUS_FLAG_PIXDATA_DRIVE_NEGEDGE | DRM_BUS_FLAG_SYNC_DRIVE_NEGEDGE

    根据时序图、HSYNC、VSYNC 可能也为高电平有效。 似乎有一种方法可以在此面板中设置极性 (VDPOL、HDPOL)。
    如果不确定、我建议尝试对这些标志进行多个排列:例如:{N (H/V) 与 NEGEDGE 同步}或{N (H/V) 与 POSedge 同步}或{P (H/V) 与 NEGEDGE 同步}或{P (H/V) 与 POSedge 同步}。

    查看此信息的最佳方法是探测物理 DE、HSYNC、VSYNC 线、以验证输出是否符合面板预期。

    以下寄存器 (0x3020b04c) 也可能会有所帮助:

    是否存在 DPI 输出有效假定的任何已知限制或内部行为  上升沿采样 、即使通过 DRM 总线标志配置了负边极性?


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

    尊敬的 Divyansh-san:

    感谢您发送编修。 我将尝试各种配置、并希望在获得积极成果后分享结果。 我还将回顾并核实您强调的要点。

    此致、

    文之

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

    尊敬的 Fumiyuki-San:
    我注意到这些补丁包含在最新的 11.02 SDK 中、但由于您使用的是 11.00、因此需要单独应用这些补丁、如果有以下帮助、请告诉我:
    e2e.ti.com/.../0001_2D00_FROMLIST_2D00_drm_2D00_tidss_2D00_Fix_2D00_sampling_2D00_edge_2D00_configuration.patch
    e2e.ti.com/.../0002_2D00_PENDING_2D00_arm64_2D00_dts_2D00_ti_2D00_k3_2D00_am62p_2D00_j722s_2D00_common_2D00_main_2D00_Add_2D00_.patch

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

    尊敬的 Divyansh-san:

    使用您共享的原始配置、面板尺寸与我们的目标面板不同、但使用裁剪来完全显示图像。

    修改面板尺寸、将时钟降低到 8MHz 、并调整分辨率和后沿参数后、显示变为黑色、问题仍未解决。

    我们相信这是我们一方与时间有关的问题、因此我们将继续关闭此 TT。

    非常感谢您的帮助。