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 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 smtp.lore.kernel.org (Postfix) with ESMTPS id 0817CC44506 for ; Thu, 9 Jul 2026 14:30:55 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 39A3410E099; Thu, 9 Jul 2026 14:30:55 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="CeJgfdAc"; dkim-atps=neutral Received: from mail-pf1-f171.google.com (mail-pf1-f171.google.com [209.85.210.171]) by gabe.freedesktop.org (Postfix) with ESMTPS id 0C27210E099 for ; Thu, 9 Jul 2026 14:30:54 +0000 (UTC) Received: by mail-pf1-f171.google.com with SMTP id d2e1a72fcca58-848593533cbso758971b3a.3 for ; Thu, 09 Jul 2026 07:30:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1783607453; x=1784212253; darn=lists.freedesktop.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=iEEZ0/5K5qAQ+cj7COiX8QPDrLBCgWIMBAhQUBFdT/s=; b=CeJgfdAc5rTNdkZIp0Efi1ha2vTwxVtIseoqT6zt25P3c0MoJ7XHZLGHx+JexsC/eE 70EvMe22vCy10KjJsGQnuyU0BK84txiE96W7s44n22QI804srn3pZw5MihKTFctpcNEW evVO5m9AhuPPFr5BjyJiCkxdcFy1eVvsQHFLJtbbhsUZfqRMltr2rTjNgPDDEGXb5The vbm6DbTVh+UNilkM1Kt9IxcWxGXzQ+PJSuV/mkuIG0/eK+qpnUu7yoAvrT2YD9eOsKNU D8j0cPUPryclHqCFrytzQLmHArDUJp35lOVkfjYV1CvykOiWh7YVaFPKQFMiMZrWBsoe SQmQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783607453; x=1784212253; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=iEEZ0/5K5qAQ+cj7COiX8QPDrLBCgWIMBAhQUBFdT/s=; b=CrsGDRS6HguIWqEJV/G3LTpZmmvW1H0zUBRGOMew/nzPl2V3cALUm19SPSlPorNNuL W8M5zAobOygWhen9UXE8KAPlGA2jdAuW8WWemaF1E3efO2/6ynFQawqNqdsRsQV4rMm2 v1Oe2f1ve3ef8k1/G5aLphUrzKTeNIy6O81TksZ5I6EBNZ55e0JlUkdB7++58Hns3sO/ Qn1HC8yKkJOKSTy5O049GKsQysrWZT52Kk+LiXlUnj1avNnrGIwqS6A3UkKvv7e0+TNX SqUSkJ4AV3k45L3AepDjvWhUuLm2EHilnfKP6BJtoXjQPWBwNqepZYjrHDygeSk1DIow kUXw== X-Gm-Message-State: AOJu0YzXdwZhVdQMIe81mxvTKTgcw7F1OhoLKIuxCR2t/v7EyS2YuJLB syIzSTjQyAoFGXV4fuRZPzt3mnMPkMcxpGZQMDuWm2kvM5Z0VHVp61Lc X-Gm-Gg: AfdE7cm7318pFghNc3gIuJWT3JeJbU/X9vjfCXM5TQTzK1aLGuxYGhc3ixlD9/kaqvq h7Zy0judQHGmgic41UXAsyWjEnJMvupTUqJqFihOIWe3enuRKw51iPcRJocdJydFhmQEuKUpq19 UQDw538wTjcZ5kmrnq7U/0SwFvmLiEVC+5VY+cNw7cDuMoVT2HQ3rfVpwOtJCQkuqIN+9MP797T G+csSXaGSHYtLRoxRuOA+AjO2znaOn6Pkg8dScKeuQlq+9889xF7cs4ms7W2NsHKe9rlij/mXdQ /a56PfeAMrvCO2iXUNGoQPLxMtIGrAAH8pT7LoRflYVdP73OEBGoQ8FPYDjKRNoqEmkDtVKpYw1 E58aQKqRaGnUidUs474pVsX5ChVr4wzFq6PgyqFSRVMspPpgBXSjovkA+Mmo9w5pNNZre8lDQDq X34Uegiv2GWTAawegGHiLU4Elr4CbC90VTTPhXqTQ= X-Received: by 2002:a05:6a20:3d0c:b0:3a3:17f8:bedd with SMTP id adf61e73a8af0-3c0bcec1a02mr8901278637.17.1783607453213; Thu, 09 Jul 2026 07:30:53 -0700 (PDT) Received: from nuvole ([144.202.86.13]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-ca79aff904dsm2009666a12.6.2026.07.09.07.30.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 09 Jul 2026 07:30:52 -0700 (PDT) From: Pengyu Luo To: Neil Armstrong , Jessica Zhang , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: dri-devel@lists.freedesktop.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Pengyu Luo Subject: [PATCH v3 2/2] drm/panel: Add Novatek NT36536 panel driver Date: Thu, 9 Jul 2026 22:28:46 +0800 Message-ID: <20260709142846.12463-3-mitltlatltl@gmail.com> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260709142846.12463-1-mitltlatltl@gmail.com> References: <20260709142846.12463-1-mitltlatltl@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit 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: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Add a driver for panels using the Novatek NT36536 Display Driver IC, including support for the CSOT PP8807HB1-1, a dual-link 10-bit panel found in LENOVO Legion Y700 Gen4. Reviewed-by: Neil Armstrong Signed-off-by: Pengyu Luo --- v3: - Only include needed device-id headers (Uwe) v2: - Collect tags - Use devm_drm_panel_add() (Neil) --- drivers/gpu/drm/panel/Kconfig | 11 + drivers/gpu/drm/panel/Makefile | 1 + drivers/gpu/drm/panel/panel-novatek-nt36536.c | 488 ++++++++++++++++++ 3 files changed, 500 insertions(+) create mode 100644 drivers/gpu/drm/panel/panel-novatek-nt36536.c diff --git a/drivers/gpu/drm/panel/Kconfig b/drivers/gpu/drm/panel/Kconfig index cfbfb371bc67..53c0b95c26ca 100644 --- a/drivers/gpu/drm/panel/Kconfig +++ b/drivers/gpu/drm/panel/Kconfig @@ -662,6 +662,17 @@ config DRM_PANEL_NOVATEK_NT36523 around the Novatek NT36523 display controller, such as some Boe panels used in Xiaomi Mi Pad 5 and 5 Pro tablets. +config DRM_PANEL_NOVATEK_NT36536 + tristate "Novatek NT36536 panel driver" + depends on OF + depends on DRM_MIPI_DSI + depends on BACKLIGHT_CLASS_DEVICE + select DRM_KMS_HELPER + help + Say Y here if you want to enable support for Novatek NT36536-based + display panels, such as the one found in the LENOVO Legion Y700 + Gen4. + config DRM_PANEL_NOVATEK_NT36672A tristate "Novatek NT36672A DSI panel" depends on GPIOLIB diff --git a/drivers/gpu/drm/panel/Makefile b/drivers/gpu/drm/panel/Makefile index 0f29f22f589e..3b523cf37833 100644 --- a/drivers/gpu/drm/panel/Makefile +++ b/drivers/gpu/drm/panel/Makefile @@ -64,6 +64,7 @@ obj-$(CONFIG_DRM_PANEL_NOVATEK_NT35532) += panel-novatek-nt35532.o obj-$(CONFIG_DRM_PANEL_NOVATEK_NT35560) += panel-novatek-nt35560.o obj-$(CONFIG_DRM_PANEL_NOVATEK_NT35950) += panel-novatek-nt35950.o obj-$(CONFIG_DRM_PANEL_NOVATEK_NT36523) += panel-novatek-nt36523.o +obj-$(CONFIG_DRM_PANEL_NOVATEK_NT36536) += panel-novatek-nt36536.o obj-$(CONFIG_DRM_PANEL_NOVATEK_NT36672A) += panel-novatek-nt36672a.o obj-$(CONFIG_DRM_PANEL_NOVATEK_NT36672E) += panel-novatek-nt36672e.o obj-$(CONFIG_DRM_PANEL_NOVATEK_NT37700F) += panel-novatek-nt37700f.o diff --git a/drivers/gpu/drm/panel/panel-novatek-nt36536.c b/drivers/gpu/drm/panel/panel-novatek-nt36536.c new file mode 100644 index 000000000000..961bfc605b1a --- /dev/null +++ b/drivers/gpu/drm/panel/panel-novatek-nt36536.c @@ -0,0 +1,488 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* + * Novatek NT36536 DriverIC panels driver + * Copyright (c) 2026 Pengyu Luo + * + * Based on the sample code which is generated with + * linux-mdss-dsi-panel-driver-generator + */ + +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +#include