Received: by 2002:a05:6a10:a0d1:0:0:0:0 with SMTP id j17csp347263pxa; Tue, 11 Aug 2020 04:43:00 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyTq6DNwryFnZbEdEutJ7d3+dY/gF/fqu0AChHq6d6vbTWDZa7dywPuILKVIymh3vAkE7Q+ X-Received: by 2002:a05:6402:3113:: with SMTP id dc19mr24200679edb.280.1597146180464; Tue, 11 Aug 2020 04:43:00 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1597146180; cv=none; d=google.com; s=arc-20160816; b=Z4nnRT17NGN+KOKEG7gfw35N4yZGOOFFc3J2lgw3cGR0Q3vL5nAnOISWkwexmDolE7 GK5S3CrZRReuf4NP1n1trsz/SVKBxjTVmAIh+BxoakkhLbw+ExpYDe01uZk181FPwR52 2oT1yDw53xLv/4RSkK0kRxanTAmmlpwQcKwiNe5lqGv2Wr5Gn5Y/3V0YSPPuCwCjKBwm T/EuCk0F0+dLtzxToyTGtHYdEKRf0SSvqkaz2su3Lx08M80mGtVBfVKshioGJivvoZrI HCt6bXaTXSDvxDhIYWmt+cC4A1BiWPameZrTo6JoPtWasg0zUIhHEdozZoGxYsisoAhu tBhQ== 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=P0AUpy2ZdCxQk1OnnLHB9v9HjjMoSPNb/b3Tq/gh12k=; b=tZCaXb+6kg8seLdmVoypELhW8RTSa1+6v5Km7Baiva1+LtNWalBT1o5PR5y+BGbqVk xpNFLwtMG836D4TTu8ULMQKRZxcJHjP8hnuWhuEN3dfVYJhpQOdYMO3fgRf7nKcqtUsD /v9eKQeOU5uBkN7xqD03W83AeLKkC0p7MPQqJc4nXQjxHsTRIZ+DmwnciI4CjGqJcB6s 9hWxwnQZO+dDlkDCUBnnyl5KfYMGeyRi/avxZwQ4OGH10aVp0/n1ax5DUZo7nNY7f6E1 F0ZmAo0450L5vdQbnlo+7zNf5FiieS8N+sxi4QXNZiWA+yZdBaCHOkf8QCYboExHMWCn OCMg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b="K2ByyOX/"; 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 f9si15639910ejl.71.2020.08.11.04.42.35; Tue, 11 Aug 2020 04:43:00 -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="K2ByyOX/"; 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 S1728818AbgHKLkc (ORCPT + 99 others); Tue, 11 Aug 2020 07:40:32 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53028 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728807AbgHKLka (ORCPT ); Tue, 11 Aug 2020 07:40:30 -0400 Received: from mail-pj1-x1044.google.com (mail-pj1-x1044.google.com [IPv6:2607:f8b0:4864:20::1044]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 10C97C061787 for ; Tue, 11 Aug 2020 04:40:30 -0700 (PDT) Received: by mail-pj1-x1044.google.com with SMTP id 2so1733596pjx.5 for ; Tue, 11 Aug 2020 04:40:30 -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=P0AUpy2ZdCxQk1OnnLHB9v9HjjMoSPNb/b3Tq/gh12k=; b=K2ByyOX/cpOp3cFkiWVa/t8jKdDhZfFBA/cQqXo+vsFTXp8XSTI6/6J3CML2ZZ5StM GDS/zoVnoqJzWIfz0VLhn0EqUGP2WZDYoPVokHd5B+N1m9ONO16n6WLuLWQpnx2EXkpu 2sdY+mGbVD2YZPO+cHQpZOu7pKjorCuFmKcVzitusXOsDkW1YG4P/KYQkVi6vPyUQw6U lYvoBgwhht9maNCPC79r75z8pea7PW3blDtWHVqfNrsIt5gdY0BtQrQ+9reLjGIhePjQ XLMYVNx02OhZU8xXK8PK68JHAebeJqofIAaVH0P01RvMvGuV8WTXogtvUKfs0O6lNr5f w/Ag== 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=P0AUpy2ZdCxQk1OnnLHB9v9HjjMoSPNb/b3Tq/gh12k=; b=tr38Ej4pMwgv1+hLiefMNZ4cjnDIUEv/IMzA4ZPl5eWhjOpsYnGqjfemylXosCH1Sz JEtVciAVDUboFAHdifyrIN18yJD8MNRkMxOr8rxcFboAXQ8bva67UlDey5p8Mau23kEi AXCHS1Dzk43QIGMn5uyKPi/kwKFcZlAX1xHvdZlHjzWLEz0RJHI7uaKM1XHXZeqs5QQo 2jfa56DyBppvsY2W8WqdAQi5RVu9M7swpNZZdM+KY+62lJcN5rw/oPBS+crIieULoxVJ 66GmhImS8/mcRFkwh9N/NTPmKHMYlfmRACy77ly6As6x4UHPbZ7HqmVAkerHV2Fe7Slo F/2A== X-Gm-Message-State: AOAM531l2aaF2o6223K7WR549CEZmQOAmoAhNwpJ3pT8u8XWiK3z+i0x WKgLbE6UJjsD2fBxug4kwTDg7tje64IpiA== X-Received: by 2002:a17:90a:1749:: with SMTP id 9mr643034pjm.127.1597146029288; Tue, 11 Aug 2020 04:40:29 -0700 (PDT) Received: from nagraj.local ([49.206.21.239]) by smtp.gmail.com with ESMTPSA id gj2sm2600448pjb.21.2020.08.11.04.40.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 11 Aug 2020 04:40:28 -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: [RESEND PATCH v3 2/2] drm: panel: Add tianma nt36672a panel driver Date: Tue, 11 Aug 2020 17:10:10 +0530 Message-Id: <20200811114010.17807-3-sumit.semwal@linaro.org> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20200811114010.17807-1-sumit.semwal@linaro.org> References: <20200811114010.17807-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 --- 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..07e8461b8893 --- /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