On Thu, May 14, 2020 at 12:22 PM dillon min dillon.minfei@gmail.com wrote:
/* Gamma */
mipi_dbi_command(dbi, ILI9341_3GAMMA_EN, 0x00);
mipi_dbi_command(dbi, MIPI_DCS_SET_GAMMA_CURVE, 0x01);
mipi_dbi_command(dbi, ILI9341_PGAMMA,
0x0f, 0x31, 0x2b, 0x0c, 0x0e, 0x08, 0x4e, 0xf1,
0x37, 0x07, 0x10, 0x03, 0x0e, 0x09, 0x00);
mipi_dbi_command(dbi, ILI9341_NGAMMA,
0x00, 0x0e, 0x14, 0x03, 0x11, 0x07, 0x31, 0xc1,
0x48, 0x08, 0x0f, 0x0c, 0x31, 0x36, 0x0f);
It seems to be copies of the stuff above, but why is there a different gamma if you use DBI?
for dbi interface, currently i just copy the code from tiny/ili9341.c. as so many boards use this driver now, like raspberry pi, etc i'm afraid it's will not work after modification. so, just leave the original code there.
OK if you move it to ili9341_config it will be clear which panels need this gamma and which panels need another gamma.
I think there should be one ili9341_config for the new st,* variant and one for the old DBI variant.
anther question: is there any panel driver have dbi & dpi or dpi & dsi supported? which i mean support two different panel interface in one driver. thanks
Usually you split the driver in three files becuase a driver can only list one initcall, and also it makes it modularized.
There is nothing in-tree but look at my branch here: https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-nomadik.git/log...
You see how I split up the s6e63m0 driver in one SPI part and one DSI part: https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-nomadik.git/com... https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-nomadik.git/com...
The overall idea should work the same with DBI.
Yours, Linus Walleij
Yours, Linus Walleij