Received: by 2002:a25:e74b:0:0:0:0:0 with SMTP id e72csp254782ybh; Tue, 21 Jul 2020 23:02:09 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyUrtieCsv1G3MiOBFkDSMzjb1arVyJ0xzcrJqxizdYxfVPMtA331k+UhTU38lmnpsKm7Rb X-Received: by 2002:a50:bf09:: with SMTP id f9mr28684502edk.249.1595397729165; Tue, 21 Jul 2020 23:02:09 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1595397729; cv=none; d=google.com; s=arc-20160816; b=ueaA9WgX2lcZoHmw0RyPleDoBs/WBC1+0k68PnG3R1tQMri3aVJCcvNb6Ad9wsSiYf Mfr/oQMWj/4kKVFmpvQ/qG8jqwQIkE1oToxTtNSEsAblP3ZYmo03LPUh1uS4FzKr7kIq ARilCXmzXCaa/vYdK67RR2xg0d+aAC99KVhSx6MqLy9HyONmNL4YvN2ZDZeP1+RF3TFj MBK8pgNdxRbEcp34zKNCEjabQuoXq/3zpnfPnq2KiOENoGqbJFmgCg2EEpgjFC8GRFi9 X1bVYp3cM/mqePRSNLRmUcv9ZTO6jVvqD1KkTt0+2H15OJPfqV4owgFUg4VPN/DvG2uy RERw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=aFWJMahmFGP6ghcHwePgHtxNBd4G899f/GVNoXHgHzU=; b=q4ipvyxIatQWS44Fy5QeBv/MroYBK8SAd5C2mT3XNTKYhMvKFr10AsWts/pkQ9t0xq FNeUAKUMvnNLvLzPGSuhwEY242BHyHe9GG+Xby2PYUA2VEv/Xv1CR+D6DkzbGjnwhD33 mSv0zuYNxG6QZLbeSFTjsXvzT6lLu4S7hbce7H2NmF9QVmTW/UYnS9F66jKSYCBBibMv dZ8NgMFcXeohcojrJlxwl/LfqyihJhoVpNtOl3clugTP8s2F9Rxy2VFSCj7vx4aNpNSA FlppYEBQNavDtxvCPvUraDZHrA7ODyW1vacOdu/SgwQxlGXtcobDF9nDFxO7YMwnL2wE 3xCg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=nVxRHz0Y; 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=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id n7si13998916edv.74.2020.07.21.23.01.45; Tue, 21 Jul 2020 23:02:09 -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=@linaro.org header.s=google header.b=nVxRHz0Y; 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=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726147AbgGVF6h (ORCPT + 99 others); Wed, 22 Jul 2020 01:58:37 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57328 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728497AbgGVF6f (ORCPT ); Wed, 22 Jul 2020 01:58:35 -0400 Received: from mail-pf1-x443.google.com (mail-pf1-x443.google.com [IPv6:2607:f8b0:4864:20::443]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A69A7C0619DB for ; Tue, 21 Jul 2020 22:58:35 -0700 (PDT) Received: by mail-pf1-x443.google.com with SMTP id 1so600868pfn.9 for ; Tue, 21 Jul 2020 22:58:35 -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=aFWJMahmFGP6ghcHwePgHtxNBd4G899f/GVNoXHgHzU=; b=nVxRHz0YeYGTwuoMla2lP2xJRKv5kgsC8Oay+cx+5dRsJ7mzELpda61AMIHTjR1RFn /Ni0FiHKSQP9gS8B9+ypvGz3xbaz1FaUnttRYjgwRgh7md0bvjcq3DM7M5pAUbucjqqI zX9+ef4QU/2JfnJKqeKQ8+oL0Cj1TRdJkj/dxDlsDOFg8ws/kNlHGFkWdA6BG0buyyoX KozyC2B8QGWpC7RnwZ8infnQUSPuQSybziUZcexjPhlAZh8QyHR/sNvFHH3uGCLtPBnb y8JDKO6jQTgaXMEnSNGH35Oz/WSr+Y7KfHxxIzwPpcysHxLWnq5DNgbMHvTyUIIduOLq AcUw== 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=aFWJMahmFGP6ghcHwePgHtxNBd4G899f/GVNoXHgHzU=; b=LS5xvKD1WdmYhnl00IxcGC4rorAdm3RS07Q15N2nzqHmO8zexNTcqjYzqQctjWBRrs fZq9ruIMtBBGccAoiGh9jCM8meaFlTSIh8J4v65Wj/h8U8biEV5qATjhQxwg6u9mdDMc b06tkD+x5Lq4jYk+orapkvB43f+muLvA+ZG9G+WBMCIZQhInRoIiydMxwscoCdiIyANh h4fhDO2rmOSu+cEJFCd5X7+NWjbXIi1qNN1NUafloLQ4R/Kt90KyQEKKW58BHmQoRPac J+xRRCHKyRU4gqB3Ok5igHx1PiQ3+lV4LqjjrUwZyGeTHack6UjuIOjLpgiQCoV50xKT qnWw== X-Gm-Message-State: AOAM530gQmQEygdc61IuIBhF7tn/cUimfPsnzWUluvtEFnbSp6o/zCZ9 rUNrTkG4+Z+8vMi+BUrVe+eaBw== X-Received: by 2002:a62:79cd:: with SMTP id u196mr26442904pfc.152.1595397514829; Tue, 21 Jul 2020 22:58:34 -0700 (PDT) Received: from nagraj.local ([49.206.21.239]) by smtp.gmail.com with ESMTPSA id e191sm22144010pfh.42.2020.07.21.22.58.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 21 Jul 2020 22:58:33 -0700 (PDT) From: Sumit Semwal To: Thierry Reding , Sam Ravnborg , Rob Herring 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 v2 2/2] drm: panel: Add tianma nt36672a panel driver Date: Wed, 22 Jul 2020 11:28:16 +0530 Message-Id: <20200722055816.20768-3-sumit.semwal@linaro.org> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20200722055816.20768-1-sumit.semwal@linaro.org> References: <20200722055816.20768-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 occassionally. Signed-off-by: Sumit Semwal Cc: Benni Steini Change-Id: Ib822ef12464abcb50d2e539d11b8983be87c31f2 --- v2: increase reset sequence timing to a safe 200ms --- MAINTAINERS | 7 + drivers/gpu/drm/panel/Kconfig | 11 + drivers/gpu/drm/panel/Makefile | 1 + drivers/gpu/drm/panel/panel-tianma-nt36672a.c | 859 ++++++++++++++++++ 4 files changed, 878 insertions(+) create mode 100644 drivers/gpu/drm/panel/panel-tianma-nt36672a.c diff --git a/MAINTAINERS b/MAINTAINERS index b4a43a9e7fbc..2d384e51353b 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -5544,6 +5544,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 39055c1f0e2f..da9d74c1ec91 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 de74f282c433..303e44eb50fa 100644 --- a/drivers/gpu/drm/panel/Makefile +++ b/drivers/gpu/drm/panel/Makefile @@ -44,6 +44,7 @@ obj-$(CONFIG_DRM_PANEL_SITRONIX_ST7701) += panel-sitronix-st7701.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..0af3a6ff5d55 --- /dev/null +++ b/drivers/gpu/drm/panel/panel-tianma-nt36672a.c @@ -0,0 +1,859 @@ +// 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