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.

[参考译文] AM62L:dsi_p_clk 没有速率

Guru**** 2430620 points
Other Parts Discussed in Thread: AM62L

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1494826/am62l-dsi_p_clk-has-no-rate

器件型号:AM62L
主题中讨论的其他器件: AB15

工具/软件:

MIPI-DSI 已连接到 mipi 屏幕、但当前未显示该屏幕。
请注意 dsi_p_clk 不速率、为什么会这样?如何对问题进行故障排除? 请提供指南。

使用命令“modetest -M tidss““cat /sys/kernel/debug/dri/30200000.dss/state “"kmsprint"查看“查看以下“以下内容:

root@am62lxx-evm:~# kmsprint 
[  984.281069] mipi rad panel get mode 
Connector 0 (41) DSI-1 (connected)
  Encoder 0 (40) NONE
    Crtc 0 (39) 1200x1920@58.53 156.000 1200/80/24/60/- 1920/20/4/10/- 59 (58.53) 0xa 0x48
      Plane 0 (32) fb-id: 43 (crtcs: 0) 0,0 1200x1920 -> 0,0 1200x1920 (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 43 1200x1920
root@am62lxx-evm:~# 
root@am62lxx-evm:~# 
root@am62lxx-evm:~# 
root@am62lxx-evm:~# modetest -M tidss
[ 1015.324690] mipi rad panel get mode 
Encoders:
id	crtc	type	possible crtcs	possible clones	
40	39	none	0x00000001	0x00000001

Connectors:
id	encoder	status		name		size (mm)	modes	encoders
41	40	connected	DSI-1          	135x216		1	40
  modes:
	index name refresh (Hz) hdisp hss hse htot vdisp vss vse vtot
  #0 1200x1920 58.53 1200 1280 1304 1364 1920 1940 1944 1954 156000 flags: nhsync, nvsync; type: preferred, driver
  props:
	1 EDID:
		flags: immutable blob
		blobs:

		value:
	2 DPMS:
		flags: enum
		enums: On=0 Standby=1 Suspend=2 Off=3
		value: 0
	5 link-status:
		flags: enum
		enums: Good=0 Bad=1
		value: 0
	6 non-desktop:
		flags: immutable range
		values: 0 1
		value: 0
	4 TILE:
		flags: immutable blob
		blobs:

		value:
	42 panel orientation:
		flags: immutable enum
		enums: Normal=0 Upside Down=1 Left Side Up=2 Right Side Up=3
		value: 0

CRTCs:
id	fb	pos	size
39	43	(0,0)	(1200x1920)
  #0 1200x1920 58.53 1200 1280 1304 1364 1920 1940 1944 1954 156000 flags: nhsync, nvsync; type: preferred, driver
  props:
	24 VRR_ENABLED:
		flags: range
		values: 0 1
		value: 0
	27 CTM:
		flags: blob
		blobs:

		value:
	28 GAMMA_LUT:
		flags: blob
		blobs:

		value:
	29 GAMMA_LUT_SIZE:
		flags: immutable range
		values: 0 4294967295
		value: 256

Planes:
id	crtc	fb	CRTC x,y	x,y	gamma size	possible crtcs
32	39	43	0,0		0,0	0       	0x00000001
  formats: 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
  props:
	8 type:
		flags: immutable enum
		enums: Overlay=0 Primary=1 Cursor=2
		value: 1
	30 IN_FORMATS:
		flags: immutable blob
		blobs:

		value:
			01000000000000001d00000018000000
			01000000900000004152313241423132
			52413132524731364247313641523135
			41423135415232344142323452413234
			42413234524732344247323441523330
			41423330585231325842313252583132
			58523135584231355852323458423234
			52583234425832345852333058423330
			59555956555956594e56313200000000
			ffffff1f000000000000000000000000
			0000000000000000
		in_formats blob decoded:
			 AR12:  LINEAR(0x0)
			 AB12:  LINEAR(0x0)
			 RA12:  LINEAR(0x0)
			 RG16:  LINEAR(0x0)
			 BG16:  LINEAR(0x0)
			 AR15:  LINEAR(0x0)
			 AB15:  LINEAR(0x0)
			 AR24:  LINEAR(0x0)
			 AB24:  LINEAR(0x0)
			 RA24:  LINEAR(0x0)
			 BA24:  LINEAR(0x0)
			 RG24:  LINEAR(0x0)
			 BG24:  LINEAR(0x0)
			 AR30:  LINEAR(0x0)
			 AB30:  LINEAR(0x0)
			 XR12:  LINEAR(0x0)
			 XB12:  LINEAR(0x0)
			 RX12:  LINEAR(0x0)
			 XR15:  LINEAR(0x0)
			 XB15:  LINEAR(0x0)
			 XR24:  LINEAR(0x0)
			 XB24:  LINEAR(0x0)
			 RX24:  LINEAR(0x0)
			 BX24:  LINEAR(0x0)
			 XR30:  LINEAR(0x0)
			 XB30:  LINEAR(0x0)
			 YUYV:  LINEAR(0x0)
			 UYVY:  LINEAR(0x0)
			 NV12:  LINEAR(0x0)
	34 zpos:
		flags: range
		values: 0 0
		value: 0
	35 COLOR_ENCODING:
		flags: enum
		enums: ITU-R BT.601 YCbCr=0 ITU-R BT.709 YCbCr=1
		value: 0
	36 COLOR_RANGE:
		flags: enum
		enums: YCbCr limited range=0 YCbCr full range=1
		value: 1
	37 alpha:
		flags: range
		values: 0 65535
		value: 65535
	38 pixel blend mode:
		flags: enum
		enums: Pre-multiplied=0 Coverage=1
		value: 0

Frame buffers:
id	size	pitch

root@am62lxx-evm:~# 
root@am62lxx-evm:~# 
root@am62lxx-evm:~# 
root@am62lxx-evm:~# cat /sys/kernel/debug/dri/30200000.dss/state
plane[32]: plane-0
	crtc=crtc-0
	fb=43
		allocated by = [fbcon]
		refcount=2
		format=XR24 little-endian (0x34325258)
		modifier=0x0
		size=1200x1920
		layers:
			size[0]=1200x1920
			pitch[0]=4800
			offset[0]=0
			obj[0]:
				name=0
				refcount=2
				start=00100000
				size=9216000
				imported=no
				dma_addr=0x00000000bcf00000
				vaddr=000000009718aacd
	crtc-pos=1200x1920+0+0
	src-pos=1200.000000x1920.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
crtc[39]: crtc-0
	enable=1
	active=1
	self_refresh_active=0
	planes_changed=1
	mode_changed=0
	active_changed=0
	connectors_changed=0
	color_mgmt_changed=0
	plane_mask=1
	connector_mask=1
	encoder_mask=1
	mode: "1200x1920": 59 156000 1200 1280 1304 1364 1920 1940 1944 1954 0x48 0xa
connector[41]: DSI-1
	crtc=crtc-0
	self_refresh_aware=0
	max_requested_bpc=0
	colorspace=Default
root@am62lxx-evm:~# 
root@am62lxx-evm:~# 

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

    您好、

    您使用在控制台和显示器上看到什么内容  

    kmstest

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

    我们正在努力纠正 dsi_p_clk 未枚举、但这不会影响显示功能的错误。

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

    root@am62lxx-evm:~# kmstest
    Connector 0/@41: DSI-1
      Crtc 0/@39: 1200x1920@58.53 156.000 1200/80/24/60/- 1920/20/4/10/- 59 (58.53) 0xa 0x48
      Plane 0/@32: 0,0-1200x1920
        Fb 45 1200x1920-XR24
    press enter to exit
    
    root@am62lxx-evm:~# 
    显示屏背光亮起、但未显示图像。

    显示屏背光亮起、但未显示图像。

    谢谢。

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

    您好、

    您能否检查您的问题是否与当前主题类似: https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1487601/am62p-q1-mipi-dsi-d-phy-doesn-t-seem-to-be-clocking 。 如果是、请参阅。

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

    您好、

    1、AM62L MIPI-DSI 是否支持 1200x1920 分辨率? 这是一个垂直屏幕。

    2、为什么某些分辨率加载良好而其他分辨率不加载、例如、当我使用屏幕的计时时、它会报告错误:

    .clock = 139000、
    .hdisplay = 1200、
    .hSYNC_START = 1200 + 20、
    .hSYNC_END = 1200 + 20 + 2、
    .htotal = 1200 + 20 + 2 + 34、
    .vdisplay = 1920、
    .vsync_start = 1920 + 10、
    .vsync_end = 1920 + 10 + 2、
    .vtotal = 1920 + 10 + 2 + 4、
    .width_mm = 135、
    .height_mm = 216、

    [   12.894996] panel-simple panel0: supply power not found, using dummy regulator
    [  OK  ] Listening on Load/Save RF Kill Switch Status /dev/rfkill Watch.
             Starting Load/Save RF Kill Switch Status...
    [   13.384659] [drm] Initialized tidss 1.0.0 for 30200000.dss on minor 0
    [   13.397799] tidss 30200000.dss: [drm] Cannot find any crtc or sizes
             Starting Virtual Console Setup...
    [   13.410404] tidss 30200000.dss: [drm] Cannot find any crtc or sizes

    例如、当我稍微更改时序时、它会正常加载、但不会显示、也不会测量 TX 信号。

      .clock = 150000
      .hdisplay = 1200
      .hSYNC_START = 1200 + 80
      .hSYNC_END = 1200 + 80 + 24
      .htotal = 1200 + 80 + 24 + 60
      .vdisplay = 1920
      .vsync_start = 1920 + 20
      .vsync_end = 1920 + 20 + 4
      .vtotal = 1920 + 20 + 4 + 10
    [   13.469235] [drm] Initialized tidss 1.0.0 for 30200000.dss on minor 0
    [   13.739774] Console: switching to colour frame buffer device 240x67
    [   13.772004] tidss 30200000.dss: [drm] fb0: tidssdrmfb frame buffer device
    
    
    root@am62lxx-evm:~# fbset
    
    mode "1920x1080"
        geometry 1920 1080 1920 1080 32
        timings 0 0 0 0 0 0 0
        rgba 8/16,8/8,8/0,0/0
    endmode
    
    root@am62lxx-evm:~# 
    3、任何地方的分辨率是否有任何限制? 例如、如果我使用“k3-am62l3-EVM-DSI-RPI-7inch-panel.dtso",“,可以、可以测量 MIPI-DSI-TX 信号、但当我将分辨率更改为 1200x1920 时、我无法测量 MIPI-DSI-TX 信号! 。
    除了计时之外、我的屏幕只需要写入 7 组初始化数据。
      MIPI_DSI_GENERAL_WRITE (DSI、(u8[]){0xB00x5A}、2);
      MIPI_DSI_GENERAL_WRITE (DSI、(u8[]){0xB10x00}、2);
      MIPI_DSI_GENERAL_WRITE (DSI、(u8[]){0x89、0x01}、2);
      MIPI_DSI_GENERAL_WRITE (DSI、(u8[]){0x2C0x28}、2);
      MIPI_DSI_GENERAL_WRITE (DSI、(u8[]){0x00、0xF1}、2);
      MIPI_DSI_GENERAL_WRITE (DSI、(u8[]){0x110x00}、2);
      MIPI_DSI_GENERAL_WRITE (DSI、(u8[]){0x290x00}、2);
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    AM62L MIPI-DSI 是否支持 1200x1920 分辨率? 这是一个垂直屏幕。

    是的。

    为什么某些分辨率加载良好而其他分辨率不加载、例如、当我使用屏幕的计时时、它会报告错误:

    您能描述一下您的测试台吗? 如何检查 MIPI-DSI-TX 信号? 在探测信号时、相应的面板(RPi 面板用于 RPi 覆盖,您的自定义面板用于自定义覆盖)是否与在后台运行的应用程序连接?
    您是否还可以共享以下输出:

    kmsprint --device=/dev/dri/cardX    # there can be multiple cards in dev/dri.
                                        # share output which shows DSI
    kmstest --device=/dev/dri/cardX     # Do you see anything on screen?

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

    由于屏幕不亮、我使用示波器测量了信号、发现 TX 没有信号、因此我执行了以下两种场景、这两种场景都没有连接屏幕、而是直接测量 TX 的信号并使用相同的 tc35876.c 驱动器。 我现在的问题是为什么仅仅更改分辨率会影响 TX 的信号输出。

    1、分辨率为 800x480、测量 DSI_TX3_N 具有以下数据信号:

      .clock = 28569600/1000
      .hdisplay = 800
      .hSYNC_START = 800 + 48
      .hSYNC_END = 800 + 48 + 32
      .htotal = 800 + 48 + 32 + 80
      .vdisplay = 480
      .vsync_start = 480 + 3
      .vsync_end = 480 + 3 + 7
      .vtotal = 480 + 3 + 7 + 6
    root@am62lxx-EVM:~# kmsprint --device=/dev/dri/card0
    连接器 0 (41) DSI-1(已连接)
    编码器 0 (40) 无
    CRTC 0 (39) 800x480@60.00 28.569 800/48/32/80/- 480/3/7/- 60 (60.00) 0xA 0x48
    平面 0 (32) fb-id:42 (crtcs:0) 0、0 800x480 -> 0、0 800x480 (AR12 AB12 RA12 RG16 BG16 AR15 AB15 AR24 AB24 RA24 RA24 RG24 RG24 AR30 AB30 XBR12 12 XR15 XB24 XR24 XB24 XB24 XB24 XR30 YNV12)
    FB 42 800x480
    Root@am62lxx-EVM:~#
    root@am62lxx-EVM:~# kmstest --device=/dev/dri/card0
    连接器 0/@41:DSI-1
    CRTC 0/@39:800x480@60.00 28.569 800/48/32/80/- 480/3/7/- 60 (60.00) 0xA 0x48
    平面 0/@32:0、0-800x480
    FB 44 800x480-XR24
    按 ENTER 键退出

    Root@am62lxx-EVM:~#
     
    2、只需将分辨率更改为 1280x720 并再次测量 DSI_TX3_N 无数据信号:
      .clock = 74250
      .hdisplay = 1280
      .hSYNC_START = 1280 + 110
      .hSYNC_END = 1280 + 110 + 40
      .htotal = 1280 + 110 + 40 + 220
      .vdisplay = 720
      .vsync_start = 720 + 5
      .vsync_end = 720 + 5 + 5
      .vtotal = 720 + 5 + 5 + 20
    root@am62lxx-EVM:~# kmsprint --device=/dev/dri/card0
    连接器 0 (41) DSI-1(已连接)
     编码器 0 (40) 无
      CRTC 0 (39) 1280x720@60.00 74.250 1280/110/40/220/- 720/5/5/20/- 60 (60.00) 0xA 0x48
       平面 0 (32) fb-id:42 (crtcs:0) 0、0 1280x720 -> 01280x720 (AR12 AB12 RA12 RG16 BG16 AR15 AB15 AR24 AB24 RA24 RA24 RG24 RG24 AR30 AB30 XBR12 12 XR15 XB15 24 XR24 XB24 XB24 XB24 XR30 YNV12)
        FB 42 1280x720
    Root@am62lxx-EVM:~#
    root@am62lxx-EVM:~# kmstest --device=/dev/dri/card0
    连接器 0/@41:DSI-1
     CRTC 0/@39:1280x720@60.00 74.250 1280/110/40/220/- 720/5/5/20/- 60 (60.00) 0xA 0x48
     平面 0/@320、0-1280x720
      FB 44 1280x720-XR24
    按 ENTER 键退出

    Root@am62lxx-EVM:~#
    我想先知道为什么仅更改分辨率会影响 TX 信号、在过去的调试中、只更改分辨率、信号应始终保持输出、分辨率在某个地方是否有限制?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    此外、我将 tc35876.c 中的通道更改为 4、因此在第一个示例中、DSI_TX3_N 收到了数据信号。

    在第二种情况下、这些通道也是 4。

    也就是说、tc35876.c 在测试信号期间不变。 唯一改变的是 800x480 > 1280x720 的分辨率;其他分辨率没有 TX 数据信号。 例如 1200x1920。

    @@–271,7 +283,7 @@ static int tc358762_probe(结构 mii_DSI_DEVICE *DSI)
    CTX->PRE_ENABLED = FALSE;

    /*待办事项:了解如何使双通道模式工作*/
    - DSI ->通道= 1;
    + DSI ->通道= 4;
    DSI->format = MIPI_DSI_FMT_RGB888;
    DSI->MODE_FLAGS = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_SYNC_PULSE |
    MIPI_DSI_MODE_LPM | MIPI_DSI_MODE_VIDEO_HSE;

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

    我猜、除了器件树中调用的时序之外、是否还有其他需要修改的地方需要修改、以使我添加的时序具有输出、例如其他驱动器或寄存器?

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

    您好,感谢您的详细信息。
    我将尝试在我这边复制您的设置 根据我之前分享的 E2E、我们有一个向 DSI IP 提供商提交的工单、并将向他们提供测试设置观察结果。  

    我想先知道为什么只更改分辨率会影响 TX 信号,在我过去的调试中,只更改分辨率,信号应该始终保留输出,分辨率在某处有限制吗?[/报价]

    支持自定义分辨率、但 DSI 协议涉及到与显示器的初始握手(它不是像 OLDI 这样的哑协议、其中只有更改的时序/分辨率才会生成修改的信号)。 如果显示器不能正确握手、您最好会看到错误。

    您能否分享您的 DTS 以及其中与 DSS 相关的任何更改?

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

    DSI 器件树:

    /dts-v1/;
    /plugin/;
    
    #include <dt-bindings/gpio/gpio.h>
    #include <dt-bindings/interrupt-controller/irq.h>
    
    #include "k3-pinctrl.h"
    
    &{/} {
    	bridge_reg: bridge-regulator {
    		compatible = "regulator-fixed";
    		regulator-name = "bt_wake";
    		regulator-min-microvolt = <3300000>;
    		regulator-max-microvolt = <3300000>;
    		enable-active-high;
    		regulator-always-on;
    		regulator-boot-on;
    		vin-supply = <&vcc_3v3_sys>;
    	};
    
    	panel0 {
    		// compatible = "raspberrypi,7inch-dsi", "simple-panel";
    		compatible = "test,7inch-dsi";
    		port {
    			panel_in: endpoint {
    				remote-endpoint = <&panel_bridge_out>;
    			};
    		};
    	};
    };
    
    &dss {
    	status = "okay";
    	bootph-all;
    };
    
    &dss_ports {
    	#address-cells = <1>;
    	#size-cells = <0>;
    
    	port@0 {
    		reg = <0>;
    
    		dpi_out: endpoint {
    			remote-endpoint = <&dsi0_in>;
    		};
    	};
    };
    
    &dphy_tx0 {
    	status = "okay";
    	bootph-all;
    };
    
    &dsi0 {
    	status = "okay";
    	bootph-all;
    	#address-cells = <1>;
    	#size-cells = <0>;
    
    	ports {
    		#address-cells = <1>;
    		#size-cells = <0>;
    
    		port@0 {
    			reg = <0>;
    			dsi0_out: endpoint {
    				remote-endpoint = <&panel_bridge_in>;
    			};
    		};
    
    		port@1 {
    			reg = <1>;
    			dsi0_in: endpoint {
    				remote-endpoint = <&dpi_out>;
    			};
    		};
    	};
    
    	bridge@0 {
    		compatible = "toshiba,tc358762";
    		reg = <0>;
    		vddc-supply = <&bridge_reg>;
    		ports {
    			#address-cells = <1>;
    			#size-cells = <0>;
    
    			port@0 {
    				reg = <0>;
    				panel_bridge_in: endpoint {
    					remote-endpoint = <&dsi0_out>;
    				};
    			};
    
    			port@1 {
    				reg = <1>;
    				panel_bridge_out: endpoint {
    					remote-endpoint = <&panel_in>;
    				};
    			};
    		};
    	};
    };
    

    修改了 tc35876.c:

    @@ -271,7 +283,7 @@ static int tc358762_probe(struct mipi_dsi_device *dsi)
            ctx->pre_enabled = false;
     
            /* TODO: Find out how to get dual-lane mode working */
    -       dsi->lanes = 1;
    +       dsi->lanes = 4;
            dsi->format = MIPI_DSI_FMT_RGB888;

    panel-simple.c 添加 1280x720:

    --- a/drivers/gpu/drm/panel/panel-simple.c
    +++ b/drivers/gpu/drm/panel/panel-simple.c
    @@ -3880,6 +3880,32 @@ static const struct panel_desc raspberrypi_7inch = {
            .connector_type = DRM_MODE_CONNECTOR_DSI,
     };
     
    +static const struct drm_display_mode test_7inch_mode = {
    +       .clock = 74250,
    +       .hdisplay = 1280,
    +       .hsync_start = 1280 + 110,
    +       .hsync_end = 1280 + 110 + 40,
    +       .htotal = 1280 + 110 + 40 + 220,
    +       .vdisplay = 720,
    +       .vsync_start = 720 + 5,
    +       .vsync_end = 720 + 5 + 5,
    +       .vtotal = 720 + 5 + 5 + 20,
    +
    +       .flags = DRM_MODE_FLAG_NVSYNC | DRM_MODE_FLAG_NHSYNC,
    +};
    +
    +static const struct panel_desc test_7inch = {
    +       .modes = &test_7inch_mode,
    +       .num_modes = 1,
    +       .bpc = 8,
    +       .size = {
    +               .width = 154,
    +               .height = 86,
    +       },
    +       .bus_format = MEDIA_BUS_FMT_RGB888_1X24,
    +       .connector_type = DRM_MODE_CONNECTOR_DSI,
    +};
    +
     static const struct display_timing rocktech_rk070er9427_timing = {
            .pixelclock = { 26400000, 33300000, 46800000 },
            .hactive = { 800, 800, 800 },
    @@ -5007,6 +5033,9 @@ static const struct of_device_id platform_of_match[] = {
                    .compatible = "raspberrypi,7inch-dsi",
                    .data = &raspberrypi_7inch,
            }, {
    +               .compatible = "test,7inch-dsi",
    +               .data = &test_7inch,
    +       },{
                    .compatible = "rocktech,rk070er9427",
                    .data = &rocktech_rk070er9427,
            }, {

    只有这三个改变,其他没有改变。

    当在器件树中兼容=“raspberrypi、7 英寸-DSI“、“简单面板“时;DSI-TX 测量会有数据信号。
    当兼容=“测试、7 英寸 DSI“时、DSI-TX 不测量数据信号。

    谢谢

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

    谢谢。 我将尝试复制您的设置在我的结束,并在下周中旬回复您。
    同时、我将随时向您介绍 DSI IP 提供商提供的任何反馈。

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

    谢谢,期待您的好消息。

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

    此寄存器的值对您来说是多少?
    DSI_VBUSP_CFG_DSI_0_DSI_DSI_VID_MODE_STS (0x305000F0)

    您是否还可以尝试应用此补丁系列: https://lore.kernel.org/all/20250320-cdns-dsi-impro-v1-18-725277c5f43b@ideasonboard.com/#r 
    它可能不是一个干净的应用程序,很少东西可能需要向后移植。

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

    感谢您的答复。

    当分辨率设置为 800x480 时、从该寄存器读取的值为 0x1。

    当分辨率设置为 1280x720 时、从该寄存器读取的值为 0x4。

    此补丁程序未解决问题。  更改分辨率后、没有 DSI-TX 信号。 您是否测试过其他分辨率?

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

    谢谢。
    请持续关注。 我们正在调试该问题。 会让您随时发布任何更新。

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

    您好、
    请执行在“TRM 的 12.7.2.7.7.4 TVG 配置 “(www.ti.com/.../sprujb4) 下的序列示例中提到的实验并分享您的结果。

    同时,我也在做同样的事情

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

    测试过程中未检测到信号输出、且屏幕无显示。

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

    您好、
    您可以使用客户提供的脚本重试吗: https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1487601/am62p-q1-mipi-dsi-d-phy-doesn-t-seem-to-be-clocking (检查最近的 3-4 个回复)

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

    是的、我在测试过程中注意到了这篇文章。 我运行了测试、没有输出。

    root@am62lxx-evm:~# ./dsi_test.sh 
    DSI_VID_VSIZE1
    Unknown Silicon 48039
    Value at addr 0x305000b4 = 0x14245
    DSI_VID_VSIZE2
    Unknown Silicon 48039
    Value at addr 0x305000b8 = 0x780
    DSI_VID_HSIZE1
    Unknown Silicon 48039
    Value at addr 0x305000c0 = 0xa8003a
    DSI_VID_HSIZE2
    Unknown Silicon 48039
    Value at addr 0x305000c4 = 0xea0e10
    DSI_VID_BLKSIZE1
    Unknown Silicon 48039
    Value at addr 0x305000cc = 0xff2
    DSI_VID_BLKSIZE2
    Unknown Silicon 48039
    Value at addr 0x305000d0 = 0xfae
    DSI_VID_PCK_TIME
    Unknown Silicon 48039
    Value at addr 0x305000d8 = 0x0
    DSI_VID_DPHY_TIME
    Unknown Silicon 48039
    Value at addr 0x305000dc = 0x87603ef
    DSI_VID_MODE_STS
    Unknown Silicon 48039
    Value at addr 0x305000f0 = 0x30
    DSI_VID_VCA_SETTING1
    Unknown Silicon 48039
    Value at addr 0x305000f4 = 0x0
    DSI_VID_VCA_SETTING2
    Unknown Silicon 48039
    Value at addr 0x305000f8 = 0xfa80000
    DSI_TVG_CTL
    Unknown Silicon 48039
    Value at addr 0x305000fc = 0xb9
    DSI_TVG_IMG_SIZE
    Unknown Silicon 48039
    Value at addr 0x30500100 = 0x5000870
    DSI_TVG_COLOR1
    Unknown Silicon 48039
    Value at addr 0x30500104 = 0xff0000
    DSI_TVG_COLOR1_BIS
    Unknown Silicon 48039
    Value at addr 0x30500108 = 0x0
    DSI_TVG_COLOR2
    Unknown Silicon 48039
    Value at addr 0x3050010c = 0xfff
    DSI_TVG_COLOR2_BIS
    Unknown Silicon 48039
    Value at addr 0x30500110 = 0x0
    DSI_TVG_STS
    Unknown Silicon 48039
    Value at addr 0x30500114 = 0x1
    DSI_MAIN_DATA_CTL
    Unknown Silicon 48039
    Value at addr 0x30500004 = 0x20067
    DSI_MCTL_MAIN_EN
    Unknown Silicon 48039
    Value at addr 0x3050000c = 0xf9
    -------- Enabling test pattern
    DSI_TVG_CTL WRITE (disable TVG_RUN)
    Unknown Silicon 48039
    Value at addr 0x305000fc = 0xb8
    DSI_MCTL_MAIN_EN WRITE (disable IF2_EN)
    Unknown Silicon 48039
    Value at addr 0x3050000c = 0xf9
    DSI_MAIN_DATA_CTL WRITE (enable TVG, disable VID_EN)
    Unknown Silicon 48039
    Value at addr 0x30500004 = 0x20047
    DSI_MAIN_DATA_CTL WRITE (enable TVG, enable VID_EN)
    Unknown Silicon 48039
    Value at addr 0x30500004 = 0x20067
    DSI_TVG_IMG_SIZE WRITE (setup lines / size 720x1280)
    Unknown Silicon 48039
    Value at addr 0x30500100 = 0x5000870
    TEST PATTERN COLOR 1
    Unknown Silicon 48039
    Value at addr 0x30500104 = 0xff0000
    Unknown Silicon 48039
    Value at addr 0x30500108 = 0x0
    TEST PATTERN COLOR 2
    Unknown Silicon 48039
    Value at addr 0x3050010c = 0xfff
    Unknown Silicon 48039
    Value at addr 0x30500110 = 0x0
    DSI_TVG_CTL WRITE (enable TVG_RUN)
    Unknown Silicon 48039
    Value at addr 0x305000fc = 0xb9
    DSI_TVG_STS
    Unknown Silicon 48039
    Value at addr 0x30500114 = 0x1
    root@am62lxx-evm:~# 
    root@am62lxx-evm:~# 
    root@am62lxx-evm:~# 
    root@am62lxx-evm:~# kmsprint 
    Connector 0 (41) DSI-1 (connected)
      Encoder 0 (40) NONE
        Crtc 0 (39) 1200x1920@56.28 150.000 1200/80/24/60/- 1920/20/4/10/- 56 (56.28) 0xa 0x48
          Plane 0 (32) fb-id: 42 (crtcs: 0) 0,0 1200x1920 -> 0,0 1200x1920 (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 42 1200x1920
    root@am62lxx-evm:~# 

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

    您好、
    您可以尝试以下操作吗:
    1. 加入了补丁程序: 前面提到的补丁程序集的补丁程序 15/18。 
    2. 将寄存器 2.2.35.1 DSI_TOP_VBUSP_CFG_DSI_0_DSI_VID_MAIN_CTL 寄存器中的 REG_BLKEOL_MODE 和 REG_BLKLINE_MODE 调整为 3(切换到 LP 模式与传输空白数据包)[复位= 80000000h]

    然后进行显示、是否可以共享?

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

    您好、

    仍然没有影响、没有 DSI_TX 数据信号

    root@am62lxx-evm:~# ./dsi_test.sh 
    DSI_VID_VSIZE1
    Unknown Silicon 48039
    Value at addr 0x305000b4 = 0x14245
    DSI_VID_VSIZE2
    Unknown Silicon 48039
    Value at addr 0x305000b8 = 0x780
    DSI_VID_HSIZE1
    Unknown Silicon 48039
    Value at addr 0x305000c0 = 0xa8003a
    DSI_VID_HSIZE2
    Unknown Silicon 48039
    Value at addr 0x305000c4 = 0xea0e10
    DSI_VID_BLKSIZE1
    Unknown Silicon 48039
    Value at addr 0x305000cc = 0xff2
    DSI_VID_BLKSIZE2
    Unknown Silicon 48039
    Value at addr 0x305000d0 = 0xfae
    DSI_VID_PCK_TIME
    Unknown Silicon 48039
    Value at addr 0x305000d8 = 0x0
    DSI_VID_DPHY_TIME
    Unknown Silicon 48039
    Value at addr 0x305000dc = 0x87603ef
    DSI_VID_MODE_STS
    Unknown Silicon 48039
    Value at addr 0x305000f0 = 0x4
    DSI_VID_VCA_SETTING1
    Unknown Silicon 48039
    Value at addr 0x305000f4 = 0x0
    DSI_VID_VCA_SETTING2
    Unknown Silicon 48039
    Value at addr 0x305000f8 = 0xfa80000
    DSI_TVG_CTL
    Unknown Silicon 48039
    Value at addr 0x305000fc = 0x0
    DSI_TVG_IMG_SIZE
    Unknown Silicon 48039
    Value at addr 0x30500100 = 0x0
    DSI_TVG_COLOR1
    Unknown Silicon 48039
    Value at addr 0x30500104 = 0x0
    DSI_TVG_COLOR1_BIS
    Unknown Silicon 48039
    Value at addr 0x30500108 = 0x0
    DSI_TVG_COLOR2
    Unknown Silicon 48039
    Value at addr 0x3050010c = 0x0
    DSI_TVG_COLOR2_BIS
    Unknown Silicon 48039
    Value at addr 0x30500110 = 0x0
    DSI_TVG_STS
    Unknown Silicon 48039
    Value at addr 0x30500114 = 0x0
    DSI_MAIN_DATA_CTL
    Unknown Silicon 48039
    Value at addr 0x30500004 = 0x20027
    DSI_MCTL_MAIN_EN
    Unknown Silicon 48039
    Value at addr 0x3050000c = 0x40f9
     DSI_TOP_VBUSP_CFG_DSI_0_DSI_VID_MAIN_CTL
    Unknown Silicon 48039
    Value at addr 0x305000b0 = 0x80b8fe00
    -------- Enabling test pattern
    DSI_TVG_CTL WRITE (disable TVG_RUN)
    Unknown Silicon 48039
    Value at addr 0x305000fc = 0xb8
    DSI_MCTL_MAIN_EN WRITE (disable IF2_EN)
    Unknown Silicon 48039
    Value at addr 0x3050000c = 0xf9
    DSI_MAIN_DATA_CTL WRITE (enable TVG, disable VID_EN)
    Unknown Silicon 48039
    Value at addr 0x30500004 = 0x20047
    DSI_MAIN_DATA_CTL WRITE (enable TVG, enable VID_EN)
    Unknown Silicon 48039
    Value at addr 0x30500004 = 0x20067
    DSI_TVG_IMG_SIZE WRITE (setup lines / size 720x1280)
    Unknown Silicon 48039
    Value at addr 0x30500100 = 0x5000870
    TEST PATTERN COLOR 1
    Unknown Silicon 48039
    Value at addr 0x30500104 = 0xff0000
    Unknown Silicon 48039
    Value at addr 0x30500108 = 0x0
    TEST PATTERN COLOR 2
    Unknown Silicon 48039
    Value at addr 0x3050010c = 0xfff
    Unknown Silicon 48039
    Value at addr 0x30500110 = 0x0
    DSI_TVG_CTL WRITE (enable TVG_RUN)
    Unknown Silicon 48039
    Value at addr 0x305000fc = 0xb9
    DSI_TVG_STS
    Unknown Silicon 48039
    Value at addr 0x30500114 = 0x1
    REG_BLKEOL_MODE & ​​REG_BLKLINE_MODE : 3
    Unknown Silicon 48039
    Value at addr 0x305000b0 = 0x81f8fe00
    root@am62lxx-evm:~#

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

    您好、

    感谢您的信息。 我们已将您的问题和调试输出转发给我们的 DSI IP 合作伙伴、并等待他们分享后续步骤。 我们会在收到输入时随时通知您。

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

    以下是来自 IP 提供商的响应:
    您能否请该客户尽可能测量时钟通道速率/字节时钟。 此外、请检查范围内数据通道上每个帧结束是否都有 LP11 状态。  +确认 LCD 面板与另一个信号源的运行状况良好。
    请首先捕获示波器中的数据通道和时钟通道。 保留 480 行停止状态的长持续时间(增加时间刻度)、您在范围内看到的停止状态比一个较小的停止状态更长、并在这些停止状态之间添加时间光标。


    请针对时钟和数据线捕获此数据、以获得工作分辨率和非工作分辨率。

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

    您好、

    我已经在之前的响应中测量了信号。 ​​

    当屏幕分辨率为 800x480 时​​,显示屏工作正常,可以测量数据和时钟信号。

    当屏幕分辨率为 1280x720 时,时钟信号存在,但没有​​DSI_TX 数据信号​​。 我已经确认该屏幕在其他开发板上可以正常工作。 如何检查​​LP11 状态​​?

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

    您好、
    您的面板是  4 通道 — 60 fps、rgb888 还是 1 通道?


    请使用修改后的参数重新运行此测试(TVG 生成器)(其他用户所做的脚本是 720x1280、而不是 1280x720)。

    1.以下是您的计时参数。
    .clock = 74250  
       .hdisplay = 1280、
      .hSYNC_START = 1280 + 110、
      .hSYNC_END = 1280 + 110 +  40、
      .htotal = 1280 + 110 +  40 + 220、
      .vdisplay = 720、
      .vsync_start = 720 + 5、
      .vsync_end = 720 + 5 + 5 、
      .vtotal = 720 + 5 + 5 +  20、
     
    //写入这些寄存器(不建议只用于调试)
    2.更新  TVG_IMG_SIZE --->寄存器值:[vdisplay  <<<16|3*hdisplay] 
    3.配置颜色 1、2。
    4.启动 TVG 运行。

    请再次转储寄存器并分享您在屏幕/探头上看到的内容
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、

    ​​使用 60fps 的 1、4 通道配置。

    在、说明后 2 μ s、​​​​可以测量 DSI_TX 信号。 ​​DSI0_TXN​​和​​DSI0_TXP 的波形​​看起来相同、如下图所示。 然而,​​极性似乎反转​​?  未显示

    3、μ s 如何​​​​计算 DSI_TVG_IMG_SIZE 的值? 我在手册中找不到相关的计算方法。 如果我想使用​​1200x1920 屏幕进行测试​​,我应该如何计算​​DSI_TVG_IMG_SIZE 的值​​?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    按照说明操作后、​​​​可以测量 DSI_TX 信号。

    如果您没有修改  DSI_TVG_IMG_SIZE、您还做了哪些更改?

    [vdisplay  <<16 | 3*hdisplay]

    我已经分享了如何计算 DSI_TVG_IMG_SIZE。
    对于 1280x720、vdisplay=720 和 hdisplay=1280、  
    再次迭代; DSI_TVG_IMG_SIZE 值={leftshift(vdisplay、16 次)|二进制或|(hdisplay 值的 3 倍)}

    附加寄存器位设置以供参考。


    对于 1200x1920 屏幕、 vdisplay=1920 和 hdisplay=1200。

    还请指定您要定位的屏幕、1280x720(水平)或 1200x1920(垂直)。
    如果使用后者、请同时共享时序参数。

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

    谢谢。

    未作其他修改。 详情如下:

    root@am62lxx-evm:~# cat dsi.sh 
    #!/bin/sh
    
    echo "REG_BLKEOL_MODE & ​​REG_BLKLINE_MODE : 3"              
    k3conf write 0x305000B0 0x81F8FE00 | grep addr
    echo "-------- Enabling test pattern"
    echo "DSI_TVG_CTL WRITE (disable TVG_RUN)"
    k3conf write 0x305000fc 0x000000B8 | grep addr
    sleep 1
    echo "DSI_MCTL_MAIN_EN WRITE (disable IF2_EN)"
    k3conf write 0x3050000C 0x000000F9 | grep addr 
    echo "DSI_MAIN_DATA_CTL WRITE (enable TVG, disable VID_EN)"
    k3conf write 0x30500004 0x00020047 | grep addr 
    sleep 1
    echo "DSI_MAIN_DATA_CTL WRITE (enable TVG, enable VID_EN)"
    k3conf write 0x30500004 0x00020067 | grep addr 
    echo "DSI_TVG_IMG_SIZE WRITE (setup lines / size 1200x1920)"
    k3conf write 0x30500100 0x07800E10 | grep addr 
    echo "TEST PATTERN COLOR 1"
    k3conf write 0x30500104 0x0FFF0000 | grep addr 
    k3conf write 0x30500108 0x00000000 | grep addr 
    echo "TEST PATTERN COLOR 2"
    k3conf write 0x3050010c 0x00000FFF | grep addr 
    k3conf write 0x30500110 0x00000000 | grep addr 
    echo "DSI_TVG_CTL WRITE (enable TVG_RUN)"
    k3conf write 0x305000fc 0x000000B9 | grep addr 
    
    
    
    root@am62lxx-evm:~# 
    root@am62lxx-evm:~# 
    root@am62lxx-evm:~# 
    root@am62lxx-evm:~# ./dsi.sh 
    REG_BLKEOL_MODE & ​​REG_BLKLINE_MODE : 3
    Unknown Silicon 48039
    Value at addr 0x305000b0 = 0x81f8fe00
    -------- Enabling test pattern
    DSI_TVG_CTL WRITE (disable TVG_RUN)
    Unknown Silicon 48039
    Value at addr 0x305000fc = 0xb8
    DSI_MCTL_MAIN_EN WRITE (disable IF2_EN)
    Unknown Silicon 48039
    Value at addr 0x3050000c = 0xf9
    DSI_MAIN_DATA_CTL WRITE (enable TVG, disable VID_EN)
    Unknown Silicon 48039
    Value at addr 0x30500004 = 0x20047
    DSI_MAIN_DATA_CTL WRITE (enable TVG, enable VID_EN)
    Unknown Silicon 48039
    Value at addr 0x30500004 = 0x20067
    DSI_TVG_IMG_SIZE WRITE (setup lines / size 1200x1920)
    Unknown Silicon 48039
    Value at addr 0x30500100 = 0x7800e10
    TEST PATTERN COLOR 1
    Unknown Silicon 48039
    Value at addr 0x30500104 = 0xff0000
    Unknown Silicon 48039
    Value at addr 0x30500108 = 0x0
    TEST PATTERN COLOR 2
    Unknown Silicon 48039
    Value at addr 0x3050010c = 0xfff
    Unknown Silicon 48039
    Value at addr 0x30500110 = 0x0
    DSI_TVG_CTL WRITE (enable TVG_RUN)
    Unknown Silicon 48039
    Value at addr 0x305000fc = 0xb9
    root@am62lxx-evm:~# 
    root@am62lxx-evm:~# 
    root@am62lxx-evm:~# 
    root@am62lxx-evm:~# kmsprint 
    Connector 0 (41) DSI-1 (connected)
      Encoder 0 (40) NONE
        Crtc 0 (39) 1200x1920@56.28 150.000 1200/80/24/60/- 1920/20/4/10/- 56 (56.28) 0xa 0x48
          Plane 0 (32) fb-id: 42 (crtcs: 0) 0,0 1200x1920 -> 0,0 1200x1920 (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 42 1200x1920
    root@am62lxx-evm:~# 
    root@am62lxx-evm:~# 

    时序:

    static const struct drm_display_mode qunxin_1200x1920_mode = {
    	.clock = 150000,
    	.hdisplay = 1200,
    	.hsync_start = 1200 + 80,
    	.hsync_end = 1200 + 80 + 24,
    	.htotal = 1200 + 80 + 24 + 60,
    	.vdisplay = 1920,
    	.vsync_start = 1920 + 20,
    	.vsync_end = 1920 + 20 + 4,
    	.vtotal = 1920 + 20 + 4 + 10,
    
    	.flags = DRM_MODE_FLAG_NVSYNC | DRM_MODE_FLAG_NHSYNC,
    };
    
    static const struct panel_desc qunxin_1200x1920 = {
    	.modes = &qunxin_1200x1920_mode,
    	.num_modes = 1,
    	.bpc = 8,
    	.size = {
    		.width = 135,
    		.height = 216,
    	},
    	.bus_format = MEDIA_BUS_FMT_RGB888_1X24,
    	.connector_type = DRM_MODE_CONNECTOR_DSI,
    };

    DSI_TX 波形:

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

    您在显示屏上看到了什么?

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

    没有显示、波形与正常运行相比是反转的。 这可能是个问题吗? 此外、存在波形完全不存在的间歇性情况。

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

    您好、

    我更新了器件树驱动程序、在执行脚本后、显示现在可以正常工作。

    DTS:

    &dss {
    	status = "okay";
    	bootph-all;
    };
    
    &dss_ports {
    	#address-cells = <1>;
    	#size-cells = <0>;
    
    	port@0 {
    		reg = <0>;
    
    		dpi_out: endpoint {
    			remote-endpoint = <&dsi0_in>;
    		};
    	};
    };
    
    &dphy_tx0 {
    	status = "okay";
    	bootph-all;
    };
    
    &dsi0 {
    	status = "okay";
    	bootph-all;
    	#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 = <&dpi_out>;
    			};
    		};
    	};
    
    	panel@0 {
    		compatible = "qunxin,cg10132010";
    		v3p3-supply = <&vcc_3v3_sys>;
    		v1p8-supply = <&vcc_1v8>;
    		reg = <0>;
    		ports {
    			#address-cells = <1>;
    			#size-cells = <0>;
    
    			port@0 {
    				reg = <0>;
    				panel_in: endpoint {
    					remote-endpoint = <&dsi0_out>;
    				};
    			};
    		};
    	};
    };

    DSI_TEST

    root@am62lxx-evm:~# 
    root@am62lxx-evm:~# cat dsi.sh 
    #!/bin/sh
    
    echo "REG_BLKEOL_MODE & ​​REG_BLKLINE_MODE : 3"              
    k3conf write 0x305000B0 0x81F8FE00 | grep addr
    echo "-------- Enabling test pattern"
    echo "DSI_TVG_CTL WRITE (disable TVG_RUN)"
    k3conf write 0x305000fc 0x000000B8 | grep addr
    sleep 1
    echo "DSI_MCTL_MAIN_EN WRITE (disable IF2_EN)"
    k3conf write 0x3050000C 0x000000F9 | grep addr 
    echo "DSI_MAIN_DATA_CTL WRITE (enable TVG, disable VID_EN)"
    k3conf write 0x30500004 0x00020047 | grep addr 
    sleep 1
    echo "DSI_MAIN_DATA_CTL WRITE (enable TVG, enable VID_EN)"
    k3conf write 0x30500004 0x00020067 | grep addr 
    echo "DSI_TVG_IMG_SIZE WRITE (setup lines / size 1200x1920)"
    k3conf write 0x30500100 0x07800E10 | grep addr 
    echo "TEST PATTERN COLOR 1"
    k3conf write 0x30500104 0x0FFF0000 | grep addr 
    k3conf write 0x30500108 0x00000000 | grep addr 
    echo "TEST PATTERN COLOR 2"
    k3conf write 0x3050010c 0x00000FFF | grep addr 
    k3conf write 0x30500110 0x00000000 | grep addr 
    echo "DSI_TVG_CTL WRITE (enable TVG_RUN)"
    k3conf write 0x305000fc 0x000000B9 | grep addr 
    
    
    
    root@am62lxx-evm:~# ./dsi.sh 
    REG_BLKEOL_MODE & ​​REG_BLKLINE_MODE : 3
    Unknown Silicon 48039
    Value at addr 0x305000b0 = 0x81f8fe00
    -------- Enabling test pattern
    DSI_TVG_CTL WRITE (disable TVG_RUN)
    Unknown Silicon 48039
    Value at addr 0x305000fc = 0xb8
    DSI_MCTL_MAIN_EN WRITE (disable IF2_EN)
    Unknown Silicon 48039
    Value at addr 0x3050000c = 0xf9
    DSI_MAIN_DATA_CTL WRITE (enable TVG, disable VID_EN)
    Unknown Silicon 48039
    Value at addr 0x30500004 = 0x20047
    DSI_MAIN_DATA_CTL WRITE (enable TVG, enable VID_EN)
    Unknown Silicon 48039
    Value at addr 0x30500004 = 0x20067
    DSI_TVG_IMG_SIZE WRITE (setup lines / size 1200x1920)
    Unknown Silicon 48039
    Value at addr 0x30500100 = 0x7800e10
    TEST PATTERN COLOR 1
    Unknown Silicon 48039
    Value at addr 0x30500104 = 0xff0000
    Unknown Silicon 48039
    Value at addr 0x30500108 = 0x0
    TEST PATTERN COLOR 2
    Unknown Silicon 48039
    Value at addr 0x3050010c = 0xfff
    Unknown Silicon 48039
    Value at addr 0x30500110 = 0x0
    DSI_TVG_CTL WRITE (enable TVG_RUN)
    Unknown Silicon 48039
    Value at addr 0x305000fc = 0xb9
    root@am62lxx-evm:~# 

    我应该在“test"(“(测试(测试)旁边执行哪些步骤来直接显示屏幕?

    谢谢

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

    更新驱动程序后、重新启动并检查 kmstest 是否在屏幕上显示某些内容?

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

    测试后、如果启动时未执行脚本并且运行了 kmstest、则屏幕不会显示任何其他内容。 只有在执行脚本后、才会显示该颜色。

    此外、在执行脚本之前无法测量 DSI_TX 信号、但只有在执行脚本后才能检测到该信号。

    Root@am62lxx-EVM:~# kmstest
    连接器 0/@41:DSI-1
     CRTC 0/@39:1200x1920@60.00 159.916 1200/80/24/60/- 1920/20/4/10/- 60 (60.00) 0xA 0x48
     平面 0/@32:0、0-1200x1920
      FB 44 1200x1920-XR24
    按 ENTER 键退出
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    请尝试以下操作:
    1. 加入了补丁程序: 前面提到的补丁程序集的补丁程序 15/18。 
    2. 将寄存器 2.2.35.1 DSI_TOP_VBUSP_CFG_DSI_0_DSI_VID_MAIN_CTL 寄存器中的 REG_BLKEOL_MODE 和 REG_BLKLINE_MODE 调整为 3(切换到 LP 模式与传输空白数据包)[复位= 80000000h]
    [/报价]

    请重新尝试这些步骤。 由于 TVG 发生器正在工作、这可能会起作用。

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

    在上述测试过程中、我已经将补丁添加到 drivers/GPU/DRM/bridge/cadence/CDN - DSI-CORE.c 中 此外、该脚本中还包含 REG_BLKEOL_MODE 和 REG_BLKLINE_MODE。

     #ifdef CONFIG_DRM_CDNS_DSI_J721E
     #include "cdns-dsi-j721e.h"
    @@ -972,6 +972,28 @@ static u32 *cdns_dsi_bridge_get_input_bus_fmts(struct drm_bridge *bridge,
            return input_fmts;
     }
     
    +static long cdns_dsi_round_pclk(struct cdns_dsi *dsi, unsigned long pclk)
    +{
    +       struct cdns_dsi_output *output = &dsi->output;
    +       unsigned int nlanes = output->dev->lanes;
    +       union phy_configure_opts phy_opts = { 0 };
    +       u32 bitspp;
    +       int ret;
    +
    +       bitspp = mipi_dsi_pixel_format_to_bpp(output->dev->format);
    +
    +       ret = phy_mipi_dphy_get_default_config(pclk, bitspp, nlanes,
    +                                              &phy_opts.mipi_dphy);
    +       if (ret)
    +               return ret;
    +
    +       ret = phy_validate(dsi->dphy, PHY_MODE_MIPI_DPHY, 0, &phy_opts);
    +       if (ret)
    +               return ret;
    +
    +       return div64_u64((u64)phy_opts.mipi_dphy.hs_clk_rate * nlanes, bitspp);
    +}
    +
     static int cdns_dsi_bridge_atomic_check(struct drm_bridge *bridge,
                                            struct drm_bridge_state *bridge_state,
                                            struct drm_crtc_state *crtc_state,
    @@ -982,6 +1004,25 @@ static int cdns_dsi_bridge_atomic_check(struct drm_bridge *bridge,
            struct cdns_dsi_bridge_state *dsi_state = to_cdns_dsi_bridge_state(bridge_state);
            const struct drm_display_mode *mode = &crtc_state->mode;
            struct cdns_dsi_cfg *dsi_cfg = &dsi_state->dsi_cfg;
    +       struct drm_display_mode *adjusted_crtc_mode = &crtc_state->adjusted_mode;
    +       struct videomode vm;
    +       long pclk;
    +
    +       /*
    +        * The DPHY PLL has quite a coarsely grained clock rate options. See
    +        * what hsclk rate we can achieve based on the pixel clock, convert it
    +        * back to pixel clock, set that to the adjusted_mode->clock. This is
    +        * all in hopes that the CRTC will be able to provide us the requested
    +        * clock, as otherwise the DPI and DSI clocks will be out of sync.
    +        */
    +
    +       pclk = cdns_dsi_round_pclk(dsi, mode->clock * 1000);
    +       if (pclk < 0)
    +               return (int)pclk;
    +
    +       adjusted_crtc_mode->clock = pclk / 1000;
    +
    +       drm_display_mode_to_videomode(adjusted_crtc_mode, &vm);
     
            return cdns_dsi_check_conf(dsi, mode, dsi_cfg, false);

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

    好的、感谢您提供的信息。 您的观察已与 IP 提供商共享。 会随时通知您。

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

    您好、我们收到了回复:
    您能否将 qunxin_1200x1920_mode 下的时钟从 150000 更改为 160000。
    重试脚本、然后重新启动+kmstest。
    请在两种情况下探测时钟通道。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
      .clock = 160000
      .hdisplay = 1200
      .hSYNC_START = 1200 + 80
      .hSYNC_END = 1200 + 80 + 24
      .htotal = 1200 + 80 + 24 + 60
      .vdisplay = 1920
      .vsync_start = 1920 + 20
      .vsync_end = 1920 + 20 + 4
      .vtotal = 1920 + 20 + 4 + 10
      .width_mm = 135
      .height_mm = 216
    以下是在两种条件下测试的时钟信号。 似乎没有明显的区别。
    reboot+kmstest:
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    只是为了确认、您仍在屏幕上看到测试模式、但没有 kmstest 输出?

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

    是的、重新启动并运行 kmstest 后、屏幕上没有输出。

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

    谢谢、我们正在等待答复。 我们会在收到后尽快分享反馈。

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

    我已成功打开正常显示的 800x1280 屏幕。 此外,我有另一个 1200x1920 屏幕。 它们之间的唯一区别在于分辨率—它们共享同一个驱动程序 IC。 这意味着我不需要修改驱动程序;仅调整分辨率就足以正常显示。 但是、我发现无法自定义屏幕计时参数、因此很难正确配置这些参数。 即使使用屏幕手册中的计时参数、屏幕也无法显示。

    例如、800x1280 显示器的数据表中指定的屏幕时序为:

    .clock = 60000、
    .hdisplay = 800、
    .hSYNC_START = 800 + 5、
    .hSYNC_END = 800 + 5 + 6、
    .htotal = 800 + 5 + 6 + 5、
    .vdisplay = 1280、
    .vsync_start = 1280 + 4、
    .vsync_end = 1280 + 4 + 2、
    .vtotal = 1280 + 4 + 2 + 2、

    此配置不起作用。

    当我将时间修改为以下内容时、屏幕将成功显示:

    .clock = 82550、
    .hdisplay = 800、
    .hSYNC_START = 800 + 100、
    .hSYNC_END = 800 + 100 + 32、
    .htotal = 800 + 100 + 32 + 80、
    .vdisplay = 1280、
    .vsync_start = 1280 + 20、
    .vsync_end = 1280 + 20 + 3、
    .vtotal = 1280 + 20 + 3 + 30、

    这导致即使使用屏幕数据表中的时序参数、显示屏也可能无法正常工作。 我相信这就是为什么我的 1200x1920 屏幕目前不工作,因为我还没有确定合适的计时参数。 ​​AM62L 平台上的屏幕时序配置必须遵循哪些特定规则? 是否有相关文档可以解决此问题? ​​

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

    您好、
    值得注意的是、修改 800x1280 的参数对您来说是可行的。 对于 1200x1820、可能还需要微调参数。 没有确切的算法来确定需要进行多少和哪种方向调整。

    以下是 IP 提供程序的响应:
    “"</s>“

    尝试增加 HFP、可能在 DSI 上增加约 24-30 字节、不要更改 DSS 分辨率参数。
     
    如果未显示显示、则继续修改 HFP 以获得更高/更低的数字。 根据 0x1A8 上的标志、如果出现溢出、请继续增大该值。
     
    0x1A0:DPI OVFFL IRQ 启用
    0x1A4:DPI OVFFL IRQ 清除
    0x1A8:DPI OVFFL IRQ 状态
     
    轮询–0x1AC 寄存器、查看 LSB 16b 中的任何变化。

    HFP 用于调整、因此当您的客户更改此参数时、请让他们保持公式适用于 htotal 的任何更改。
     
    静态常量结构体 DRM_DISPLAY_MODE qunxin_1200x1920_mode ={
                   .clock = 160000、   
                   .hdisplay = 1200、                            -- HACT
                   .hSYNC_START  = 1200 +  80、            --  HFP
                   .hSYNC_END = 1200 + 80 +  24、    --  HBP
                   .htotal = 1200 + 80 + 24 + 60、    à [HACT +  HFP +   HBP  + HSYNC]
                   .vdisplay = 1920、                             -- VACT
                   .vsync_start = 1920 +  20、             --  VFP
                   .vsync_end = 1920 + 20 +  4、       --  VBP
                   .vtotal = 1920 + 20 + 4 + 10、        à[VACT + VFP + VBP + VSYNC]
     
                   .flags = DRM_MODE_FLAG_NVSYNC | DRM_MODE_FLAG_NHSYNC、
    };
    “"</s>“

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

    我已成功配置​​1200x1920 分辨率​​正常显示,虽然它目前仅支持高达​​39 FPS​​。 我将​​根据您的建议继续进行测试​​、以确定可提供更好性能的时序参数。 感谢您的支持!

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

    尊敬的 mazel:

    我目前面临的问题与您之前遇到的问题相同、即 MIPI 显示屏无法通电。 由于您已经解决了问题、如果您能确认您所做的更改是否仅限于解决问题的特定修改、我将非常感激。 您的确认将非常有帮助。

    1) 驱动程序/GPU/DRM/bridge/cadence/CDN-DSI-CORE.c  

    #ifdef CONFIG_DRM_CDNS_DSI_J721E
     #include "cdns-dsi-j721e.h"
    @@ -972,6 +972,28 @@ static u32 *cdns_dsi_bridge_get_input_bus_fmts(struct drm_bridge *bridge,
            return input_fmts;
     }
     
    +static long cdns_dsi_round_pclk(struct cdns_dsi *dsi, unsigned long pclk)
    +{
    +       struct cdns_dsi_output *output = &dsi->output;
    +       unsigned int nlanes = output->dev->lanes;
    +       union phy_configure_opts phy_opts = { 0 };
    +       u32 bitspp;
    +       int ret;
    +
    +       bitspp = mipi_dsi_pixel_format_to_bpp(output->dev->format);
    +
    +       ret = phy_mipi_dphy_get_default_config(pclk, bitspp, nlanes,
    +                                              &phy_opts.mipi_dphy);
    +       if (ret)
    +               return ret;
    +
    +       ret = phy_validate(dsi->dphy, PHY_MODE_MIPI_DPHY, 0, &phy_opts);
    +       if (ret)
    +               return ret;
    +
    +       return div64_u64((u64)phy_opts.mipi_dphy.hs_clk_rate * nlanes, bitspp);
    +}
    +
     static int cdns_dsi_bridge_atomic_check(struct drm_bridge *bridge,
                                            struct drm_bridge_state *bridge_state,
                                            struct drm_crtc_state *crtc_state,
    @@ -982,6 +1004,25 @@ static int cdns_dsi_bridge_atomic_check(struct drm_bridge *bridge,
            struct cdns_dsi_bridge_state *dsi_state = to_cdns_dsi_bridge_state(bridge_state);
            const struct drm_display_mode *mode = &crtc_state->mode;
            struct cdns_dsi_cfg *dsi_cfg = &dsi_state->dsi_cfg;
    +       struct drm_display_mode *adjusted_crtc_mode = &crtc_state->adjusted_mode;
    +       struct videomode vm;
    +       long pclk;
    +
    +       /*
    +        * The DPHY PLL has quite a coarsely grained clock rate options. See
    +        * what hsclk rate we can achieve based on the pixel clock, convert it
    +        * back to pixel clock, set that to the adjusted_mode->clock. This is
    +        * all in hopes that the CRTC will be able to provide us the requested
    +        * clock, as otherwise the DPI and DSI clocks will be out of sync.
    +        */
    +
    +       pclk = cdns_dsi_round_pclk(dsi, mode->clock * 1000);
    +       if (pclk < 0)
    +               return (int)pclk;
    +
    +       adjusted_crtc_mode->clock = pclk / 1000;
    +
    +       drm_display_mode_to_videomode(adjusted_crtc_mode, &vm);
     
            return cdns_dsi_check_conf(dsi, mode, dsi_cfg, false);



    2) 设备树
    &dss {
    	status = "okay";
    	bootph-all;
    };
    
    &dss_ports {
    	#address-cells = <1>;
    	#size-cells = <0>;
    
    	port@0 {
    		reg = <0>;
    
    		dpi_out: endpoint {
    			remote-endpoint = <&dsi0_in>;
    		};
    	};
    };
    
    &dphy_tx0 {
    	status = "okay";
    	bootph-all;
    };
    
    &dsi0 {
    	status = "okay";
    	bootph-all;
    	#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 = <&dpi_out>;
    			};
    		};
    	};
    
    	panel@0 {
    		compatible = "qunxin,cg10132010";
    		v3p3-supply = <&vcc_3v3_sys>;
    		v1p8-supply = <&vcc_1v8>;
    		reg = <0>;
    		ports {
    			#address-cells = <1>;
    			#size-cells = <0>;
    
    			port@0 {
    				reg = <0>;
    				panel_in: endpoint {
    					remote-endpoint = <&dsi0_out>;
    				};
    			};
    		};
    	};
    };


    3) 驱动程序文件:drivers/GPU/DRM/panel/panel-simple.c

    .clock = 82550,
    .hdisplay = 800,
    .hsync_start = 800 + 100,
    .hsync_end = 800 + 100 + 32,
    .htotal = 800 + 100 + 32 + 80,
    .vdisplay = 1280,
    .vsync_start = 1280 + 20,
    .vsync_end = 1280 + 20 + 3,
    .vtotal = 1280 + 20 + 3 + 30,


    此致、
    Dheeraj K

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

    您好、

    drivers/GPU/DRM/bridge/cadence/CDN - DSI 内核.c 它可以保持不变、主要是需要注意屏幕时序。

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

    您好、  
    感谢您的更新

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

    尊敬的 Mazel:

    您能否展示或附加图像您的显示 GUI 看起来如何。Weston GUI 是否可见?

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

    尊敬的 Mazl:

    你可以确认这一次,显示是 1200x1920 分辨率与数据线 4?