We have used Pandaboard ES.
When we running MIPI DSI HS mode.
Could we transfer data that we wanted ??
thank you.
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
We have used Pandaboard ES.
When we running MIPI DSI HS mode.
Could we transfer data that we wanted ??
thank you.
What do you mean? Other than display data?
MIPI DSI is designed for pixel and display related commands.
If you mean transfer data from the panel to OMAP, MIPI DSI defines the Bus Turn Around mechanism, to allow the displays to send information to the host.
Please check
OMAP TRM
10.3.4.4.3.5.1 HS Command Mode Interleaving
10.3.4.4.8 Bus Turnaround
Hi Rafael
I have refer the HS Command Mode Interleaving chap.
But I have some question here.
1. How to calculate these settings?? (EX:HS_INTERLEAVING = BLANKING_PERIOD - (ENTER_HS_MODE_LATENCY+EXIT_HS_MODE_LATENCY+max{ENTER_HS_MODE_LATENCY,2}+1) ) , have a recommand value about BLANKING_PERIOD , ENTER_HS_MODE_LATENCY , EXIT_HS_MODE_LATENCY ?
How to set the settings below ??
* TODO: either calculate these values or make them configurable */
r = FLD_VAL(72, 23, 16) | /* HSA_HS_INTERLEAVING */
FLD_VAL(114, 15, 8) | /* HFB_HS_INTERLEAVING */
FLD_VAL(150, 7, 0); /* HbB_HS_INTERLEAVING */
dsi_write_reg(dsidev, DSI_VM_TIMING4, r);
r = FLD_VAL(130, 23, 16) | /* HSA_LP_INTERLEAVING */
FLD_VAL(223, 15, 8) | /* HFB_LP_INTERLEAVING */
FLD_VAL(59, 7, 0); /* HBB_LP_INTERLEAVING */
dsi_write_reg(dsidev, DSI_VM_TIMING5, r);
r = FLD_VAL(0x7A67, 31, 16) | /* BL_HS_INTERLEAVING */
FLD_VAL(0x31D1, 15, 0); /* BL_LP_INTERLEAVING */
dsi_write_reg(dsidev, DSI_VM_TIMING6, r);
2. I have write a sysfs to write command to panel on display driver. (HS command mode packets means long packet or short packet??)
But when we write the command, the display will be black.
I think the kernel have some error here.
Am I miss some setting here??(I have use default Interleaving time)
[ 504.411926] omapdss DISPC: GO LCD
[ 504.498931] omapdss DSI: dsi_vc_send_long, 1 bytes
[ 504.498931] ------------[ cut here ]------------
[ 504.498931] WARNING: at /home/william/Android/linaro_android/android/kernel)
[ 504.498962] Modules linked in:
[ 504.498962] [<c0019cf8>] (unwind_backtrace+0x0/0xf8) from [<c0042d40>] (war)
[ 504.498992] [<c0042d40>] (warn_slowpath_common+0x4c/0x64) from [<c0042d74>])
[ 504.498992] [<c0042d74>] (warn_slowpath_null+0x1c/0x24) from [<c030b970>] ()
[ 504.499023] [<c030b970>] (dsi_vc_send_long.constprop.21+0xa4/0x2b0) from [<)
[ 504.499023] [<c030bbf4>] (dsi_vc_dcs_write_nosync+0x30/0x40) from [<c03183b)
[ 504.499053] [<c03183bc>] (store_command_send+0x5c/0x90) from [<c03723d0>] ()
[ 504.499053] [<c03723d0>] (dev_attr_store+0x18/0x24) from [<c0130bc8>] (sysf)
[ 504.499084] [<c0130bc8>] (sysfs_write_file+0xfc/0x17c) from [<c00d6c10>] (v)
[ 504.499084] [<c00d6c10>] (vfs_write+0xa8/0x138) from [<c00d6e80>] (sys_writ)
[ 504.499114] [<c00d6e80>] (sys_write+0x40/0x6c) from [<c0012d80>] (ret_fast_)
[ 504.499114] ---[ end trace 1b75b31a2719ed1e ]---
[ 504.499114] omapdss DSI: writing header 139
[ 504.499114] omapdss DSI: sending remainder bytes 1
[ 504.499145] omapdss DSI: sending payload 33
[ 504.499145] omapdss DSI: long packet success
[ 504.685699] omapdss OVERLAY: check_overlay 0: (0,0 320x480 -> 320x480) disp)
[ 504.685699] check_overlay 0: (0,0 320x480 -> 320x480) disp (320x480)
[ 504.685699] omapdss MANAGER: omap_dss_mgr_apply(lcd)
Dear Rafael
We have change these value below ( to max value)
Doesn't have change on panel.
And when we want to write packet to panel , the frame will be close ,
r = FLD_VAL(255 ,23, 16) | /* HSA_HS_INTERLEAVING */
FLD_VAL(255, 15, 8) | /* HFB_HS_INTERLEAVING */
FLD_VAL(255, 7, 0); /* HbB_HS_INTERLEAVING */
dsi_write_reg(dsidev, DSI_VM_TIMING4, r);
r = FLD_VAL(0xFFFF, 31, 16) | /* BL_HS_INTERLEAVING */
FLD_VAL(0xFFFF, 15, 0); /* BL_LP_INTERLEAVING */
dsi_write_reg(dsidev, DSI_VM_TIMING6, r);