LINUX.ORG.RU

Запуск экрана AUO H497TLB01.0 через Toshiba tc358778xbg на stm32mp157c-dk2

 , ,


0

1

Здравствуйте. Имеется следующая проблема, нужно запустить экран AUO H497TLB01.0 через преобразователь Toshiba tc358778xbg на stm32mp157c-dk2.

При запуске modetest -s 32:720x1280, экране постепенно заполняется бело-желтым цветом. Остается черная полоса в низу экрана примерно 1см. Вывод modetest

root@stm32mp1:~# modetest
trying to open device 'i915'...failed
trying to open device 'amdgpu'...failed
trying to open device 'radeon'...failed
trying to open device 'nouveau'...failed
trying to open device 'vmwgfx'...failed
trying to open device 'omapdrm'...failed
trying to open device 'exynos'...failed
trying to open device 'tilcdc'...failed
trying to open device 'msm'...failed
trying to open device 'sti'...failed
trying to open device 'tegra'...failed
trying to open device 'imx-drm'...failed
trying to open device 'rockchip'...failed
trying to open device 'atmel-hlcdc'...failed
trying to open device 'fsl-dcu-drm'...failed
trying to open device 'vc4'...failed
trying to open device 'virtio_gpu'...failed
trying to open device 'mediatek'...failed
trying to open device 'meson'...failed
trying to o[  275.093312] panel_simple_of_get_native_mode 1
[  275.097499] panel_simple_of_get_native_mode 2
[  275.101943] panel_simple_of_get_native_mode 3
[  275.106256] panel_simple_of_get_native_mode 4
pen devi[  275.111786] ltdc_crtc_mode_valid 0 mode: 720x1280
ce 'pl111'...failed
trying to open device 'stm'...done
Encoders:
id      crtc    type    possible crtcs  possible clones
31      0       DPI     0x00000001      0x00000000

Connectors:
id      encoder status          name            size (mm)       modes   encoders
32      0       connected       DSI-1           0x0             1       31
  modes:
        name refresh (Hz) hdisp hss hse htot vdisp vss vse vtot)
  720x1280 58 720 736 741 752 1280 1296 1301 1312 57153 flags: nhsync, nvsync; type: preferred
  props:
        1 EDID:
                flags: immutable blob
                blobs:

                value:
        2 DPMS:
                flags: enum
                enums: On=0 Standby=1 Suspend=2 Off=3
                value: 3
        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:
        20 CRTC_ID:
                flags: object
                value: 0

CRTCs:
id      fb      pos     size
35      0       (0,0)   (0x0)
   0 0 0 0 0 0 0 0 0 0 flags: ; type: 
  props:
        22 ACTIVE:
                flags: range
                values: 0 1
                value: 0
        23 MODE_ID:
                flags: blob
                blobs:

                value:
        19 OUT_FENCE_PTR:
                flags: range
                values: 0 18446744073709551615
                value: 0
        24 VRR_ENABLED:
                flags: range
                values: 0 1
                value: 0
        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
33      0       0       0,0             0,0     0               0x00000001
  formats: AR24 XR24 RG24 RG16 AR15 XR15 AR12 XR12 C8  
  props:
        8 type:
                flags: immutable enum
                enums: Overlay=0 Primary=1 Cursor=2
                value: 1
        17 FB_ID:
                flags: object
                value: 0
        18 IN_FENCE_FD:
                flags: signed range
                values: -1 2147483647
                value: -1
        20 CRTC_ID:
                flags: object
                value: 0
        13 CRTC_X:
                flags: signed range
                values: -2147483648 2147483647
                value: 0
        14 CRTC_Y:
                flags: signed range
                values: -2147483648 2147483647
                value: 0
        15 CRTC_W:
                flags: range
                values: 0 2147483647
                value: 720
        16 CRTC_H:
                flags: range
                values: 0 2147483647
                value: 1280
        9 SRC_X:
                flags: range
                values: 0 4294967295
                value: 0
        10 SRC_Y:
                flags: range
                values: 0 4294967295
                value: 0
        11 SRC_W:
                flags: range
                values: 0 4294967295
                value: 47185920
        12 SRC_H:
                flags: range
                values: 0 4294967295
                value: 83886080
        30 IN_FORMATS:
                flags: immutable blob
                blobs:

                value:
                        01000000000000000900000018000000
                        01000000400000004152323458523234
                        52473234524731364152313558523135
                        41523132585231324338202000000000
                        ff010000000000000000000000000000
                        0000000000000000
                in_formats blob decoded:
                         AR24:  LINEAR
                         XR24:  LINEAR
                         RG24:  LINEAR
                         RG16:  LINEAR
                         AR15:  LINEAR
                         XR15:  LINEAR
                         AR12:  LINEAR
                         XR12:  LINEAR
                         C8  :  LINEAR
36      0       0       0,0             0,0     0               0x00000001
  formats: AR24 RG24 RG16 AR15 AR12 C8  
  props:
        8 type:
                flags: immutable enum
                enums: Overlay=0 Primary=1 Cursor=2
                value: 0
        17 FB_ID:
                flags: object
                value: 0
        18 IN_FENCE_FD:
                flags: signed range
                values: -1 2147483647
                value: -1
        20 CRTC_ID:
                flags: object
                value: 0
        13 CRTC_X:
                flags: signed range
                values: -2147483648 2147483647
                value: 0
        14 CRTC_Y:
                flags: signed range
                values: -2147483648 2147483647
                value: 0
        15 CRTC_W:
                flags: range
                values: 0 2147483647
                value: 0
        16 CRTC_H:
                flags: range
                values: 0 2147483647
                value: 0
        9 SRC_X:
                flags: range
                values: 0 4294967295
                value: 0
        10 SRC_Y:
                flags: range
                values: 0 4294967295
                value: 0
        11 SRC_W:
                flags: range
                values: 0 4294967295
                value: 0
        12 SRC_H:
                flags: range
                values: 0 4294967295
                value: 0
        30 IN_FORMATS:
                flags: immutable blob
                blobs:

                value:
                        01000000000000000600000018000000
                        01000000300000004152323452473234
                        52473136415231354152313243382020
                        3f000000000000000000000000000000
                        0000000000000000
                in_formats blob decoded:
                         AR24:  LINEAR
                         RG24:  LINEAR
                         RG16:  LINEAR
                         AR15:  LINEAR
                         AR12:  LINEAR
                         C8  :  LINEAR

Frame buffers:
id      size    pitch

Отрывок файла dts

i2c@5c002000 {
			compatible = "st,stm32mp15-i2c";
			reg = <0x5c002000 0x400>;
			interrupt-names = "event\0error";
			interrupts-extended = <0x1e 0x18 0x04 0x07 0x00 0x60 0x04>;
			clocks = <0x01 0x0d>;
			resets = <0x59 0x01>;
			#address-cells = <0x01>;
			#size-cells = <0x00>;
			power-domains = <0x1a>;
			st,syscfg-fmp = <0x0d 0x04 0x08>;
			wakeup-source;
			status = "okay";
			pinctrl-names = "default\0sleep";
			pinctrl-0 = <0x6e>;
			pinctrl-1 = <0x6f>;
			i2c-scl-rising-time-ns = <0xb9>;
			i2c-scl-falling-time-ns = <0x14>;
			clock-frequency = <0x61a80>;
dsi-bridge@e {
				compatible = "toshiba,tc358778";
				reg = <0x0e>;
				status = "okay";
				clocks = <0x76>;
				clock-names = "refclk";
				reset-gpios = <0x29 0x0a 0x01>;
				vddc-supply = <0x28>;
				vddmipi-supply = <0x28>;
				vddio-supply = <0x27>;

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

					port@0 {
						reg = <0x00>;

						endpoint {
							remote-endpoint = <0x2b>;
							data-lines = <0x18>;
							phandle = <0x6a>;
						};
					};

					port@1 {
						reg = <0x01>;

						endpoint {
							remote-endpoint = <0x77>;
							lanes = <0x00 0x01 0x02 0x03 0x04>;
							phandle = <0x7a>;
						};
					};
				};

				dsi_panel@0 {
					compatible = "simple-panel-dsi";
					reg = <0x00>;
					power-supply = <0x2e>;
					reset-gpios = <0x78 0x01 0x01>;
					reset-delay-ms = <0x3c>;
					init-delay-ms = <0x64>;
					enable-delay-ms = <0x14>;
					prepare-delay-ms = <0x14>;
					disable-delay-ms = <0x14>;
					unprepare-delay-ms = <0x14>;
					panel-width-mm = <0x3e>;
					panel-height-mm = <0x6e>;
					flip-horizontal;
					flip-vertical;
					dsi,flags = <0x01>;
					dsi,format = <0x03>;
					dsi,lanes = <0x04>;
					panel-init-sequence = [39 00 06 f0 55 aa 52 08 00 39 00 04 b0 00 10 10 15 00 02 ba 60 39 00 08 bb 00 00 00 00 00 00 00 39 00 09 c0 c0 04 00 20 02 e4 e1 c0 39 00 09 c1 c0 04 00 20 04 e4 e1 c0 39 00 06 f0 55 aa 52 08 02 39 00 06 ea 7f 20 00 00 00 15 00 02 ca 04 15 00 02 e1 00 15 00 02 e2 0a 15 00 02 e3 40 39 00 05 e7 00 00 00 00 39 00 09 ed 48 00 e0 13 08 00 91 08 39 00 07 fd 00 08 1c 00 00 01 39 00 0c c3 11 24 04 0a 02 04 00 1c 10 f0 00 39 00 06 f0 55 aa 52 08 03 15 00 02 e0 00 39 00 07 f1 00 00 00 00 00 15 15 00 02 f6 08 39 00 06 f0 55 aa 52 08 05 39 00 06 c3 00 10 50 50 50 39 00 03 c4 00 14 15 00 02 c9 04 39 00 06 f0 55 aa 52 08 01 39 00 04 b0 06 06 06 39 00 04 b1 14 14 14 39 00 04 b2 00 00 00 39 00 04 b4 66 66 66 39 00 04 b5 44 44 44 39 00 04 b6 54 54 54 39 00 04 b7 24 24 24 39 00 04 b9 04 04 04 39 00 04 ba 14 14 14 39 00 04 be 22 38 78 15 00 02 35 00 15 05 02 11 00 15 c8 02 29 00];
					
					panel-exit-sequence = [15 0a 02 10 00 15 14 02 28 00];

					display-timings {
						native-mode = <0x79>;

						timing0 {
							clock-frequency = <0x3681840>;
							hactive = <0x2d0>;
							vactive = <0x500>;
							hfront-porch = <0x10>;
							hback-porch = <0x0b>;
							hsync-len = <0x05>;
							hsync-active = <0x00>;
							vfront-porch = <0x10>;
							vback-porch = <0x0b>;
							vsync-len = <0x05>;
							vsync-active = <0x00>;
							phandle = <0x79>;
						};
					};

					port@0 {
						reg = <0x00>;

						endpoint {
							remote-endpoint = <0x7a>;
							lanes = <0x00 0x01 0x02 0x03 0x04>;
							phandle = <0x77>;
						};
					};
				};

Весь dts выложить не могу, ругается на длину сообщения. Заранее спасибо.

преобразователь Toshiba tc358778xbg на stm32mp157c-dk2

стесняюсь спросить - для чего внешний RGB->DSI бридж если у процессора есть свой встроенный ?

The DSI device tree node is declared in stm32mp157.dtsi

https://wiki.st.com/stm32mpu/wiki/DSI_device_tree_configuration

У DSI панелей вся мякотка тут

panel-init-sequence = [39 00 06 f0 55 …

откуда инициализацию ?

anonymous
()
Ответ на: комментарий от anonymous

Нашел на гитхабе, драйвер под андроид, а также мой коллега по работе дал тоже самое. Но также он мне дал даташит, на этот экран и там инит строчки совершенно другие. Но у него на баре металл все работает, так что мне кажется я поднимаю железку, о которой я ничего не знаю и даташита на неё верного у меня нету. А так как экран запускается, хоть и выдает абстракции Малевича, мне кажется ошибка где-то в синхронизации.

kiruseni
() автор топика
Ответ на: комментарий от kiruseni

Нашел на гитхабе

само ядро откуда ? simple-panel-dsi, panel-init-sequence - это какой-то патченый вариант драйвера panel-simple, помоему от rockchip. Судя по логу вроде что-то загружается но я не уверен что инит панели происходит.

anonymous
()
Ответ на: комментарий от anonymous

Самосборное через билдрут, с ядром из офф гитхаба стм. Драйвер panel-simple. Я думаю это стандартное, так как данный драйвер есть и в гитхабе Торвальда. А почему вы решили, что не происходит инита панели? Она же что-то выводит, хоть это и напоминает абстракции. Если инита нету, то логично же просто ничего не выводить. Данную инит последовательность использует мой коллега, на том же самом устройстве, и у него изображение есть. Но он пишет на баре металле.

kiruseni
() автор топика
Ответ на: комментарий от kiruseni

с ядром из офф гитхаба стм

ссылка есть прямая ? я скачал с их оффсайта по ссылке из вики - там нет патчей рокчипа

https://wiki.st.com/stm32mpu/wiki/STM32MP1_Developer_Package_-_Linux_kernel

Я думаю это стандартное, так как данный драйвер есть и в гитхабе Торвальда

драйвер там есть

https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/drivers/gpu/drm/panel/panel-simple.c?h=v5.15.6

но там нет таких биндингов которые вы описываетет в DT

compatible = «simple-panel-dsi»;

panel-init-sequence

А почему вы решили, что не происходит инита панели?

если в драйвере нет кода для обработки соотвествущих биндингов можно что угодно написать в DT но дравер это просто проигнорирует

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.