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=-18.1 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,MENTIONS_GIT_HOSTING,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_GIT autolearn=unavailable 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 DD637C433E1 for ; Tue, 11 Aug 2020 18:21:33 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 9F8A92076C for ; Tue, 11 Aug 2020 18:21:33 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="bGgXl4Ul" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726422AbgHKSVc (ORCPT ); Tue, 11 Aug 2020 14:21:32 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58382 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726271AbgHKSV0 (ORCPT ); Tue, 11 Aug 2020 14:21:26 -0400 Received: from mail-pf1-x442.google.com (mail-pf1-x442.google.com [IPv6:2607:f8b0:4864:20::442]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E9A61C061787 for ; Tue, 11 Aug 2020 11:21:25 -0700 (PDT) Received: by mail-pf1-x442.google.com with SMTP id m71so7664134pfd.1 for ; Tue, 11 Aug 2020 11:21:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=VNK5cdnMZrGvvIYsnFC0iusu3nYk9UMpbDHOdZ/896w=; b=bGgXl4UlyUX1tlsCLPJj3O2mJD+hIRRGzVb/foah16tu8MfwrvLSOLS50KSy6LQ3Vf tFTdCspEqYcq9jXApHSPCVWyg1oOFoguGNx0l3LMs/JenHHq9E/osyhum9slExktZopQ u7P06xJfN8g3xg5TEeImQGIZUMyV1NHTNU/veOT2/F5iBcobM1A8dDSUjlYWKQiPDaQt VsoqtQi65gergk+cKeyWFhpfzhJnmUFJohfc6Ni9dL0DSzIkPAZ+5/uDDMSvpPXiduN5 8BsrajIDzMCASw0P47eZggxciEzOuHCaQZd1CTqpS2BHm/TV6B5EpSBsUq31PKmYTMyW Jvcw== 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:mime-version:content-transfer-encoding; bh=VNK5cdnMZrGvvIYsnFC0iusu3nYk9UMpbDHOdZ/896w=; b=jzIruQQTBprsjm9Rqhf3YHzneRbnF8NtHOi6OcnDAj+crzbRl/T9k4FiZMpd6RkVy+ lsGuMnpojRp0+f/NmEg0Z+7UYyogPJMS9UdGcKjCPvVVcy6+a4HlX73qc3TLisc51T22 0dILS9LDyBb3cYkROzcUgyfgBBe84LNSALgcr8ICMdps5cXtPM7JBi+i9qFsXCm1yoQo OZ2oze5Qj6NIrQDZYl6A3xsRivDIrPDnuY/cF1hnc/nBURuVNVGThIYVb0oeGXjp0g3t xut7eJUKxm3KQlZ+hTk4IOu1fOOtlufz6VjgIuigkxy0n8iw5RcseBBPy8NJYY14QDQv f83A== X-Gm-Message-State: AOAM533gyLCbXZVuz8k5Zo+I4x5kTOtzeVEQ1g0/tdYph+PH9Hq8s1mG xSHAhqQ2s3DETRRXYzjT860UOw== X-Google-Smtp-Source: ABdhPJwqd/HHIEo0OoNhQXZe9MxmZPRMChGp5MX2SQsIRc6ts26iOEBX80vLkoh1VHKlyIPCKOZqsw== X-Received: by 2002:aa7:8182:: with SMTP id g2mr7141520pfi.261.1597170085017; Tue, 11 Aug 2020 11:21:25 -0700 (PDT) Received: from nagraj.local ([49.206.21.239]) by smtp.gmail.com with ESMTPSA id x7sm26595162pfc.209.2020.08.11.11.21.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 11 Aug 2020 11:21:24 -0700 (PDT) From: Sumit Semwal To: Thierry Reding , Sam Ravnborg Cc: David Airlie , Daniel Vetter , Mauro Carvalho Chehab , "David S . Miller" , Rob Herring , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, devicetree@vger.kernel.org, Bjorn Andersson , Sumit Semwal , Benni Steini Subject: [PATCH v4 2/2] drm: panel: Add tianma nt36672a panel driver Date: Tue, 11 Aug 2020 23:51:07 +0530 Message-Id: <20200811182107.6515-3-sumit.semwal@linaro.org> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20200811182107.6515-1-sumit.semwal@linaro.org> References: <20200811182107.6515-1-sumit.semwal@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Some Poco F1 phones have an LCD panel from Tianma, model nt36672a, with a resolution of 1080x2246 that operates in DSI video mode. Add the drm panel driver for it. During testing, Benni Steini helped us fix the reset sequence timing (from 10ms to 20ms), to get the bootanimation to work on Android. With current AOSP, we need to increase it to 200ms - this seems to be a safe high value to avoid a white screen occasionally. Signed-off-by: Sumit Semwal Cc: Benni Steini --- v2: increase reset sequence timing to a safe 200ms v4: Since "0425662fdf05: drm: Nuke mode->vrefresh", we have to calculate vrefresh on demand. Update for it. --- MAINTAINERS | 7 + drivers/gpu/drm/panel/Kconfig | 11 + drivers/gpu/drm/panel/Makefile | 1 + drivers/gpu/drm/panel/panel-tianma-nt36672a.c | 858 ++++++++++++++++++ 4 files changed, 877 insertions(+) create mode 100644 drivers/gpu/drm/panel/panel-tianma-nt36672a.c diff --git a/MAINTAINERS b/MAINTAINERS index f77df02e4121..9e4bc8da9b2d 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -5611,6 +5611,13 @@ T: git git://anongit.freedesktop.org/drm/drm-misc F: Documentation/devicetree/bindings/display/ste,mcde.txt F: drivers/gpu/drm/mcde/ +DRM DRIVER FOR TIANMA NT36672A PANELS +M: Sumit Semwal +S: Maintained +T: git git://anongit.freedesktop.org/drm/drm-misc +F: Documentation/devicetree/bindings/display/panel/tianma,nt36672a-panel.yaml +F: drivers/gpu/drm/panel/panel-tianma-nt36672a.c + DRM DRIVER FOR TDFX VIDEO CARDS S: Orphan / Obsolete F: drivers/gpu/drm/tdfx/ diff --git a/drivers/gpu/drm/panel/Kconfig b/drivers/gpu/drm/panel/Kconfig index de2f2a452be5..8108a682dcb0 100644 --- a/drivers/gpu/drm/panel/Kconfig +++ b/drivers/gpu/drm/panel/Kconfig @@ -437,6 +437,17 @@ config DRM_PANEL_TPO_TD043MTEA1 Say Y here if you want to enable support for TPO TD043MTEA1 800x480 4.3" panel (found on the OMAP3 Pandora board). +config DRM_PANEL_TIANMA_FHD_NT36672A + tristate "TIANMA NT36672A panel" + depends on OF + depends on DRM_MIPI_DSI + depends on BACKLIGHT_CLASS_DEVICE + help + Say Y here if you want to enable support for the Tianma NT36672A + panel. It is seen mostly in Xiaomi Poco F1 mobile phone. + The panel has a 1080x2246 resolution and uses 24 bit RGB per pixel. + It provides a MIPI DSI interface to the host. + config DRM_PANEL_TPO_TPG110 tristate "TPO TPG 800x400 panel" depends on OF && SPI && GPIOLIB diff --git a/drivers/gpu/drm/panel/Makefile b/drivers/gpu/drm/panel/Makefile index e45ceac6286f..472ae9ba8788 100644 --- a/drivers/gpu/drm/panel/Makefile +++ b/drivers/gpu/drm/panel/Makefile @@ -44,6 +44,7 @@ obj-$(CONFIG_DRM_PANEL_SITRONIX_ST7703) += panel-sitronix-st7703.o obj-$(CONFIG_DRM_PANEL_SITRONIX_ST7789V) += panel-sitronix-st7789v.o obj-$(CONFIG_DRM_PANEL_SONY_ACX424AKP) += panel-sony-acx424akp.o obj-$(CONFIG_DRM_PANEL_SONY_ACX565AKM) += panel-sony-acx565akm.o +obj-$(CONFIG_DRM_PANEL_TIANMA_FHD_NT36672A) += panel-tianma-nt36672a.o obj-$(CONFIG_DRM_PANEL_TPO_TD028TTEC1) += panel-tpo-td028ttec1.o obj-$(CONFIG_DRM_PANEL_TPO_TD043MTEA1) += panel-tpo-td043mtea1.o obj-$(CONFIG_DRM_PANEL_TPO_TPG110) += panel-tpo-tpg110.o diff --git a/drivers/gpu/drm/panel/panel-tianma-nt36672a.c b/drivers/gpu/drm/panel/panel-tianma-nt36672a.c new file mode 100644 index 000000000000..2941975e039c --- /dev/null +++ b/drivers/gpu/drm/panel/panel-tianma-nt36672a.c @@ -0,0 +1,858 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright (C) 2020 Linaro Ltd + * Author: Sumit Semwal + */ + +#include +#include +#include +#include +#include + +#include +#include +#include + +#include +#include +#include +#include +#include + +#include