From patchwork Tue Aug 11 18:21:06 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sumit Semwal X-Patchwork-Id: 11709497 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id D171E13A4 for ; Tue, 11 Aug 2020 18:21:25 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id AFF9520771 for ; Tue, 11 Aug 2020 18:21:25 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="qxl4KEdS" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org AFF9520771 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 88D3D6E5BE; Tue, 11 Aug 2020 18:21:22 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-pg1-x541.google.com (mail-pg1-x541.google.com [IPv6:2607:f8b0:4864:20::541]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5864F6E5BE for ; Tue, 11 Aug 2020 18:21:21 +0000 (UTC) Received: by mail-pg1-x541.google.com with SMTP id o13so7111863pgf.0 for ; Tue, 11 Aug 2020 11:21:21 -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=bdqyu7i6Nejyba3UvWvNRVJj3YGTPAvhIc5fFeKUFKA=; b=qxl4KEdSUfstTNxTL9gtP+w44/d0mjBRVPbumXlZUhSciKYK+6oWGZGtCBkpoqE/Iy 30dr97E0QjDfEWp4WmKliileRs4VrqghvNr88HxWkmBxyfE+HGssaHtJoIadgveHulwI /kMx143kmPWMYw6rUuyFAWrF20lR+6OTwV/DQgcZAYd6Aec2U38atXbvfUvNoakLedb7 H0HD68rBMR7DKH31FvaRLSEdthM1scOpsAZ7HRQaysuLE1rXTH4bnW+ugzew/kCIFDmm jcBhtT8Ied7tXBJjxY5opt2u9r7/tsmofuXsExbPHmbTodDWaKZJNNeQ0H5vmpbFUv1e 35Hg== 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=bdqyu7i6Nejyba3UvWvNRVJj3YGTPAvhIc5fFeKUFKA=; b=Q0YGMZNd5YVsbSq30+EE5PZ1IyliH2lame6M1UjYWHPdhv8hAOkT/kYCV19qzyY0RK M+MngyrFaEz3z8xbF4N2UsHDKghbVewojTHzcdr7CxrXZVO+ol7h3sfl4R41FPpFV+de /TuVZ7W+I7MVJ9gGRf7x5dTikZpw0JZineHxjz9DLMqsdkqS9C67EMoMK7sMxNM8uVX+ Rq7hav887DWzmx23kyI4KVjSl8YfUfgKiN3k17jPS2LH3YFTpUFGKPtoqX0MjIoQz1Gs G39L4NOaqvtOgHDkS5tRYoyn4BPwXgBuA18Ittwwonv6zPAxM6J69bprBZIyaRMt+sAf hZfw== X-Gm-Message-State: AOAM532oAkM+7LZBf7RHw355ID9WbpFqB3JPXTSm/4YskUGBhOQc5G/O QMs+rSzpfr88voRVou5B97EVaA== X-Google-Smtp-Source: ABdhPJykZ+JozGGOFkpFth/UQvfXGGbzzjzLJSB8dpuc8Qgb0f4Pz0qrsPBgTWgJRl6p7GLf1sS2Ig== X-Received: by 2002:a63:5613:: with SMTP id k19mr1908920pgb.424.1597170080907; Tue, 11 Aug 2020 11:21:20 -0700 (PDT) Received: from nagraj.local ([49.206.21.239]) by smtp.gmail.com with ESMTPSA id x7sm26595162pfc.209.2020.08.11.11.21.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 11 Aug 2020 11:21:20 -0700 (PDT) From: Sumit Semwal To: Thierry Reding , Sam Ravnborg Subject: [PATCH v4 1/2] dt-bindings: display: panel: Add bindings for Tianma nt36672a panel Date: Tue, 11 Aug 2020 23:51:06 +0530 Message-Id: <20200811182107.6515-2-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 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: devicetree@vger.kernel.org, David Airlie , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, Bjorn Andersson , Mauro Carvalho Chehab , "David S . Miller" Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" The nt36672a panel from Tianma is a FHD+ panel with a resolution of 1080x2246 and 6.18 inches size. It is found in some of the Poco F1 phones. Signed-off-by: Sumit Semwal Reviewed-by: Rob Herring --- v2: remove ports node, making port@0 directly under panel@0 node. v3: updated to replace port@0 to just 'port'. --- .../display/panel/tianma,nt36672a.yaml | 95 +++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 Documentation/devicetree/bindings/display/panel/tianma,nt36672a.yaml diff --git a/Documentation/devicetree/bindings/display/panel/tianma,nt36672a.yaml b/Documentation/devicetree/bindings/display/panel/tianma,nt36672a.yaml new file mode 100644 index 000000000000..03dc323332a5 --- /dev/null +++ b/Documentation/devicetree/bindings/display/panel/tianma,nt36672a.yaml @@ -0,0 +1,95 @@ +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/display/panel/tianma,nt36672a.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Tianma model NT36672A DSI Panel display driver + +maintainers: + - Sumit Semwal + +description: | + The nt36672a panel from Tianma is a FHD+ LCD display panel with a resolution + of 1080x2246. It is a video mode DSI panel. + +allOf: + - $ref: panel-common.yaml# + +properties: + compatible: + const: tianma,nt36672a + + reg: + description: DSI virtual channel of the peripheral + + reset-gpios: + description: phandle of gpio for reset line - This should be 8mA, gpio + can be configured using mux, pinctrl, pinctrl-names (active high) + + vddio-supply: + description: phandle of the regulator that provides the supply voltage + Power IC supply + + vddpos-supply: + description: phandle of the positive boost supply regulator + + vddneg-supply: + description: phandle of the negative boost supply regulator + + pinctrl-names: + description: Pinctrl for panel active and suspend + + pinctrl-0: + description: Active pinctrls + + pinctrl-1: + description: Suspend pinctrls + + port: true + +required: + - compatible + - reg + - vddi0-supply + - vddpos-supply + - vddneg-supply + - reset-gpios + - pinctrl-names + - pinctrl-0 + - pinctrl-1 + - port + +unevaluatedProperties: false + +examples: + - |+ + #include + dsi0 { + #address-cells = <1>; + #size-cells = <0>; + + panel@0 { + compatible = "tianma,nt36672a"; + reg = <0>; + vddi0-supply = <&vreg_l14a_1p88>; + vddpos-supply = <&lab>; + vddneg-supply = <&ibb>; + + reset-gpios = <&tlmm 6 GPIO_ACTIVE_HIGH>; + + pinctrl-names = "panel_active", "panel_suspend"; + pinctrl-0 = <&sde_dsi_active>; + pinctrl-1 = <&sde_dsi_suspend>; + + #address-cells = <1>; + #size-cells = <0>; + port { + tianma_nt36672a_in_0: endpoint { + remote-endpoint = <&dsi0_out>; + }; + }; + }; + }; + +... From patchwork Tue Aug 11 18:21:07 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sumit Semwal X-Patchwork-Id: 11709499 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id D0E6813A4 for ; Tue, 11 Aug 2020 18:21:28 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id AF2A22076C for ; Tue, 11 Aug 2020 18:21:28 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="bGgXl4Ul" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org AF2A22076C Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 093896E5CA; Tue, 11 Aug 2020 18:21:27 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-pf1-x442.google.com (mail-pf1-x442.google.com [IPv6:2607:f8b0:4864:20::442]) by gabe.freedesktop.org (Postfix) with ESMTPS id DD2A56E5CA for ; Tue, 11 Aug 2020 18:21:25 +0000 (UTC) Received: by mail-pf1-x442.google.com with SMTP id d188so8074607pfd.2 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=IyMgkuHfMiXi6kmbGNuBD2xasOczUMrpPGDvb8RXiRsuWyIj6YrnllzYsxXamfSrmB dZU3nE7jOLrW0UeiNA73BV41CMhUB6S+X5QAwM6TS44Il+qpLylTWJYVvSOWAcrQfjsN 1mUf+3mLWR0dxmM9H0C54SDyhq010owLs2QnCzTXyIATIJcXQnuL0i+Bj9exeu/pnO3D sy8ttizJQaTn5WBHBh/XtMDbfiRBJT3PH9efyjG60wnR9J3bytnYaHzcrrcFtkyDVsDe uJ5Ls7s/4x3BpMFmmrDu+CuPQY/c2dP3GxydI+gwmlAPULaF07Ji2EQn+phvGHyphdHD 1j+Q== X-Gm-Message-State: AOAM532HcaiN3EW046qz8eip7V28Q5c15Z7GIVBXYGap0XSusp3ZfjTh HLPe6Bj8wvg5zEeCCDEqnyVhkw== 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 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 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: devicetree@vger.kernel.org, David Airlie , Benni Steini , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, Bjorn Andersson , Mauro Carvalho Chehab , "David S . Miller" Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" 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