From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-3.2 required=3.0 tests=DKIM_ADSP_CUSTOM_MED, DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,HTML_MESSAGE,INCLUDES_PATCH,MAILING_LIST_MULTI, MIME_HTML_MOSTLY,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3E34AC47254 for ; Sat, 9 May 2020 09:05:26 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 106FC24957 for ; Sat, 9 May 2020 09:05:26 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Yxa2QA5T" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 106FC24957 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 6D7F66E30F; Sat, 9 May 2020 09:05:11 +0000 (UTC) Received: from mail-il1-x141.google.com (mail-il1-x141.google.com [IPv6:2607:f8b0:4864:20::141]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3F5466EAD4 for ; Fri, 8 May 2020 10:13:56 +0000 (UTC) Received: by mail-il1-x141.google.com with SMTP id q10so931823ile.0 for ; Fri, 08 May 2020 03:13:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=pKo0s8BIsSY+04mVBMEX3wR3ge6AvEseURJrEEnEtCQ=; b=Yxa2QA5TV5Utjt2uyA9Gg7WyvwTY5L4p9gxp9xi5Rh+fPZ57kyg3BCI8QO+NWt8mGx FRHWZvpFNViV4qX/pXdp0lv08IQhFcBxpY8LER27rgzf0fbgLR9HWo24LU8dFv0BxjVg FlhtPEoKsZFdm2vCblpuTGm3jFo6mW5QExvFmEKpBMN8laD8vLpsLS0WCE2ZXgN/MMHq ijtKdVfLzgD42swrrpPZxVI3nYdgG7XUNOGOtCpMrVejZMFox8HJ3jNJzdCy2pXv0XL+ nP34vunjWqyM3bjpdynTiwzSmfGVV/Ugj02zEzTil1YD/+GiGsXdnKAvrc7jANz5nnwI lALA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=pKo0s8BIsSY+04mVBMEX3wR3ge6AvEseURJrEEnEtCQ=; b=r5pjHJi0GDXfWMERlh7C/pZ2fQikDOhe2/b5xCLaF7rf2MB2/CeYjILNiyMJHGg2xz duIZ6N8TPAYAJWdGiOA5WioGvyi5x48cv4EiXhHLWg8MN4T1LRJnmW5X/JJF1t59erwO vlG2TyDXX9UcAz4thfsGvSIa37jAheYAlbhO2otNfF639Cu5qRLbX3Z1cqSozEHY6rfp EE8BW9SGA/8sGf2OTCU2yTbeVWRbkE6T2vAdQyI3o1PS4cDdH/OwDkmkUo4xKGziJKTP mvD8F9CqOrvTXloAmFn7L4PwsV7Qb1ErFCzc4Xr0l9szkE+ieVnWjLa19Q52QQvdXboI gppA== X-Gm-Message-State: AGi0PuZiqXOZmkqhrPIN4w5Ta83o0SSnLWahqEHPYBzWoKoNfttoKiWG 55KEqsYPwp/OLfnSiR9Pb8WizvnId5VsxEvlQ5c= X-Google-Smtp-Source: APiQypKT7aaVCfUyIGm/Nl0sqn2zmS2OaSODcX7z1n7vHrQ6o/a2+Wmfep4IRoDhDVvg68E91t/xDrB8djauVTrPepw= X-Received: by 2002:a92:607:: with SMTP id x7mr1802642ilg.218.1588932835358; Fri, 08 May 2020 03:13:55 -0700 (PDT) MIME-Version: 1.0 References: <1588911194-12433-1-git-send-email-dillon.minfei@gmail.com> <1588911194-12433-6-git-send-email-dillon.minfei@gmail.com> <20200508090247.GA11575@ravnborg.org> In-Reply-To: <20200508090247.GA11575@ravnborg.org> From: dillon min Date: Fri, 8 May 2020 18:13:43 +0800 Message-ID: Subject: Re: [PATCH v2 5/5] drm/panel: add panel driver for Ilitek ili9341 panels To: Sam Ravnborg X-Mailman-Approved-At: Sat, 09 May 2020 09:04:57 +0000 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: mcoquelin.stm32@gmail.com, Alexandre Torgue , devicetree@vger.kernel.org, airlied@linux.ie, Michael Turquette , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-clk@vger.kernel.org, sboyd@kernel.org, robh+dt@kernel.org, thierry.reding@gmail.com, linux-stm32@st-md-mailman.stormreply.com, linux-arm-kernel@lists.infradead.org Content-Type: multipart/mixed; boundary="===============0032480355==" Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" --===============0032480355== Content-Type: multipart/alternative; boundary="000000000000393d9305a520412a" --000000000000393d9305a520412a Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi Sam, Thanks for your comments, i will rework this panel driver after l3gd20 patch submission. Sam Ravnborg =E4=BA=8E2020=E5=B9=B45=E6=9C=888=E6=97=A5= =E5=91=A8=E4=BA=94 =E4=B8=8B=E5=8D=885:02=E5=86=99=E9=81=93=EF=BC=9A > 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) +=3D > panel-elida-kd35t133.o > > obj-$(CONFIG_DRM_PANEL_FEIXIN_K101_IM2BA02) +=3D > panel-feixin-k101-im2ba02.o > > obj-$(CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D) +=3D > panel-feiyang-fy07024di26a30d.o > > obj-$(CONFIG_DRM_PANEL_ILITEK_IL9322) +=3D panel-ilitek-ili9322.o > > +obj-$(CONFIG_DRM_PANEL_ILITEK_IL9341) +=3D panel-ilitek-ili9341.o > > obj-$(CONFIG_DRM_PANEL_ILITEK_ILI9881C) +=3D panel-ilitek-ili9881c.o > > obj-$(CONFIG_DRM_PANEL_INNOLUX_P079ZCA) +=3D panel-innolux-p079zca.o > > obj-$(CONFIG_DRM_PANEL_JDI_LT070ME05000) +=3D 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