2025-11-04 4:33 AM
Hello. I'm trying to configure the otm8009a 800x480 display panel from the stm32mp157f-dk2 dev kit on the Seeed Studio's stm32mp157c-odyssey board.
The issue is that by probing display with modetest -M stm I'm getting:
failed to open device 'stm': No such file or directoryBut with modetest -M simpledrm I'm getting this output:
Encoders:
id crtc type possible crtcs possible clones
34 0 none 0x00000001 0x00000001
Connectors:
id encoder status name size (mm) modes encoders
35 0 connected Unknown-1 127x211 1 34
modes:
index name refresh (Hz) hdisp hss hse htot vdisp vss vse vtot
#0 480x800 60.00 480 480 480 480 800 800 800 800 23040 flags: ; 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: 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:
CRTCs:
id fb pos size
33 0 (0,0) (0x0)
#0 nan 0 0 0 0 0 0 0 0 0 flags: ; type:
props:
24 VRR_ENABLED:
flags: range
values: 0 1
value: 0
Planes:
id crtc fb CRTC x,y x,y gamma size possible crtcs
31 0 0 0,0 0,0 0 0x00000001
formats: RG16 XR24
props:
8 type:
flags: immutable enum
enums: Overlay=0 Primary=1 Cursor=2
value: 1
30 IN_FORMATS:
flags: immutable blob
blobs:
value:
01000000000000000200000018000000
01000000200000005247313658523234
03000000000000000000000000000000
0000000000000000
in_formats blob decoded:
RG16: LINEAR
XR24: LINEAR
Frame buffers:
id size pitchSo display is actually working with simpledrm and I am able to launch weston. But with the bad performance.
What am I doing wrong or missing something?
Any help or advice would be appreciated! Thanks!
This is the dts file I have so far: stm32mp157c-odyssey.dts
Solved! Go to Solution.
2025-11-04 6:28 AM - edited 2025-11-09 2:13 AM
Sorry. My bad. Didn't pay attention to the last logs I got.
I added pin configurations for the LCD GRB interface in the ltdc node. But this board doesn't have such type of connector, only MIPI DSI. So I've got conflicting pins.
Anyway, this is my working dts file so far.
debian@stm32mp157c-odyssey:~$ modetest -M stm
Encoders:
id crtc type possible crtcs possible clones
31 38 DSI 0x00000001 0x00000001
Connectors:
id encoder status name size (mm) modes encoders
32 31 connected DSI-1 52x86 1 31
modes:
index name refresh (Hz) hdisp hss hse htot vdisp vss vse vtot
#0 480x800 50.00 480 578 610 708 800 815 825 839 29700 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:
33 dithering:
flags: enum
enums: Off=0 On=1
value: 0
CRTCs:
id fb pos size
38 43 (0,0) (480x800)
#0 480x800 50.00 480 578 610 708 800 815 825 839 29700 flags: nhsync, nvsync; type: preferred, driver
props:
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
34 38 43 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
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 alpha:
flags: range
values: 0 65535
value: 65535
37 zpos:
flags: immutable range
values: 0 0
value: 0
39 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
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
41 alpha:
flags: range
values: 0 65535
value: 65535
42 zpos:
flags: immutable range
values: 1 1
value: 1
Frame buffers:
id size pitch2025-11-04 6:28 AM - edited 2025-11-09 2:13 AM
Sorry. My bad. Didn't pay attention to the last logs I got.
I added pin configurations for the LCD GRB interface in the ltdc node. But this board doesn't have such type of connector, only MIPI DSI. So I've got conflicting pins.
Anyway, this is my working dts file so far.
debian@stm32mp157c-odyssey:~$ modetest -M stm
Encoders:
id crtc type possible crtcs possible clones
31 38 DSI 0x00000001 0x00000001
Connectors:
id encoder status name size (mm) modes encoders
32 31 connected DSI-1 52x86 1 31
modes:
index name refresh (Hz) hdisp hss hse htot vdisp vss vse vtot
#0 480x800 50.00 480 578 610 708 800 815 825 839 29700 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:
33 dithering:
flags: enum
enums: Off=0 On=1
value: 0
CRTCs:
id fb pos size
38 43 (0,0) (480x800)
#0 480x800 50.00 480 578 610 708 800 815 825 839 29700 flags: nhsync, nvsync; type: preferred, driver
props:
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
34 38 43 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
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 alpha:
flags: range
values: 0 65535
value: 65535
37 zpos:
flags: immutable range
values: 0 0
value: 0
39 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
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
41 alpha:
flags: range
values: 0 65535
value: 65535
42 zpos:
flags: immutable range
values: 1 1
value: 1
Frame buffers:
id size pitch