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/DRA722:如何在 DRA722启用 Vout2

Guru**** 2595805 points
Other Parts Discussed in Thread: DRA722, DRA745

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/581829/linux-dra722-how-to-enable-vout2-at-dra722

器件型号:DRA722
主题中讨论的其他器件: DRA745DRA72

工具/软件:Linux

您好:

现在、我们要更改为使用 DRA722 VIN2A_XX 作为 VOUT2来连接 LCD、但实际上任何 VOUT2引脚中都没有输出。

但 我们发现 DRA745 VOUT3可以正常工作。

这个问题与 e2e.ti.com/.../577167相同

1) 1) mux_data.h

将 VIN2A_XX 配置为 VOUT2

 omapconf 转储0x4a003554 0x4a0035C4  

|------------------------- |
|地址(十六进制)|数据(十六进制)|
|------------------------- |
| 0x4A003554 | 0x00040104 |
| 0x4A003558 | 0x00040104 |
| 0x4A00355C | 0x00050104 |
| 0x4A003560 | 0x00040104 |
| 0x4A003564 | 0x00040104 |
| 0x4A003568 | 0x00050104 |
| 0x4A00356C | 0x00050104 |
| 0x4A003570 | 0x00050104 |
| 0x4A00357| 0x00050104 |

2) dra7.dts

DSS{
端口{
#address-cells =<1>;
#size-cells =<0>;

port@lcd2{
reg =<1>;

LVDS_OUT:端点{
远程端点=<&LVDS_IN>;
数据线=<24>;
};
};
};
};

谢谢。

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

    您使用的 SDK/Linux 版本是什么?

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

    您好:

    SDK:TI-glsdk_dra7xx-evm_7_04_00_03

    Linux:3.14

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

    我将向 DSS 专家提出您的问题。

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

    我将研究该问题并作出回应。

    是否有理由继续使用3.14内核? 3.14版的最后一个版本是一年前发布的。 我们现在提供了基于4.4内核的版本。

    processors.wiki.ti.com/.../Category:Processor_SDK_Linux_Automotive

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

    您好!

    我们在2015年开发了这个项目、我的项目要求有两个显示屏幕、可以在 dra745 CPU 上使用3.14内核启用 Vout2、但在 dra722上没有工作。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    这可能是计时问题。 例如、DRA722没有 VIDEO2 DPLL。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    您可以在目标上使用以下脚本并向我们发送输出吗? 此脚本将打印 DSS 时钟方案。

    git.ti.com/.../dss_clockdumps.sh

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

    下面仅使用 Vout2:


    =========================== DSS 时钟脚本================================
    转储 DSS 的内部时钟和多路复用器

    CTRL_CORE_DSS_PLL_CONTROL (0x4a002538)= 0x0000028E
    视频1 PLL:已启用
    VIDEO2 PLL:已禁用
    HDMI PLL:已禁用
    DSI1_A_CLK 多路复用器:DPLL Video1
    DSI1_B_CLK 多路复用器:DPLL Video1
    DSI1_C_CLK 多路复用器:DPLL Video2

    DSS_CTRL (0x58000040)= 0x00001000
    2:LCD1时钟开关:DSS 时钟
    3:LCD2时钟开关:DSI1_B_CLK
    10:LCD3时钟开关:DSS 时钟
    1:func clk 开关:dss clk
    13:DPI1输出:HDMI

    ===================================================================================================
    DPLL 视频1的寄存器转储
    |------------------------- |
    |地址(十六进制)|数据(十六进制)|
    |------------------------- |
    | 0x58004300 | 0x00000018 |
    | 0x58004304 | 0x00003283 |
    | 0x58004308 | 0x00000000 |
    | 0x5800430C | 0x00E10806 |
    | 0x58004310 | 0x00616008 |
    | 0x58004314 | 0x00000000 |
    | 0x58004318 | 0x00000005 |
    | 0x5800431C | 0x0C802325 |
    | 0x58004320 | 0x00000000 |
    |------------------------- |

    DPLL 视频1的详细信息
    PLL 状态:已锁定
    M4 hsdiv(1):活动
    M5 hsdiv(2):未激活
    M6 hsdiv(3):未激活
    M7 hsdiv(4):未激活

    PLL_REGM = 132
    PLL_REGN = 3
    M4 DIV = 7
    M6 DIV = 0
    M7 DIV = 0

    时钟计算(DPLL 视频1)
    SYSCLK = 20000000
    DCO clk = SYSCLK * 2 * REGM /(REGN + 1)= 1320000000
    M4clk (clkcout1)= DCO clk /(M4 DIV + 1)= 165000000
    M6clk (clkcout1)= DCO clk /(M6 DIV + 1)= 0
    M7clk (clkcout1)= DCO clk /(M7 DIV + 1)= 0

    ===================================================================================================
    多路复用器的时钟 O/P
    错误:I2C 读取失败
    错误:I2C 读取失败
    错误:I2C 读取失败
    omapconf: powerdm_deinit():不支持 CPU!!!
    omapconf: clockdm_deinit():不支持 CPU!!!
    DSI1_A_CLK:165000000
    DSI1_B_CLK:0
    DSI1_C_CLK:0

    2:LCD1时钟:192000000
    3:LCD2时钟:0
    10:LCD3时钟:192000000
    1:func clk:192000000

    LCD1逻辑时钟(/ 4):48000000 pix 时钟(/ 1):48000000
    LCD2逻辑 clk (/ 1):0 pix clk (/ 5):0
    LCD3逻辑时钟(/ 4):48000000 pix 时钟(/ 1):48000000

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

    下面仅使用 vout1:

    =========================== DSS 时钟脚本================================
    转储 DSS 的内部时钟和多路复用器

    CTRL_CORE_DSS_PLL_CONTROL (0x4a002538)= 0x000002A6
    视频1 PLL:已启用
    VIDEO2 PLL:已禁用
    HDMI PLL:已禁用
    DSI1_A_CLK 多路复用器:DPLL Video1
    DSI1_B_CLK 多路复用器:DPLL 视频2.
    DSI1_C_CLK 多路复用器:DPLL Video2

    DSS_CTRL (0x58000040)= 0x00010001
    2:LCD1时钟开关:DSI1_A_CLK
    3:LCD2时钟开关:DSS 时钟
    10:LCD3时钟开关:DSS 时钟
    1:func clk 开关:dss clk
    13:DPI1输出:LCD1

    ===================================================================================================
    DPLL 视频1的寄存器转储
    |------------------------- |
    |地址(十六进制)|数据(十六进制)|
    |------------------------- |
    | 0x58004300 | 0x00000018 |
    | 0x58004304 | 0x00003283 |
    | 0x58004308 | 0x00000000 |
    | 0x5800430C | 0x00E10806 |
    | 0x58004310 | 0x00616008 |
    | 0x58004314 | 0x00000000 |
    | 0x58004318 | 0x00000005 |
    | 0x5800431C | 0x0C802325 |
    | 0x58004320 | 0x00000000 |
    |------------------------- |

    DPLL 视频1的详细信息
    PLL 状态:已锁定
    M4 hsdiv(1):活动
    M5 hsdiv(2):未激活
    M6 hsdiv(3):未激活
    M7 hsdiv(4):未激活

    PLL_REGM = 132
    PLL_REGN = 3
    M4 DIV = 7
    M6 DIV = 0
    M7 DIV = 0

    时钟计算(DPLL 视频1)
    SYSCLK = 20000000
    DCO clk = SYSCLK * 2 * REGM /(REGN + 1)= 1320000000
    M4clk (clkcout1)= DCO clk /(M4 DIV + 1)= 165000000
    M6clk (clkcout1)= DCO clk /(M6 DIV + 1)= 0
    M7clk (clkcout1)= DCO clk /(M7 DIV + 1)= 0

    ===================================================================================================
    多路复用器的时钟 O/P
    错误:I2C 读取失败
    错误:I2C 读取失败
    错误:I2C 读取失败
    omapconf: powerdm_deinit():不支持 CPU!!!
    omapconf: clockdm_deinit():不支持 CPU!!!
    DSI1_A_CLK:165000000
    DSI1_B_CLK:0
    DSI1_C_CLK:0

    2:LCD1时钟:165000000
    3:LCD2时钟:192000000
    10:LCD3时钟:192000000
    1:func clk:192000000

    LCD1逻辑 clk (/ 1):165000000 pix clk (/ 5):33000000
    LCD2逻辑时钟(/ 4):48000000 pix 时钟(/ 1):48000000
    LCD3逻辑时钟(/ 4):48000000 pix 时钟(/ 1):48000000

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

    您好!

    我们发现 dmesg 中有几个"omapdrm omapdrm.0:omap_crtc_flush()超时"。

    e2e.ti.com/.../VOUT2_5F00_dmesg_5F00_error.txt

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

    在时钟转储中、未设置视频 PLL 上所需的分频器。 让我检查一下并返回给您。

    您的用例是什么? 您是否驱动连接到 VOUT1和 VOUT2的两个相同显示屏?

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

    是的、我们将驱动连接到 VOUT1和 VOUT2的两个相同显示屏、但它不起作用。
    如果我们设置 omapdrm.num_crtc=2、VOUT1也没有输出。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    是的、我们将驱动连接到 VOUT1和 VOUT2的两个相同显示屏、但它不起作用。
    如果我们设置 omapdrm.num_crtc=2、VOUT1也没有输出。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    是的、我们将驱动连接到 VOUT1和 VOUT2的两个相同显示屏、但它不起作用。
    如果我们设置 omapdrm.num_crtc=2、VOUT1也没有输出。

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

    您好!

    下面是一组补丁、用于在 DRA72x 上同时启用 VOUT2和 VOUT1。 通过在 LCD 上放置 VOUT1和 VOUT2输出、这些仅在 DRA72x EVM 上进行了完整性测试。

    1、 review.omapzoom.org/37626 、omapdss:pll:修复编写 m6和 m7 divs 的问题
    2, review.omapzoom.org/37627 ,tmp:fix,用于启用 VOUT1 + VOUT2的 LCD1和 LCD2
    3、 review.omapzoom.org/38278 、hack:始终启用 M4和 M6分频器。
    4、 review.omapzoom.org/38279 、dra72:dts: enable vout2

    请使用这些作为参考并在内核树上进行必要的更改、以同时启用 VOUT2和 VOUT1。

    这些只是内核补丁。 您需要在 u-boot 中进行所需的引脚多路复用更改。

    此致、
    Venkat

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

    e2e.ti.com/.../dss_5F00_config.c

    e2e.ti.com/.../LCD1_2600_LCD2-MODETEST.txt

    e2e.ti.com/.../LCD1_2600_LCD2-trace.txt

    e2e.ti.com/.../5265.dmesg.txt

    你好,Venkat

    在参考您的补丁后、两个屏幕被标记为显示正常的应用程序 GUI。但出现了另一个问题、似乎我无法使用 xf86drmMode.h 中的 DRM API 为 gfx/vid3/vid2/vid1设置属性。例如、我无法为 gfx/vid3/vid2/vid1设置透明属性。您可以看到以下详细信息:

    当我想使用 drmModeGetPlane 获取一些资源时,它会产生一些错误,例如"drmModeGetPlane Failed: 没有这样的文件或目录"、另一方面、当我要使用 drmModeObjectSetProperty 设置某些属性时、它 指示了一些错误、例如"OS:svapi:无法为平面设置 Propertyr"。此外、当我要使用 drmModeObjectGetProperties 设置某些属性时、它会产生一些错误、例如"无法设置无效的参数 CRTC:

    您可以在 dss_config.c 中看到代码、您可以在 LCD1&LCD2 trace.txt 中找到一些日志。

    感谢您的阅读!谢谢!

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

    如果原始问题得到解决、您能否在 Vencat 的帖子上按"验证答案"按钮关闭此主题、
    然后为新问题创建另一个线程。

    谢谢、
    Yordan