Received: by 2002:a25:868d:0:0:0:0:0 with SMTP id z13csp2485593ybk; Tue, 12 May 2020 00:06:52 -0700 (PDT) X-Google-Smtp-Source: APiQypLImjC1y2pvyvtcGcXzwdz3arWseVf6l9xr7uNv4HOEuOzJ5ec5gC9PPNOM5yh4nWSK+6CB X-Received: by 2002:a05:6402:711:: with SMTP id w17mr16919247edx.228.1589267212275; Tue, 12 May 2020 00:06:52 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1589267212; cv=none; d=google.com; s=arc-20160816; b=QeB5NZIs7U5qbdLbPnFhYPChU2CbYuIjH1n17bt7yo4IQvj+5T+0FGrvoDKsFDQehy LJlYRiTM6gJf1VVfFcG69zVMSIgll8tMila+fnBx9C9G5ZDYjwQJz0ZdJ8yO3Q0xRxFT xsAicWSgN8tkgv6txXD1wC1RUFYIyekgaXgPPX1QK1MIUt7lCPAnu2Z3BdfZ+rZ5IY7n fxBD53GWBEN01GnDk5yRJOV9y73exUGZW37ek3/gFI+XYgba1nq7dSTax6WhpfXDUElO t/SpWM7NQ0tjb1CbyngW8AzRtXuCKu0LUAzwi+Rvc7riUeNbs6KGkT08f8MpzFk68ifY +fvQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature; bh=Efx+sIhHlblK0zWP7LM5IxCVDvW+AW2kVkUj5zSYNbo=; b=SQeRJq7j0CXugW+Ldmf+MXkAXBYYqwXpuPgy41j8jbJEpQW4y+yEaywuhrYXsxiO1j ZFNy7d5QcKn6OZMy+B02M9mucHDOBMgOxj08XVz2DkwKVFEGOOrVmrMtncBeMEG9oX4v WrQrNDubmo5DkSwGd37f0NgVm5hl3z6ehSMrRPVtivywlZtvj0lx1sseW+1YgkyBU4C5 SvPIvp3f7XTaKgLXMHqfC6rm46kuiFmFW2uuS8f8g06WKpIs75KK43Pggqsjy5zxJMhs Cd+NNeRi9j4/uh4l53D1KqjiBuVIRG8cq1N/YD5BwHkAatN7fDkTgBGa4GXCrcXwiPtJ DkrA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=lj1Phi9G; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id de21si786837edb.304.2020.05.12.00.06.28; Tue, 12 May 2020 00:06:52 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=lj1Phi9G; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728990AbgELHEO (ORCPT + 99 others); Tue, 12 May 2020 03:04:14 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53008 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725823AbgELHEN (ORCPT ); Tue, 12 May 2020 03:04:13 -0400 Received: from mail-pg1-x541.google.com (mail-pg1-x541.google.com [IPv6:2607:f8b0:4864:20::541]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0E7C4C061A0C; Tue, 12 May 2020 00:04:13 -0700 (PDT) Received: by mail-pg1-x541.google.com with SMTP id u35so2750918pgk.6; Tue, 12 May 2020 00:04:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=Efx+sIhHlblK0zWP7LM5IxCVDvW+AW2kVkUj5zSYNbo=; b=lj1Phi9G5UJxvav/7MlP6x0A5EKbynShM/x+tiNUyFhQyKS5MiEXoPJW7rBeI/USk3 7WzboI5pl5HB3Y28cJklk7Xv9mO2Su4Mbj3mQ4LfRWL5cuqnaGu0+3HquQSIMcUEEN1K FJuqHM5a4PHnP6DEAxTizLmtNST16/6P4ps+jXs5NTCJNDg7NXIib1AwdUZ4B/khSv4Y GeASQh8x3hbDAZwHggMEMQko3MBdFTpvJWIP70ajn74FAyDM0EE54UXKfSEzNff1aDqe NAe7188sVWpH6E0lk1PjoTSQPustuxUlbUCw0ZfKnoUTqeIf3viCIfX9dkqhRNoE8yDO nQwQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=Efx+sIhHlblK0zWP7LM5IxCVDvW+AW2kVkUj5zSYNbo=; b=qr7yN+i8EkDk00mLKcQQLRTG+eAcWCwt35FYVKEQ+Dsq2MqqfUq8eUp6buvHuw9jpK Zc811yyDq4v3hHxBbDGQY0ERQhEOCkFcq/pO5xzpJrJNJax5CSaj0pejA/lVc9aMebOs 3BKF7eF7JnDbUXkVGmnoMW0d88TDHz9Cgew4aJl3KEy+mitlHlnjTNL++X9GK1H2XNPm DI920etybBdZzk2LhOdJvIybHtRpWk6zEcJqJqKUn433mwisOnOmo6Z/1v2nL2H+nK+i PKlq5BvqFqkbB4yBTMnkj8nRFuIHqV036NUsvKu1z9cdfZVR8914mmV/O09fsuClBcGI veeA== X-Gm-Message-State: AGi0PuZMeWzB++dkVs9mg1R4dXNBDsc3ip+lpBJ5dFjrgJrjXJaGS4yV s+ZhgqCRb7EzrzrqMEd9i1s= X-Received: by 2002:a63:1d4a:: with SMTP id d10mr18870170pgm.188.1589267052359; Tue, 12 May 2020 00:04:12 -0700 (PDT) Received: from fmin-OptiPlex-7060.nreal.work ([103.206.190.146]) by smtp.gmail.com with ESMTPSA id 62sm11016369pfu.181.2020.05.12.00.04.06 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 12 May 2020 00:04:11 -0700 (PDT) From: dillon.minfei@gmail.com To: robh+dt@kernel.org, mcoquelin.stm32@gmail.com, alexandre.torgue@st.com, thierry.reding@gmail.com, sam@ravnborg.org, airlied@linux.ie, daniel@ffwll.ch, mturquette@baylibre.com, sboyd@kernel.org Cc: devicetree@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-clk@vger.kernel.org, dillon.minfei@gmail.com Subject: [PATCH v3 5/5] drm/panel: Add ilitek ili9341 driver Date: Tue, 12 May 2020 15:03:37 +0800 Message-Id: <1589267017-17294-6-git-send-email-dillon.minfei@gmail.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1589267017-17294-1-git-send-email-dillon.minfei@gmail.com> References: <1589267017-17294-1-git-send-email-dillon.minfei@gmail.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: dillon min Currently, we can use tinydrm ili9341 driver to drive ili9341 panel by spi interface (both register configuration and video) ili9341 have parallel and mcu interface as well, we extend the support to parallel rgb interface with DRM_MODE_CONNECTOR_DPI this driver can work as parallel rgb or serial spi mode by different dts binding. for serial spi interface dts binding configuration, refer to: Documentation/devicetree/bindings/display/ilitek,ili9341.txt Signed-off-by: dillon min --- Changes: V3: 1 Add support for original dts binding "adafruit,yx240qv29", merged from tiny/ili9341.c, which is serial spi interface for register configuration and video trasfer. 2 change the dts binding to st,sf-tc240t-9370-t for parallel rgb interface. V2: none V1: Add support for parallel rgb interface drivers/gpu/drm/panel/Kconfig | 12 + drivers/gpu/drm/panel/Makefile | 1 + drivers/gpu/drm/panel/panel-ilitek-ili9341.c | 700 +++++++++++++++++++++++++++ 3 files changed, 713 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..c938bee 100644 --- a/drivers/gpu/drm/panel/Kconfig +++ b/drivers/gpu/drm/panel/Kconfig @@ -95,6 +95,18 @@ 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_ILI9341 + tristate "Ilitek ILI9341 240x320 QVGA panels" + depends on OF && SPI + depends on DRM_KMS_HELPER + depends on DRM_KMS_CMA_HELPER + depends on BACKLIGHT_CLASS_DEVICE + select DRM_MIPI_DBI + help + Say Y here if you want to enable support for Ilitek IL9341 + QVGA (240x320) RGB panels. support serial & parallel rgb + interface. + 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..16947d7 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_ILI9341) += 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..17339db --- /dev/null +++ b/drivers/gpu/drm/panel/panel-ilitek-ili9341.c @@ -0,0 +1,700 @@ +// 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 + * - 18-bit parallel RGB interface + * + * Copyright (C) 2020 Dillon Min + * Derived from drivers/drm/gpu/panel/panel-ilitek-ili9322.c + */ + +#include +#include +#include +#include +#include +#include +#include +#include