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:AM62P54 DSI 输出

Guru**** 2963360 points

Other Parts Discussed in Thread: AM62P, SK-LCD1

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1649742/am62p-am62p54-dsi-output

部件号: AM62P
主题中讨论的其他部件: 、 SK-LCD1

内核版本 “Linux am62pxx-EVM 6.18.13“

Yocto SDK 12.00.00.07  

DSS1 到 dsi0 dtso 文件:

// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/**
 * DT Overlay for RPi 7inch touchscreen panel interfaced with DSI on
 * AM62P5-SK EVM.
 *
 * RPi DSI Panel: www.raspberrypi.com/.../
 *
 * Copyright (C) 2024 Texas Instruments Incorporated - https://www.ti.com/
 */

/dts-v1/;
/plugin/;

#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/interrupt-controller/irq.h>

#include "k3-pinctrl.h"

&{/} {

	dsi_backlight: dsi_backlight {
                compatible = "pwm-backlight";
		brightness-levels = <
                                0   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15  16  17  18  19
                                20  21  22  23  24  25  26  27  28  29  30  31  32  33  34  35  36  37  38  39
                                40  41  42  43  44  45  46  47  48  49  50  51  52  53  54  55  56  57  58  59
                                60  61  62  63  64  65  66  67  68  69  70  71  72  73  74  75  76  77  78  79
                                80  81  82  83  84  85  86  87  88  89  90  91  92  93  94  95  96  97  98  99
                                100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119
                                120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139
                                140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159
                                160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179
                                180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199
                                200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219
                                220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239
                                240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255>;

		default-brightness-level = <230>;
                pwms = <&epwm1 1 100000 0>;
        };

};

&dphy_tx0 {
	status = "okay";
};

&main_i2c2 {
	#address-cells = <1>;
	#size-cells = <0>;

	touch-controller@5d {
		compatible = "goodix,gt911";
		reg = <0x5d>;

		touchscreen-size-x = < 800 >;
		touchscreen-size-y = < 1280 >;

		//vcc-supply = <&display_reg>;
		pinctrl-0 = <&dsi_tp_default>;
                interrupt-parent = <&main_gpio0>;
                interrupts = <63 IRQ_TYPE_EDGE_RISING>;
		irq-gpios = <&main_gpio0 63 GPIO_ACTIVE_HIGH>;
		reset-gpios = <&main_gpio0 64 GPIO_ACTIVE_LOW>;

		//touchscreen-inverted-x;
		//touchscreen-inverted-y;
		status = "okay";
	};
};

&dss1 {
	status = "okay";
};

&dss1_ports {
	status = "okay";
	#address-cells = <1>;
	#size-cells = <0>;

	/* DSS1-VP1: DSI Output */
	port@1 {
		reg = <1>;

		dss1_dpi1_out: endpoint {
			remote-endpoint = <&dsi0_in>;
		};
	};
};

&dsi0 {
	status = "okay";
	#address-cells = <1>;
	#size-cells = <0>;

	ports {
		#address-cells = <1>;
		#size-cells = <0>;

		port@0 {
			reg = <0>;

			dsi0_out: endpoint {
				remote-endpoint = <&panel_in>;
			};
		};

		port@1 {
			reg = <1>;

			dsi0_in: endpoint {
				remote-endpoint = <&dss1_dpi1_out>;
			};
		};
	};

	panel@0 {
		status = "okay";
		compatible = "debix,TD080B";
		reg = <0>;
		backlight = <&dsi_backlight>;
                pinctrl-0 = <&dsi_en_pins_default>;
                reset-gpio = <&main_gpio0 62 GPIO_ACTIVE_HIGH>;
                dsi-lanes = <4>;
                video-mode = <2>;       /* 0: burst mode
                                         * 1: non-burst mode with sync event
                                         * 2: non-burst mode with sync pulse
                                         */
                panel-width-mm = <107>;
                panel-height-mm = <172>;

			port {

				panel_in: endpoint {
					remote-endpoint = <&dsi0_out>;
				};
			};

	};
};

&epwm1 {
	pinctrl-names = "default";
	pinctrl-0 = <&main_epwm1_pins_default>;
	status = "okay";
};


&main_pmx0 {
	dsi_tp_default: dsi-tp-default-pins {
		pinctrl-single,pins = <
			AM62PX_IOPAD(0x0100, PIN_INPUT, 7) /* (W20) VOUT0_VSYNC.GPIO0_63 */
			AM62PX_IOPAD(0x0104, PIN_INPUT, 7) /* (Y21) VOUT0_PCLK.GPIO0_64 */
		>;
	};

	main_epwm1_pins_default: main-epwm1-default-pins {
		pinctrl-single,pins = <
			AM62PX_IOPAD(0x01a0, PIN_INPUT, 6) /* (F23) MCASP0_AXR0.EHRPWM1_B */
		>;
	};

	dsi_en_pins_default: dsi-en-pins-default-pins {
		pinctrl-single,pins = <
			AM62PX_IOPAD(0x00fc, PIN_INPUT, 7) /* (W21) VOUT0_DE.GPIO0_62 */
		>;
	};

};

drivers/GPU/DRM/panel/panel-td080b.c

panel-td080b.c 

kmsprint

root@am62pxx-evm:~# kmsprint
Connector 0 (42) DSI-1 (connected)
  Encoder 0 (41) NONE
    Crtc 0 (40) 800x1280@44.32 50.000 800/30/8/4/- 1280/20/20/20/- 44 (44.32) P|D
      Plane 0 (33) fb-id: 51 (crtcs: 0) 0,0 800x1280 -> 0,0 800x1280 (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 51 800x1280 XR24

kmsprint 显示正确的分辨率、并且没有为 tidss 30200000.dss 报告错误。 但是、没有来自 DSI 接口的信号输出。

DSI 输出原理图:

image.png

如何配置以启用 DSI 输出信号?

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

    您好、John:
    如果您使用 TI EVM、是否可以切换到 11.02 SDK(内核 6.12)并应用以下补丁:
    e2e.ti.com/.../0001_2D00_Enable_2D00_Microtips_2D00_DSI_2D00_panel_2D00_on_2D00_6_5F00_12.patch

    并测试一下这是否有帮助。 (过去它帮助了几个客户,并希望它也能帮助您。) 您可以将贴片中的面板添加部件替换为您自己的兼容面板。

    此外、您能分享一下如何测量 DSI 输出吗? 你在探测它吗? 如果是、在连接或断开面板的情况下?

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

    0001-Enable-Microtips-dsi-panel-on-6_12.patch 没有 DTS 或 Dtso 的配置方法?

    在电池板连接期间测量的波形

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

    您好、John:
    不、这是补丁中给出的驱动程序更改。 您可以按原样保留 DTS 版本。

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

    ‘SEVM “K-AM62P-LP“

    如何实现 DSI 输出? 默认情况下、DTS 仅配置有 HDMI。

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

    您可以像以前一样使用/修改 RPi dtso/dtbo 来启用 DSI。

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

    我尝试使用 k3-am62p5-sk-DSI-RpI-7inch-panel.dtbo、但我没有检测到来自 DSI 的任何信号输入。 然而,这个 Dtso 使用转换芯片“Toshiba, tc358762“。
    是否有任何关于 DSS1 -> DSI ->面板序列的 Dtso 或 DTS 成功显示的参考?

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

    您好、John:
    之前与 https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/arch/arm64/boot/dts/ti/k3-am62p5-sk-microtips-mf070zima-lcd3.dtso?h=ti-linux-6.12.y 共享的补丁 已通过物理面板内部进行了测试。

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

    你好 Divyansh :  

       MIPI DSI 正常显示、但在休眠后唤醒时、屏幕上没有图像输出、并且背光存在。

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

    您好、John:

    MIPI DSI 正常显示

    请问问题是什么? 它是否仅适用于共享修补程序、还是不适用于共享修补程序?

    但当它在休眠后唤醒时、没有图像输出

    您将如何进入休眠模式、如何唤醒备份? 您的用户空间应用如何处理此问题? 如果退出正在运行的应用程序并重新运行一个新的应用程序、该操作是否有效?

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

    您好 Divyansh:  

     ‘‘rtcwake-m mem-s 10 μ s、RTC 将在 10 秒内自动唤醒、或使用‘systemctl suspend‘并按电源键唤醒。

    唤醒后、尝试以下命令:
    root@am62pxx-EVM:~# systemctl stop empty
    root@am62pxx-EVM:~# systemctl start emptty
    root@am62pxx-EVM:~# systemctl stop ti-apps-launcher
    root@am62pxx-EVM:~# systemctl start ti-apps-launcher
    root@am62pxx-EVM:~# systemctl stop empty
    root@am62pxx-EVM:~# kmstest
    无法显示屏幕

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

    您好、John:
    感谢命令,将尝试复制在我的结束,并在下周初回到你.

    但是、仍在等待您对以下内容的回复:

    我可以知道这个问题是什么吗? 它是否仅适用于共享修补程序、还是不适用于共享修补程序?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、John:
    感谢您的等待。 从 SDK 12.0 开始、暂停恢复已进行了测试(与所使用的 SDK 相同)。
    我们已经测试了以下兼容:“ RaspberryPi ,7inch-DSI“面板简单。

    您能否检查面板驱动程序是否实现了挂起 — 恢复挂钩?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    arch/arm64/boot/dts/ti/k3-am62p5-sk-DSI-RPI-7 inch panel.dtso 使用转换 IC、我们需要的是 DSS1->DSI -> panel。 在前面的讨论中、您推荐了一个补丁和一个参考文件、该补丁使用 drivers/GPU/DRM/panel/panel-ilitek-ili9881c.c 补丁中没有恢复或挂起
    该产品、除了 mipi 面板、还有 LVDS 面板。
    使用 mipi 面板时、暂停后无法正常显示恢复、而使用 LVDS 面板时、恢复工作正常。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、John:

    drivers/GPU/DRM/panel/panel-ilitek-ili9881c

    可以、由于该驱动程序也没有实现任何挂起/恢复挂钩、因此挂起恢复不起作用。
    我知道 RPi 不是本机 DSI 面板、但目的是告诉您面板驱动程序(无论是本机 DSI 还是非本机 DSI)将需要实现暂停恢复挂钩。
    因此、您需要与面板供应商联系、了解如何实施这些挂钩。 在 AM62P 12.0 以后的版本上实现了 DSI 控制器(在 TI SoC 内)的相同挂钩

    对于 LVDS、我们已经使用 SK-LCD1 进行了相同的测试、该器件可以与面板简单型驱动器一起使用、因此也可以直接使用。 如果对 LVDS 使用任何其他驱动程序、则需要确保它们实现了挂钩。

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

    我们使用相同的 MIPI 显示屏、它可以正常在 NXP i.MX8MPlus、i.MX91、i.MX93、i.MX95 和 RK3576 等 CPU 平台上显示、 系统处于休眠状态并正常唤醒。

    但是、在 TI AM62P CPU 平台上、系统休眠和唤醒后无法测量 AM62P 芯片的 MIPI DSI 信号输出。

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

    您能分享面板驱动程序吗?

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

    e2e.ti.com/.../panel_2D00_ilitek_2D00_ili9881c.c

    驱动程序文件是指 TI 补丁。 目前、它在打开时可以正常输出图像、但从睡眠模式。μ s 唤醒后没有 mipi 信号输出

    e2e.ti.com/.../0001_2D00_Enable_2D00_Microtips_2D00_DSI_2D00_panel_2D00_on_2D00_6_5F00_12.patch

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

    您的面板是否使用了 illi9881 桥接器?

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

    通过 ili9881c 直接输出到屏幕、无需经过桥接器。
    am62p -> mipi panel cmd data -> panel display

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

    您好、John:
    我在内部进行了检查、了解为什么它 可以与 NXP/Rockchip 板一起使用:
    1.他们要么有一个特定于供应商的内核树,其中基于 ili9881 的暂停/恢复已经在上游驱动程序的基础上实现。 您能检查一下情况是否如此吗?
    2.在挂起模式下,他们还会关闭 PMIC 输出电压轨,而 AM62P 目前并非如此。 如果您的面板依赖于通过 DSI 通道提供的 3V3 来开启/关闭、您能否在切换到暂停模式时检查 3V3 通道是否会在 NXP/Rockchip EVM 板上变为低电平?