From patchwork Mon Jul 27 07:43:48 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sumit Semwal X-Patchwork-Id: 247155 Delivered-To: patch@linaro.org Received: by 2002:a92:d244:0:0:0:0:0 with SMTP id v4csp4577609ilg; Mon, 27 Jul 2020 00:44:09 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyQH1lYXmNDi+08G2KCFYnvEc3lrTNUpTF1lv/92KW4YGrr6KG1bKlYl635BykqjW2AIauM X-Received: by 2002:a17:906:5c52:: with SMTP id c18mr9993273ejr.168.1595835849599; Mon, 27 Jul 2020 00:44:09 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1595835849; cv=none; d=google.com; s=arc-20160816; b=p2/ABm6Yzfd7ONaX2K0du5DUdxa3oetBVyDmlysbUGlq4TnLW6WvN753be658fPRt5 UCBPMtf1paVE3FoDfsORP6PBE+w10TOURdGMCAQIJgZyWGqC3bYe5fky5ymtFK8kXbAQ sYRk7g5qyqqbMb+ojMBxviSNghwQ/nef4bOFBNjz4/bKFy7O2BfR2yJ4ABAygj4RG2Lc qeo1Qa7AVPS1dNk5kRSBXkme1lE+u9akN41NqWoZ+/ADK+bwZtoX1FJScGlFZPHFNPjb 57to1wDRcpSRtUUCCbmIbgUaJ9nBeLbGcYxfTZ2DIKusCAfeW7Wn6OYDDQwUkroGobo8 CgKw== 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=hPwTTWpa6U3z7SSq6CjyOHMOO2f9phi2NnJpSUOAOj33O+mwNNyFlO6KCtpOQrnIsp VtR18URbg+1vNBAJwW7wDmjO8IEc5qcYS+NzP7IVlwwSzwPiniU6ZY+ha6UbMbeH8ZV8 IoZ8/kvyExRswNi6J1adfSejXRDuth3b+amGP3Pfc4swYncNCpxNQp2izGNK77vwX8SL 44PAXYxKizBLU7RIwfF55SvKSXXVAlHwtIOLmud0eGKyFsSJ4tu2zuELro96Y4AVVAi7 +YisCrJ+iijtG3fBGfJT9y/jhDVzHad6MQ9UnR+S8p0BGjFraLzv8LZxbkR17IjxIkKs cpWg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b="V3iN6l/h"; spf=pass (google.com: domain of devicetree-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=devicetree-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 bo3si4997305ejb.494.2020.07.27.00.44.09; Mon, 27 Jul 2020 00:44:09 -0700 (PDT) Received-SPF: pass (google.com: domain of devicetree-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="V3iN6l/h"; spf=pass (google.com: domain of devicetree-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=devicetree-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 S1727062AbgG0HoI (ORCPT + 6 others); Mon, 27 Jul 2020 03:44:08 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59730 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726183AbgG0HoI (ORCPT ); Mon, 27 Jul 2020 03:44:08 -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 F01C8C0619D2 for ; Mon, 27 Jul 2020 00:44:07 -0700 (PDT) Received: by mail-pf1-x443.google.com with SMTP id m8so1754431pfh.3 for ; Mon, 27 Jul 2020 00:44:07 -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=V3iN6l/harTN4h3DbAFsSaO+REmiLVeUw6BjAnWTdFO7CBkiNZ1TGrJ3p26vUN/+YN RVGJreFZ55oKdG7zS5b6IMeVc/Mhm+sLxgx8VKyNGz2HrmDsBtBcrfw24RqFON71yelU X+UG4LZpc8hZuhj+a9Tc2iCqIlTBZVdAG+QDSbyTzUw2Uv042Y1aqxNyryo6OeAUhE5/ IqAQq6ST91CVPAnYmoYrHaTFNLuQJWb1NHLhQSEiuLI9mhWWK2u7DQ2j/Hh70iPGuMBy YJDBuesSzQIL8HNTaouH1L5lkByNmXB/grQH0gjl6Qmv+Al/tjPwsvHKZ10I6mz9gnwF NjLQ== 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=PLMicE7Wq+ZefTcPML4jfSmG8P0fc3HqT67MJYnSUQATeofIlc0tVbMLt74SeFvYbW 6zbj9ByQdpgc20adwwc1idgmRXQsj0U7pPdUrit5mtvMmsNk5PalIqkQEl8DfneKSFMK lgd71d8NqBLq6Gq35TWvX61ZK7EjLambf5e0RDsiVJGUm0Od5cff5kVxpjLOAcBnA2J1 ih2p9lbFqrewP2VZt7zusVzVbxTjbtNSBMaOeeKuoyiP9UyEisQFxyYWOXJ5hxLjqIy+ /QbmmmWSY4UHLK7uK6ylEm9wf2EceUdZ8HP/lg1AVTZ+uWorMSNi9mgPcLrqV5w5CkNg 2bYw== X-Gm-Message-State: AOAM532XxjlFCDt70HA7iUlBdPEf5IJc8XyPRufc1zFr6sSTU+XT6Wtd FiQGtNkoZ+1zwIBIoJ1TAufeHA== X-Received: by 2002:aa7:8f2a:: with SMTP id y10mr18523587pfr.182.1595835847260; Mon, 27 Jul 2020 00:44:07 -0700 (PDT) Received: from nagraj.local ([49.206.21.239]) by smtp.gmail.com with ESMTPSA id n22sm13062152pjq.25.2020.07.27.00.44.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Jul 2020 00:44:06 -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 v3 2/2] drm: panel: Add tianma nt36672a panel driver Date: Mon, 27 Jul 2020 13:13:48 +0530 Message-Id: <20200727074348.26116-3-sumit.semwal@linaro.org> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20200727074348.26116-1-sumit.semwal@linaro.org> References: <20200727074348.26116-1-sumit.semwal@linaro.org> MIME-Version: 1.0 Sender: devicetree-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: devicetree@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 -- 2.27.0 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