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:SoC 侧的 panel-simple.c 配置将显示格式设置为 BT656、但 LT9211C 接收到的实际数据为 BT1120 格式。

Guru**** 2826855 points

Other Parts Discussed in Thread: AM62P

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1623359/am62p-the-panel-simple-c-configuration-on-the-soc-side-sets-the-display-format-to-bt656-but-the-actual-data-received-by-the-lt9211c-is-in-bt1120-format

部件号: AM62P

1\物理连接  

image.png

2\代码配置  

panel-simple.c

image.png

image.png

image.png

dtsi

image.png

3\\n 请帮助检查此配置是否有任何问题。 为什么转换器芯片通过 DPI BT1120 接收数据格式? 您能否提供 DPI 的一些示例配置供我参考?  

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

    尊敬的 Zijian:

    在这方面、我们将利用专家的帮助。

    在此之前、请提供更多详细信息吗?

    1.您是否可以分享这样的连接系统图表?

    2.您是否需要澄清对这两张之前需要的门票所做的更改? 它将帮助我们知道为什么您需要多种显示 BT656 DPI。  

    AM62P-Q1:DPI 输出 BT656 — 处理器论坛-处理器 — TI E2E 支持论坛

    AM62P-Q1:AM62P52:具有隔行扫描模式的 BT656 — 处理器论坛-处理器 — TI E2E 支持论坛

    3.请告诉我们您需要这项新功能的项目? 该功能的里程碑是什么?

    非常感谢!

    Yong

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

    尊敬的 Yong。

    1.系统流程图如下

    前面的两个工单讨论了用于输出 BT656 和隔行扫描模式的 SoC 端配置。 我提交的 TT 是基于这些以前的配置方法进行的修改、但输出数据格式是 BT1120、原因不清楚。

    3.需要在新的 J3U 项目上实现此功能。 日程安排相当紧迫、我们需要在 3 月 10 日之前向客户演示。

    非常感谢!

    Zijian

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

    尊敬的 Zijian:
    请参阅此 【常见问题解答】AM62P:在 DSS 中启用 BT.656 模式 、以实现 BT.656 逐行和逐行扫描模式。 您的同事已经验证了这两种模式补丁。
    如果这些补丁已经到位、并且您仍然看到 BT1120、请将所有代码 diff(作为 git diff)与这些补丁共享、并分享您如何在 BT656 中验证 BT1120 信号。  

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

    你(们)好

    我已根据以前的门票修改并修改了代码。 该 txt 文件包含我的修改内容。 参考 panel-simple.c 中的 BT656 修改、我更改了时序参数和间隔模式。 LT9211C 供应商拥有一个主机计算机工具,可以通过 I2C 直接捕获在 SoC 端配置的 CLK 和数据格式。

    e2e.ti.com/.../output_5F00_bt656.txt

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

    以下各项的输出是什么:

    devmem2 0x3020b000
    kmsprint

    运行任何显示应用时、您是否在 DPI 线路 VOUT0_DATA[19:10]上看到任何信号?

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

    您好、

    使用 kmsprint 进行检查时、它仍然显示一个 DSI 连接。 实际上、当前板使用 DPI 连接。 应如何修改器件树?

    当前 LT9211C 设备树配置

    e2e.ti.com/.../k3_2D00_am62p5_2D00_sk_2D00_dsi_2D00_LT9211C.txt

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

    尊敬的 Zijian:
    请重新检查寄存器地址。

    DPI 输出本身不需要兼容的电桥、因为其时序参数是硬编码的、实际上不会检查是否连接了物理电桥/面板。  
    因此、将电桥连接到 DPI 输出可能需要、也可能不需要探测电桥驱动器、这取决于您的电桥。 请咨询您的网桥供应商和社区论坛以获取此信息。

    还请与 正确的 devmem2 命令共享“kmsprint --device=/dev/dri/by-path/platform-30200000.dss-card “的输出。

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

    你(们)好  

    请看这张照片

    我更改了 dts、现在可以看到 DPI-1(Connected)Ω

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

    谢谢、

    运行任何显示应用程序时、您是否在 soc 线路 VOUT0_data[19:10]上看到任何信号?

    您也能检查一下吗?

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

    你(们)好  

    抱歉、 我不太确定如何检查、在手册中找不到相关的寄存器地址 。

    此外、我检查了 kmsprint 输出信息、可能仍然存在一些问题。 我需要您的帮助、以检查启用 DPI 输出(如 BT656)的器件树配置。

    无法上传具有.dts 和.patch 扩展名的文件、因此我将其更改为.txt 格式。

    e2e.ti.com/.../dts_5F00_change.txt

    e2e.ti.com/.../8688.k3_2D00_am62p5_2D00_sk_2D00_dsi_2D00_LT9211C.txt

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

    尊敬的 Zijian:
    我看到您尝试为 DPI 输出配置 DSS1VP2。 请问是否有具体原因、为什么不使用默认的 DSS0VP2?

    为此、您还需要更改正确路由的 MUX 选择值、但尚未在 DTS 中完成此操作。

    请看这张照片

    [/报价]

    该寄存器值 会验证 DSS0VP2 是否在 BT656 隔行扫描模式下运行、而不是在 BT1120 下运行。 我假设这是使用我之前提到的 bt656 补丁。
    如果您将 DT 更改为具有 DSS1VP2 而不是 DSS0VP2 的 DPI 输出、则不确定为什么会看到此消息。 对于 DSS1VP2、应检查寄存器 0x3022b000。

    抱歉、 我不太确定如何检查、在手册中找不到相关的寄存器地址 。

    [/报价]

    我表示从您连接到面板的 SoC 输出探测 VOUT0_DATA10 系列 DPI 通道。

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

    你(们)好

    在上一电路板上、有一个 tp2803 占用了 DSS0VP2、因此使用了 DSS1VP2。 当前主板没有 tp2803、因此 DSS0VP2 可用于 LT9211C 链路。 使用 DSS0VP2 时、kmsprint 仍显示如下内容。 我想询问编码器 0 (40) 是否正常显示无、以及 768x576i 分辨率配置在何处? 我在 panel-simple.c 中找不到它

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

    您好、
    您能否分享以下输出:

    kmsprint --device=/dev/dri/by-path/platform-30200000.dss-card
    kmsprint --device=/dev/dri/by-path/platform-30220000.dss-card

    为此、您还需要更改正确路由的 MUX 选择值、但尚未在 DTS 中完成此操作。

    [/报价]

    若要获取有关如何执行此操作的参考、请参阅以下图像和补丁 (t 他的示例显示了 DSS1VP1 而不是 DSS1VP2 配置 )。 您可以相应地进行修改:  

    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,

    关于 576i、很可能是一些配置问题。 请分享前面提到的 kmsprint 结果。

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

    你(们)好  

    我想我已经调试了 DPI 链路。 请帮助我检查它是否正常工作。

    LT9211C 设备树修改如下

    e2e.ti.com/.../8540.k3_2D00_am62p5_2D00_sk_2D00_dsi_2D00_LT9211C.txt

    另一次 tp2803fe 器件树  修改如下

    e2e.ti.com/.../k3_2D00_am62p5_2D00_sk_2D00_bt656_2D00_tp2803fe.txt

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

    好的、您已将 2 个视频端口配置为 DPI、但您希望通过 DPI 线路输出其中哪个端口? 请注意、只有其中一个可输出为 DPI、如最后一个方框图所示。

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

    你(们)好  

    我想将 DPI 信号输出到 LT9211C 器件。 我应该如何继续?

    我尝试使用 tp2803fe 最初为 lt9211c 占用的相同 DPI 路径。 编译正常、但升级固件后、kmsprint 无法正确输出信息。 问题在哪里?

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

    你(们)好

    我想将 DPI 信号输出到 LT9211C 器件。 我应该如何继续?

    [/报价]

    我不确定您是否拥有具有所需输出的正确数据路径架构。 在您发送的最后一个 DPI-1、DPI-2 控制台日志中、它似乎与您所设置的内容一致:DSS0 上的 NTSC 分辨率和 DSS1VP2 上的 1200x800 分辨率、它们可以正确反映在您的日志中。

    您能否编辑 我之前分享的 AM62P 方框图 、以显示什么 DSS、您希望使用的 VP 以及在哪些引脚上连接桥接器?

    但升级固件后、kmsprint

    不确定您所指的固件、但如果是网桥固件、请咨询您的网桥供应商。

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

    你(们)好

    我已经回顾了您的流程图。 我希望 DSS1 VP1 线路输出 DPI 信号。 能否通过参考您的示例来实现这一点? 我还有一个问题:哪条线路是 DSS0 VP2? 我在您提供的图表中看不到这种组合。

    在 tp2803fe DTS 中、DSS0 VP2 被注释掉。 这从何而来?

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

    尊敬的 Zijian:
    由于 E2E 中的问题、我无法在此处上传图像。
    我已通过电子邮件向您发送了一张图片。 我将编辑此帖子、并在稍后的回复中包含该图像。

    您要在映像中配置的 3 条路径中的哪一条?

    在当前设置中、似乎您配置了#1+#3、但只需要#1 或#2、是否正确?
    如果是、为什么不使用您的 lt9211 网桥修改现有的#1 路径?

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

    你(们)好  

    合并修改后、可以正确识别 DPI/编码器/分辨率等信息。 寄存器 0x3020b000 的值为 0x01100000、并正常启用 bt656 数据格式。 我知道配置的第一步是成功的。

    在添加 LT9211C 驱动程序并将相关配置整合到设备树中后,在此过程中添加了调试日志。 发现 LT9211C 驱动程序已成功加载。 但是、kmsprint 显示的信息不完整、就好像网桥 lt9211c 导致连接中断一样。 您能否帮助检查配置可能不正确的位置?

    dmesg 日志

    e2e.ti.com/.../7140.log.log

    lt9211c 驱动程序代码

    e2e.ti.com/.../LT9211C_5F00_Main.ce2e.ti.com/.../LT9211C_5F00_Drv.c

    lt9211c dts 配置

    e2e.ti.com/.../1754.k3_2D00_am62p5_2D00_sk_2D00_dsi_2D00_LT9211C.txt

    k3-am62p5-sk.dts 包括 lt9211c

    原理图连接

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

    你(们)好  

    添加 lt9211 驱动程序代码

    e2e.ti.com/.../lt9211c_5F00_code.tar.gz

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

    尊敬的 Zijian:

    但是、kmsprint 显示的信息就像网桥 lt9211c 导致连接不完整一样。 您能否帮助检查配置可能不正确的位置?

    我们无法支持自定义桥接驱动器问题。 请咨询您的网桥供应商以获取相同信息。

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

    你(们)好

    抱歉,我知道这属于 LT9211C 供应商的范围。 我想请您帮助确认向 DTS 添加桥接芯片配置的方法是否正确。

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

    您好、  
    从布线路径的角度来看、DTS 似乎正确、即使 DTS 定义也取决于桥接驱动器。 另请注意、该 桥接驱动器负责将面板分辨率返回到 DRM 框架(之前由面板简单驱动程序完成)。 我还看到、您的 DT 显示有一个面板连接到您的电桥输出、而在您的硬件中、两者之间有一个 SERDES(不确定它是否也需要在显示链路径中)。
    此时、似乎电桥驱动器没有共享您连接到其输出的面板简单参数。
    所有这些都需要与网桥供应商保持一致、因为他们的驱动程序与 DSS 驱动程序通信、而不是面板简单的驱动程序。

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

    您好、Divansh、

     您能否更新补丁以在 Linux SDK 11.2 版本中启用 LT9211C?

     谢谢。

    Linjun

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

    尊敬的 Linjun:

    我们不支持自定义桥接驱动程序问题。 请与您的网桥供应商联系以获取相同信息。

    如前所述、我们无法支持自定义电桥的驱动器问题。