From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pg1-f172.google.com (mail-pg1-f172.google.com [209.85.215.172]) (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 1999133A9DA for ; Thu, 9 Jul 2026 14:30:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.172 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783607456; cv=none; b=P49sU8623TE08Ko0NhbC6gJreGDDacPAm94A1vssJlwIWJV9sKlYh/UimFxc76NvduWTJf2NkRRS6pbvbQS8deZQJQOtuFH1VFj/GwIZlxbw1Rx/4umTCBldzwCd9wO0/QaZTHxObAVDJF4D5/V8su8xwb0eT87NTEcBrVMld6A= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783607456; c=relaxed/simple; bh=5MloX1Ma08p2ZU0fiKkIGjrCAyt4XODN9Eei0+LEP4k=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=vEgpdVsnzDuM66HG6mLt7/jDCD2bPCHgmBb7CdD40cQlOYw8cp87Z+dDQuhFACeKBQCtdOY0uCF98j9CdiBcnF8m0aemxPCIwjvtWh65e7XJQ8FdmkiBWLQII3IB+DKqj1F2Ujeon1qfRoZaF/8bszsvTFdbuj3MEaT9cAwf/1M= 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.172 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-f172.google.com with SMTP id 41be03b00d2f7-ca766c1c9ccso1043489a12.0 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=ZMfhzCdMDW3/lpY323yJgLHQPNGx7Lf+3J9sP20am0CuPTfguZKXevNXt4pwjehUcL Dw5rsByKGb5TfdBqFDf6WS4whJyBusl/DQZBBMMuRenW2gkQ9uCZqTSDzPnCoWNDLIv1 Szw1x2zhjWhBHwK2GJpvKDX9mN8DY8qeZ3hJR+fI0k5qKRUcwOGNIcTBVpyN2GNYJrSp POW3OzGaHv4y21w0dRmDWDKHvNqtSiJ+7NPaFPh/b98Z1qpkbFbxi/ouBkhdlXXsFnt8 oHAa//ur2Pnuj/h3mgxfKOhyfDbJzVn3VXE3s5G2F+mh29tESo4YzGuZnzwYtbbi6wma WEpg== X-Forwarded-Encrypted: i=1; AHgh+RqBDFXTsapiY2eCogxf7VAkOTReik06AnwWrA3fllGBT986Y/ONDcIFvgOwKFa6LfinqHkVRlkL4KlE@vger.kernel.org X-Gm-Message-State: AOJu0Yz30O1fJ92vQsnubeGSdmuM/S7AZbCRJJfFBNNJJ/dlYOqR28Ko OqjcBSDSXGpxQdCltXCk8C75lwMqJXippbFJPJUoNXrNblvHDHxWpBqV X-Gm-Gg: AfdE7cmkLH3KQYoo0kD76KRY5Idp57hx0miSezbdsTu60pGpWSnf3AX14dYpX3ybgJS 5Ock+9jj+hE2OMSg9rAQIms6xxO01Qd5ODJcYrS4DqIT8OvU6aWAG2AArCxDT9b2KcpkfpYBQOV Lw0rDxIUJOZD+gCXofr1yxSvQ5HyQlruuQGkNhTkapEE3AiSUMuLWBL58YM8PLw5dsFzmB9dAVa 74UWl19w77H7O/IleOEj9ns0QdGh8IDG1g6/xpexoFA7+DjNM7LSpDyrCM/iykdS3ZRiHvLQ2VF pmmvrEact632xICPRuO/v13XiitqgpW2uFk3y1Nn4kQ0WDacSYtWvfFFyAipnM3VSAfqQOqYmfE 6h+BLIidzDZ6rggLLWUPh2fhpbuCs0myi+lgXEOaSK9mYhU+QbnPjV1y6U84IRqQmv2bVj4dS43 t8nHzAMU5ix2ZnB10cLRiUwrurw8yGFmtXJogrOws= 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: devicetree@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