AnsweredAssumed Answered

i.MX8Mmini mipi dsi Problem with ILI9806E

Question asked by jongsoo park on Sep 30, 2019
Latest reply on Oct 7, 2019 by igorpadykov

Hi, 

I'm trying to porting mipi lcd (ILI9806E, 480 x 800) on my custom board based on i.MX8Mmini. 

Like the attached data sheet(ILI9806E_IDT_V091_20130711.pdf), the MIPI interface is designed with 2 lanes.
Firstly, I modified the dts file and added the driver file as an attachment.
LCD power, data and clock are all normal.

When initializing LCD through MIPI, Tx Timeout error occurs at the first Command as below.

It seems to be an error caused by not giving Ack on the LCD.

1. I wonder what causes this error.
2. What kind of LCD Driver IC has been confirmed the interface in i.MX8 series.
3. Please share any MIPI LCD porting information.

 

[ 1.210961] msm_serial: driver initialized
[ 1.224950] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[ 1.231590] [drm] No driver support for vblank timestamp query.
[ 1.237597] imx-drm display-subsystem: bound imx-lcdif-crtc.0 (ops lcdif_crtc_ops)
[ 1.245272] imx_sec_dsim_drv 32e10000.mipi_dsi: version number is 0x1060200
[ 1.273600] imx-drm display-subsystem: bound 32e10000.mipi_dsi (ops imx_sec_dsim_ops)
[ 1.848042] ------------[ cut here ]------------
[ 1.848052] WARNING: CPU: 0 PID: 1 at drivers/gpu/drm/bridge/sec-dsim.c:1656 sec_mipi_dsim_irq_handler+0x180/0x210
[ 1.848055] Modules linked in:
[ 1.848063] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.14.78 #144
[ 1.848065] Hardware name: FSL i.MX8MM EVK board (DT)
[ 1.848068] task: ffff80007a3b0000 task.stack: ffff000008078000
[ 1.848073] PC is at sec_mipi_dsim_irq_handler+0x180/0x210
[ 1.848081] LR is at __handle_irq_event_percpu+0x5c/0x148
[ 1.848085] pc : [<ffff000008626878>] lr : [<ffff00000811b694>] pstate: 000001c5
[ 1.848089] sp : ffff000008003e60
[ 1.848091] x29: ffff000008003e60 x28: ffff80007a3b0000
[ 1.848098] x27: 0000000000000001 x26: ffff0000090a84e8
[ 1.848105] x25: ffff0000094e1df3 x24: ffff80007a81dc00
[ 1.848109] x23: 0000000000000039 x22: ffff000008003f0c
[ 1.848113] x21: 0000000000000000 x20: ffff80007adfa018
[ 1.848118] x19: 0000000000200007 x18: 0000000000000007
[ 1.848122] x17: 0000000000000001 x16: 0000000000000019
[ 1.848126] x15: 0000000000000033 x14: 000000000000004c
[ 1.848130] x13: 0000000000000068 x12: ffff000008de6cd8
[ 1.848135] x11: ffff80007ff686c0 x10: 0000000000000040
[ 1.848139] x9 : ffff000009392668 x8 : ffff800076000248
[ 1.848144] x7 : ffff800076000270 x6 : 0000000000000000
[ 1.848148] x5 : ffff800076000248 x4 : 0000800076c0a000
[ 1.848152] x3 : ffff000008003f40 x2 : ffff0000086266f8
[ 1.848157] x1 : 00000000f1370000 x0 : 000000008011040e
[ 1.848163] Call trace:
[ 1.848167] Exception stack(0xffff000008003d20 to 0xffff000008003e60)
[ 1.848173] 3d20: 000000008011040e 00000000f1370000 ffff0000086266f8 ffff000008003f40
[ 1.848177] 3d40: 0000800076c0a000 ffff800076000248 0000000000000000 ffff800076000270
[ 1.848181] 3d60: ffff800076000248 ffff000009392668 0000000000000040 ffff80007ff686c0
[ 1.848186] 3d80: ffff000008de6cd8 0000000000000068 000000000000004c 0000000000000033
[ 1.848194] 3da0: 0000000000000019 0000000000000001 0000000000000007 0000000000200007
[ 1.848198] 3dc0: ffff80007adfa018 0000000000000000 ffff000008003f0c 0000000000000039
[ 1.848203] 3de0: ffff80007a81dc00 ffff0000094e1df3 ffff0000090a84e8 0000000000000001
[ 1.848207] 3e00: ffff80007a3b0000 ffff000008003e60 ffff00000811b694 ffff000008003e60
[ 1.848212] 3e20: ffff000008626878 00000000000001c5 ffff000008003e90 ffff0000085b3830
[ 1.848216] 3e40: 0000ffffffffffff 00000000fffedcb2 ffff000008003e60 ffff000008626878
[ 1.848221] [<ffff000008626878>] sec_mipi_dsim_irq_handler+0x180/0x210
[ 1.848226] [<ffff00000811b694>] __handle_irq_event_percpu+0x5c/0x148
[ 1.848231] [<ffff00000811b79c>] handle_irq_event_percpu+0x1c/0x58
[ 1.848236] [<ffff00000811b820>] handle_irq_event+0x48/0x78
[ 1.848244] [<ffff00000811f5f8>] handle_fasteoi_irq+0xa8/0x180
[ 1.848251] [<ffff00000811a7b4>] generic_handle_irq+0x24/0x38
[ 1.848255] [<ffff00000811ae34>] __handle_domain_irq+0x5c/0xb8
[ 1.848262] [<ffff000008081960>] gic_handle_irq+0x78/0x174
[ 1.848265] Exception stack(0xffff00000807b0f0 to 0xffff00000807b230)
[ 1.848268] b0e0: 0000000000000020 ffff80007a3b0000
[ 1.848276] b100: 0000800076c0a000 ffffffffffffffff 0000000000000000 0000000000000000
[ 1.848280] b120: 0000000001fbeeea 0000000000000000 ffff00000951208f 0000000000000000
[ 1.848285] b140: ffff000009509000 0000000000000000 ffff000009392000 ffff000009509d5a
[ 1.848289] b160: 00000000fffffff0 ffff000009392000 0000000000000000 0000000000000005
[ 1.848293] b180: 0000000000000001 ffff0000095097e8 0000000000000017 ffff000009509818
[ 1.848297] b1a0: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
[ 1.848302] b1c0: ffff00000912b938 ffff00000807b2c0 0000000000000040 ffff00000807b230
[ 1.848308] b1e0: ffff000008118f30 ffff00000807b230 ffff000008118f34 0000000040000045
[ 1.848313] b200: 0000000000000000 ffff00000912b938 ffffffffffffffff ffff00000807b3f0
[ 1.848316] b220: ffff00000807b230 ffff000008118f34
[ 1.848322] [<ffff000008083230>] el1_irq+0xb0/0x124
[ 1.848329] [<ffff000008118f34>] vprintk_emit+0xb4/0x140
[ 1.848333] [<ffff000008119150>] vprintk_default+0x38/0x40
[ 1.848337] [<ffff00000811a648>] vprintk_func+0x100/0x1c8
[ 1.848341] [<ffff000008119f34>] printk+0x4c/0x54
[ 1.848347] [<ffff0000086274b8>] sec_mipi_dsim_host_transfer+0x308/0x4e0
[ 1.848354] [<ffff00000861b78c>] mipi_dsi_device_transfer.isra.0+0x44/0x58
[ 1.848359] [<ffff00000861ba60>] mipi_dsi_dcs_write_buffer+0x58/0x70
[ 1.848365] [<ffff00000861dd84>] wkd_panel_enable+0xbc/0x1b8
[ 1.848372] [<ffff000008627c60>] sec_mipi_dsim_bridge_enable+0x350/0x47c
[ 1.848377] [<ffff00000860a1c8>] drm_bridge_enable+0x28/0x40
[ 1.848384] [<ffff0000085e7800>] drm_atomic_helper_commit_modeset_enables+0x120/0x1b0
[ 1.848393] [<ffff00000863e3ac>] lcdif_drm_atomic_commit_tail+0x2c/0x68
[ 1.848398] [<ffff0000085ea98c>] commit_tail+0x44/0x88
[ 1.848402] [<ffff0000085eac10>] drm_atomic_helper_commit+0x140/0x148
[ 1.848407] [<ffff000008607aa8>] drm_atomic_commit+0x50/0x60
[ 1.848414] [<ffff0000085ed8a8>] restore_fbdev_mode_atomic+0x1f0/0x220
[ 1.848422] [<ffff0000085ee544>] restore_fbdev_mode+0x24/0x178
[ 1.848430] [<ffff0000085f0880>] drm_fb_helper_restore_fbdev_mode_unlocked.part.25+0x28/0xa0
[ 1.848435] [<ffff0000085f071c>] drm_fb_helper_set_par+0x54/0x90
[ 1.848442] [<ffff0000084c5b78>] fbcon_init+0x448/0x5a0
[ 1.848450] [<ffff0000085801d4>] visual_init+0xb4/0x108
[ 1.848454] [<ffff000008581dec>] do_bind_con_driver+0x1bc/0x3c8
[ 1.848458] [<ffff00000858232c>] do_take_over_console+0xa4/0x210
[ 1.848463] [<ffff0000084c5d3c>] do_fbcon_takeover+0x6c/0xf0
[ 1.848470] [<ffff0000084c9568>] fbcon_event_notify+0x9d0/0xa48
[ 1.848477] [<ffff0000080eeea0>] notifier_call_chain+0x50/0x90
[ 1.848484] [<ffff0000080ef790>] blocking_notifier_call_chain+0x48/0x70
[ 1.848491] [<ffff0000084bb68c>] fb_notifier_call_chain+0x1c/0x28
[ 1.848496] [<ffff0000084bd39c>] register_framebuffer+0x204/0x338
[ 1.848502] [<ffff0000085f0470>] __drm_fb_helper_initial_config_and_unlock+0x1e8/0x3f0
[ 1.848507] [<ffff0000085f06b8>] drm_fb_helper_initial_config+0x40/0x50
[ 1.848512] [<ffff0000085f0c4c>] drm_fbdev_cma_init_with_funcs+0x8c/0x150
[ 1.848518] [<ffff0000085f0d28>] drm_fbdev_cma_init+0x18/0x20
[ 1.848524] [<ffff000008628884>] imx_drm_bind+0x174/0x288
[ 1.848530] [<ffff0000086403e8>] try_to_bring_up_master+0x178/0x1d8
[ 1.848535] [<ffff0000086404e0>] component_add+0x98/0x160
[ 1.848542] [<ffff00000863df50>] lcdif_crtc_probe+0x20/0x40
[ 1.848549] [<ffff000008648360>] platform_drv_probe+0x58/0xb8
[ 1.848554] [<ffff000008646740>] driver_probe_device+0x210/0x2d0
[ 1.848558] [<ffff0000086468bc>] __driver_attach+0xbc/0xc0
[ 1.848563] [<ffff00000864489c>] bus_for_each_dev+0x4c/0x98
[ 1.848569] [<ffff000008646058>] driver_attach+0x20/0x28
[ 1.848574] [<ffff000008645ba8>] bus_add_driver+0x1b8/0x228
[ 1.848578] [<ffff000008647258>] driver_register+0x60/0xf8
[ 1.848585] [<ffff0000086482b0>] __platform_driver_register+0x40/0x48
[ 1.848591] [<ffff000009285630>] lcdif_crtc_driver_init+0x18/0x20
[ 1.848596] [<ffff000008083c90>] do_one_initcall+0x38/0x128
[ 1.848602] [<ffff000009240d04>] kernel_init_freeable+0x188/0x22c
[ 1.848612] [<ffff000008c9e2d0>] kernel_init+0x10/0x108
[ 1.848616] [<ffff000008084ed8>] ret_from_fork+0x10/0x18
[ 1.848625] ---[ end trace 861b5a283fdf9247 ]---
[ 1.848632] imx_sec_dsim_drv 32e10000.mipi_dsi: LP RX timeout
[ 2.126264] imx_sec_dsim_drv 32e10000.mipi_dsi: wait payload tx done time out
[ 2.126273] imx_sec_dsim_drv 32e10000.mipi_dsi: panel enable failed: -16
[ 2.196674] Console: switching to colour frame buffer device 60x50
[ 2.967461] imx-drm display-subsystem: fb0: frame buffer device
[ 2.973809] [drm] Initialized imx-drm 1.0.0 20120507 for display-subsystem on minor 0
[ 2.986911] loop: module loaded

Outcomes