I’m trying to use a MIPI DSI display of mine, but I’m having trouble finding where to edit and send the MIPI commands for display init and video data.
I have edited the khadas-ts050-panel.dtsi panel DTS (recompiled and installed) but it seems like it is ignoring any information I put here, I have even tried removing all of lcd_0 content and the display seems to be receiving the sleepout + displayon commands from elsewhere. I can tell this because the display IC is turning 2 output pins ON, which only happens whenI connect all MIPI lanes + clock.
I need some help understanding what is happening, because I think it should not do anything if I remove the configuration from the DTS.
@numbqq @Gouwa @Frank any helkp? Thank you!
@quatro Please refer to this commit about how to add panel support
Which kernel are you working on ?
The only one available on fenix for VIM3L: 4.9 .
In my case I don’t need PWM I’m using an OLED display with an external power regulator… so that commit is not what I’m needing…
Is there a kernel module which is driving the DSI, beyond the device tree? because when I remove the lcd from the DTS, it continues to pull up, the LCD_RESET and send MIPI DSI data
If you don’t need just ignore it.
Is there a kernel module which is driving the DSI, beyond the device tree?
Yes I already have the linux source, I’m looking for it, but not found it yet, where is the source file for the DSI module?
I have checked the source, but it does not seem to be the driver of the ts050… I’m looking for the active code that is calling dsi_write_cmd, etc in order to edit it for my screen
I have read the meson lcd driver completely and got a better understanding of how to write the LCD init sequence in the DTS… This should be documented in the website!
My screen is being disabled by the kernel with no error being shown:
[ 13.242645] fb: osd canvas.idx =0x40
[ 13.242648] fb: osd canvas.addr=0x6b400000
[ 13.242650] fb: osd canvas.width=7680
[ 13.242651] fb: osd canvas.height=2160
[ 13.242653] fb: osd frame.width=1920
[ 13.242655] fb: osd frame.height=1080
[ 13.242656] fb: osd out_addr_id =0x1
[ 13.346985] vout: vmode set to 1080p60hz
[ 13.349876] fb: current vmode=panel, cmd: 0x10000
[ 13.353540] lcd: set mute
[ 13.412116] bl: backlight power off
[ 13.416036] lcd: lcd_power_ctrl: 0
[ 13.418880] lcd: disable driver
is the syntax
dsi_init_on = <
0x15 COMMAND_LENGTH CMD_DATA_0 … CMD_DATA_N
0xfd 1 150 /* DELAY/WAIT 150 ms before next command*/
0x15 COMMAND_LENGTH CMD_DATA_0 ... CMD_DATA_N
0xff 0>; /* END OF SEQUENCE */
dsi_init_off = <
0x15 1 0x28 /* display off / delay 60ms
0xfd 1 60 / / sleep in
0x15 1 0x10 / / delay 120ms
0xfd 1 120 / / end sequence */
0xff 0>; /
0x28 ...(60 ms later)... 0x10
can you confirm me please? Thank you!
Seems not correct. Please check the command format.
0x15- should with 1 parameter
0x05 - should with no parameter
Great I will test it… where can I find that documentation?
Maybe you can google for that. I only have a Chinese version…
Thank you so much!
I have made all changes but it is still being disabled by the kernel… do you know what is causing this? it seems to start with a “set mute” 10 seconds after being initiated.
@quatro No idea yet, but one thing you should to know is that you need to unplug the HDMI cable if you want to use the panel.
And suggest you to debug the panel in u-boot in the first step, then is then is the kernel if you can display the logo in u-boot.
Can’t I have both displays? I was expecting to run both at the same time for my application.
For Android, you can, but for Ubuntu, you can’t at current stage.
I need to know will 24bit parallel RGB is supported