From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pg1-f175.google.com (mail-pg1-f175.google.com [209.85.215.175]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2E9BA38399A for ; Thu, 9 Jul 2026 14:30:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.175 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783607457; cv=none; b=UBPrblZMy3Qf8tLtNij5WWJnMHZErg4weuDEmbnRECuVPS02DaMUwdBQcWAspgG5qd4RDjnwmXgVHuRhut3Axcu9NZj6LspEOVYlyS3+EKJbyiVqJnSeGaxC4kdU0777exZ4p70UvwUF4SYSX3rcbRT4f7ViSXbnjuTtkGYllZU= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783607457; c=relaxed/simple; bh=5MloX1Ma08p2ZU0fiKkIGjrCAyt4XODN9Eei0+LEP4k=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=gD7uneTfyiSnEqKIvZvHbVejmi8t/xAPYZ+C70PelDTnBt8SpU1jLxN4SHkkg++nErz/h6NLM4w3i4Wk5GFq4QeR/xZC/GiIWeyb+sTEXWxc1RY2aRG2OgU1JI3LHnRTKTiJt+NjDpuCUYvnImO2yUqfQwWMheaNwmkVCX/yWxU= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=A14dc2lM; arc=none smtp.client-ip=209.85.215.175 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="A14dc2lM" Received: by mail-pg1-f175.google.com with SMTP id 41be03b00d2f7-c966b9ee9cbso1082123a12.1 for ; Thu, 09 Jul 2026 07:30:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1783607453; x=1784212253; darn=vger.kernel.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=A14dc2lMGqkdA1dwWZgEg83qE0wXfc7QcvtnLe/nAPFEyW9q1c6YGHbscnjb9Mzz8F 4heg9oCzCjPxyedvouhbhSFcvcdYelXMe0s5/9wdTSj9WMfT7hT5/BZC6R8oWtSngOI4 z0n8McazL5ENck7I4TgxxI5m2+llYUQXsCAlZPcvxEiH9DUJBcbSY9Rn+QIG7MwwxeKT jPRxFffqbX9YWWQZYihYEbb2e1dWbcrxM1JEMGMnILcwEXyslGkl7szgVuZ21jFjHi1f Mp5mOy9Fand6Tpjy0ryXnUMFk0LNUK3cXl/+KuiUfQGjqcboEx7rwAQ4Y2IcDXBj3s4z xk0w== 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=Wz90QKtjPWE9DbI22b9OU4DQAINU14a/+fHFqSuiyceBzWiCgoQwyGcF1KaZ5/fWE8 T5v8xILtip/MZBNBv1eHoitWia8PSMca4xDYw6hRC+kmqBM5Dn69XNQT/tbqJ/DGbwtk rWPMqVehw/W5MvnZfhF+dnsBZ1hoz08tDwvHABMPlSSHThjyWsvSrNIOJr4nJx0lbRIR KgwYVsbXwqWtDSN2sXZ/RThNOxDOEWAab9ru7bfb03K/6gqoe5wEHhEShFFJKnfdvlNA TJhi5xhDk+vVsarSKjogcJnqpPkDki4c5dq9QLxN7OYuwRMXjk4UiAmMN+4b1wCuK/PF 4VSw== X-Forwarded-Encrypted: i=1; AHgh+RqxxAPfJRUkG+ls/TbspHz5sCl+XS+LX+255oK6RzmRSEE6eRYHf43NFSdJm9tb9QIFBiVCv462U6/zTmE=@vger.kernel.org X-Gm-Message-State: AOJu0YwsmXoubN5kHfvINyYVLBhdWf/FYnPgI4TrZz+4AGGkYdy8z4S/ 0E3cdyB7u2LOoM0EkkX/VhddGCv1K30TMBwnHhixGv+5e4bxxVpmYxaL X-Gm-Gg: AfdE7cnBbeMMfwZb8NofpABBhe/SXAqk0lMTeXGLVsL1TRYPVBkv7DnPJne+KqPOkuO v3/YqWumeGWHrhYBVXcuKPJi21v0JezlGVaRR75M68XZ8dXkptD2Lp7od8oLd/gUCJlVRyzbCS+ SgUukFd0ccdqC+hXYSD/kGtYjvU8wQeWckIKJPRe5tNCQ7GzRkcHxLBHO92PrwE6j/MnmWVMGcN 7qRPZ/taJ6rQdvkEO2SNAKNz90c9Dt/TBRO+uphBGmx6DwWu6Z9t6A5MhLXHomTy10yAUGpx9r5 8udlHcI71ZythbSkhywfWkVdLxE4AIyY2AGoROfRZxOeUToEYpcZ1fe8/1i+22+WTnSI2hoxbyN EuVdpDhqMeVAoI/bFLcMVJNWTzXiEbVbi9YdkrSPNXoAMj0FtTAxd8JQj2L1n/qM4Z0MpDP+O/X 54roQZbjNlqw1QCoacXJr3ju7N4CQ4eCi0L23bVaM= 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> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit 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