Skip to main content
Explorer
November 4, 2025
Solved

Issue with otm8009a mipi dsi panel configuration on the stm32mp157c-odyssey

  • November 4, 2025
  • 1 reply
  • 176 views

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 directory

But 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 pitch

So 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 

    This topic has been closed for replies.
    Best answer by hypnotriod

    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



    1 reply

    hypnotriodAuthorAnswer
    Explorer
    November 4, 2025

    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