AnsweredAssumed Answered

IMX8MM - DSI - PH720128T003 - ILI9881c-based DISPLAY

Question asked by Noel Vellemans on Jul 13, 2020
Latest reply on Jul 15, 2020 by Noel Vellemans

Hi all, 

 

i've been spending some weeks on connecting a MIPI-panel/display to the IMX8MM-evk ! 

 

I'm using kernel version linux-imx_4.14.98_2.0.0_ga ( and before linux-imx_4.14.78_1.0.0_ga) , both kernels do are resulting into the same 'trouble' , can't get the display working. (HDMI version is working out of the box) 

 

I've started writing a driver for the powertip-ph720128T0003-MIPI-DSI display  (based on rm67191 that is included into the kernel sources).

 

In order to initialize the display a "set of commands must be sent to the display" (over MIPI-DSI) ... and during the initial command transfer at certain point ( in panel_enable)  the MIPI-DSI controller 'STOPS' communicating ( no more IRQ's are being seen by the kernel)  { the display init commands exists out of a 285 command set over MIPI , at this time the init hangs after approx 53 commands being send out over mipi}

 

In order to track down the reason i've been logging every access to de MIPI-DSI device controller ( located into the file sec-dsim.c) . { read and writes to the registers are written / logged in syslog ( a full syslog is included just for reference)}

 

the issue i'm facing is that at certain point in the init-phase the 'sec_mipi_dsim_irq_handler' is getting no longer the 'SFRPHFIFOEMPTY' interrupts.

Just before the loss of  'SFRPHFIFOEMPTY' interrupts, I see a status 'st=0x8010040E' in the interrupt routine at that time I no longer get the 'INTSRC_SFRPHFIFOEMPTY' interrupt ( FY in normal cases it is 'st=0x8010010F') 

 

The IMX8MM reference manual is not very clear on why this can happen ... ( in fact the 'description' on why this could happen.. is not there ).

 

[ 1.983040] READ : reg:0x00000004 val=0x8010010F
[ 1.983043] sec_mipi_dsim_irq_handler-1 sr=0x10000000 - st=0x8010010F - msk=0x0B00FFFF
[ 1.983047] WRITE : reg:0x00000034 val=0x10000000
[ 1.983055] ####ph720128T003_panel_enable-Send MANUF-CMDS [53]
[ 1.983057] ili9881c_send_cmd_data - 0x35,0x00
[ 1.983060] READ : reg:0x0000001C val=0x00000080
[ 1.983063] WRITE : reg:0x0000001C val=0x00000080
[ 1.983065] WRITE : reg:0x0000003C val=0x00003515
[ 1.983075] READ : reg:0x00000038 val=0x0B00FFFF
[ 1.983077] READ : reg:0x00000034 val=0x10000000
[ 1.983081] READ : reg:0x00000004 val=0x8010040E
[ 1.983085] sec_mipi_dsim_irq_handler-1 sr=0x10000000 - st=0x8010040E - msk=0x0B00FFFF
[ 1.983088] WRITE : reg:0x00000034 val=0x10000000
[ 1.983096] ####ph720128T003_panel_enable-Send MANUF-CMDS [54]
[ 1.983101] ili9881c_send_cmd_data - 0x36,0x00
[ 1.983104] READ : reg:0x0000001C val=0x00000080
[ 1.983106] WRITE : reg:0x0000001C val=0x00000080
[ 1.983109] WRITE : reg:0x0000003C val=0x00003615
[ 2.236741] READ : reg:0x00000034 val=0x00000000
[ 2.236744] READ : reg:0x00000004 val=0x8010040E
[ 2.236748] sec_mipi_dsim_host_transfer-2 ERROR HANDLER sr=0x00000000 - st=0x8010040E
[ 2.236755] imx_sec_dsim_drv 32e10000.mipi_dsi: wait pkthdr tx done time out
[ 2.236758] ####ph720128T003_panel_enable init fail in 54, ret: fffffff0
[ 2.236762] imx_sec_dsim_drv 32e10000.mipi_dsi: panel enable failed: -16

 

once the "MIPI-DSI' controller get into this 'state' .. it is no longer possible to send something out to the 'display' over MIPI-DSI.

 

I see lots of issues/troubles/questions on the MIPI-DSI in this forum, and everybody is pointing you the same example as reference... but i've been looking 1001 times to this rm67191 as reference,.. so pointing me into this direction won't bring me anything.

 

Anyone that is able to give me some feedback .. and or possible work around.

 

Even better would be pointing me to a known-working version of the kernel on MIPI-DSI..  { i see a different behavior between linux-imx_4.14.98_2.0.0_ga and linux-imx_4.14.78_1.0.0_ga.. when i use the same drivers}

 

Furthermore when using the rm67191 driver ( just to log the init phase , i see that it 'stalls' on a similar place during the the panel_enable functions)

 

 

 

Best regards,

Noel

 

Attachments

Outcomes