Hi Sam, Thanks for your comments, i will rework this panel driver after l3gd20 patch submission. Sam Ravnborg 于2020年5月8日周五 下午5:02写道: > Hi Dillon. > > Patch submissions starts to look fine. > > On Fri, May 08, 2020 at 12:13:14PM +0800, dillon.minfei@gmail.com wrote: > > From: dillon min > > > > This is a driver for 320x240 TFT panels, accepting a rgb input > > streams that get adapted and scaled to the panel. > This driver is, I suppose, prepared to be a driver for ILI9341 based > panles, and as such not for a fixed resolution. > I expect (hope) we in the future will see more panels added. > > As i checked ili9341 datasheets, this panel just support 240x320 resolution only. if i'm wrong , please correct me. thanks https://cdn-shop.adafruit.com/datasheets/ILI9341.pdf This panel can support 9 different kinds of interface , "3/4-line Serial Interface" have been supported by tiny/ili9341.c. i was verified it but the performance on stm32f4 is very low. currently, i just have stm32f429-disco in hands, with 18-bit parallel rgb bus connected on this board. reference to panel-ilitek-ili9322 and panel-ilitek-ili9881 driver, i have some plan to rewrite this driver. 1 add your below comments in. 2 use dc-gpio, reset-gpio, rgb-interface-bits from dts to config panel interface. 3 drop regmap, porting drm_mipi_dbi's mipi_dbi_command to config panel paramter. like tiny/ili9341.c 4 support rgb-16, rgb-18 interface. 5 use optional regulator or power gpio to control panel's power, as panel power is always on for my board, so i can't test this part. could i add the code which can't be tested? 6 support rotation in panel config (currently , i rotate the screen by kernel cmdline paramter) if you have any other common panel configuration should be add , please inform me. thanks. > > Some things to fix, see comments in the follwoing. > > Sam > > > > > Signed-off-by: dillon min > > --- > > drivers/gpu/drm/panel/Kconfig | 8 + > > drivers/gpu/drm/panel/Makefile | 1 + > > drivers/gpu/drm/panel/panel-ilitek-ili9341.c | 561 > +++++++++++++++++++++++++++ > > 3 files changed, 570 insertions(+) > > create mode 100644 drivers/gpu/drm/panel/panel-ilitek-ili9341.c > > > > diff --git a/drivers/gpu/drm/panel/Kconfig > b/drivers/gpu/drm/panel/Kconfig > > index a1723c1..e42692c 100644 > > --- a/drivers/gpu/drm/panel/Kconfig > > +++ b/drivers/gpu/drm/panel/Kconfig > > @@ -95,6 +95,14 @@ config DRM_PANEL_ILITEK_IL9322 > > Say Y here if you want to enable support for Ilitek IL9322 > > QVGA (320x240) RGB, YUV and ITU-T BT.656 panels. > > > > +config DRM_PANEL_ILITEK_IL9341 > ILI9341 - so the config name matches the name of the driver IC. > > > + tristate "Ilitek ILI9341 240x320 QVGA panels" > > + depends on OF && SPI > > + select REGMAP > > + help > > + Say Y here if you want to enable support for Ilitek IL9341 > > + QVGA (240x320) RGB panels. > See comment to the changelog, the driver is more generic - I assume. > So the wording here can be improved to express this. > > Add support RGB 16bits and RGB 18bits bus only ? > > + > > config DRM_PANEL_ILITEK_ILI9881C > > tristate "Ilitek ILI9881C-based panels" > > depends on OF > > diff --git a/drivers/gpu/drm/panel/Makefile > b/drivers/gpu/drm/panel/Makefile > > index 96a883c..d123543 100644 > > --- a/drivers/gpu/drm/panel/Makefile > > +++ b/drivers/gpu/drm/panel/Makefile > > @@ -8,6 +8,7 @@ obj-$(CONFIG_DRM_PANEL_ELIDA_KD35T133) += > panel-elida-kd35t133.o > > obj-$(CONFIG_DRM_PANEL_FEIXIN_K101_IM2BA02) += > panel-feixin-k101-im2ba02.o > > obj-$(CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D) += > panel-feiyang-fy07024di26a30d.o > > obj-$(CONFIG_DRM_PANEL_ILITEK_IL9322) += panel-ilitek-ili9322.o > > +obj-$(CONFIG_DRM_PANEL_ILITEK_IL9341) += panel-ilitek-ili9341.o > > obj-$(CONFIG_DRM_PANEL_ILITEK_ILI9881C) += panel-ilitek-ili9881c.o > > obj-$(CONFIG_DRM_PANEL_INNOLUX_P079ZCA) += panel-innolux-p079zca.o > > obj-$(CONFIG_DRM_PANEL_JDI_LT070ME05000) += panel-jdi-lt070me05000.o > > diff --git a/drivers/gpu/drm/panel/panel-ilitek-ili9341.c > b/drivers/gpu/drm/panel/panel-ilitek-ili9341.c > > new file mode 100644 > > index 0000000..ec22d80 > > --- /dev/null > > +++ b/drivers/gpu/drm/panel/panel-ilitek-ili9341.c > > @@ -0,0 +1,561 @@ > > +// SPDX-License-Identifier: GPL-2.0-only > > +/* > > + * Ilitek ILI9341 TFT LCD drm_panel driver. > > + * > > + * This panel can be configured to support: > > + * - 16-bit parallel RGB interface > The interface to ILI9341 is SPI, and the interface between the ILI9341 > and the panel is more of an itnernal thing. Or did I get this worng? > > SPI is for register configuration. RGB parallel for data transfer > + * > > + * Copyright (C) 2020 Dillon Min > > + * Derived from drivers/drm/gpu/panel/panel-ilitek-ili9322.c > > + */ > > + > > +#include > > +#include > > +#include > > +#include > > +#include > > +#include > > +#include > > + > > +#include