From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pl1-f180.google.com (mail-pl1-f180.google.com [209.85.214.180]) (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 5F20F155C97 for ; Tue, 30 Jun 2026 02:37:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.180 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1782787054; cv=none; b=XkIcybBuHgYtOnyENlBqFinkrG51F1GMK8AJU2fGn6hd+brhLPxqOav0s+w28kWqMssCNKJRUMJ5uaFm49lR+6QCYL69uFDYj6wrwtRxtbMv/87aG52Og7erzd6Ab+hC8bfNGZA3PpMttjFFuogHCmiO1dAJ6IJgmrBmcnpGdXk= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1782787054; c=relaxed/simple; bh=uSJvCT+mXdyuvDI+ny3ognP1Dvhnjdy7q2M0htPwkSk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=AXkyLb51vAx5WUy9BeLLfUTZdtzmQMWKjIPmnmGY7MIMsJFFNUXkTlb21mjKGhqp59IEG+125R2Qi1k+WgB1GrhscfjP7cM2Ho/4Ho0SKNFJis71K1/ny5Fs9GZJDPDRL3KJxlSzhiJ1Uq8EuXqPLScwts7M0utR/qnHn9VsYQU= 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=Vy6+MGGf; arc=none smtp.client-ip=209.85.214.180 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="Vy6+MGGf" Received: by mail-pl1-f180.google.com with SMTP id d9443c01a7336-2c9e8a1d256so17652975ad.1 for ; Mon, 29 Jun 2026 19:37:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1782787052; x=1783391852; 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; bh=lxbjpX3+kf/I/sbIyYE21tJg4WcBkJjgekD+K3CM0yU=; b=Vy6+MGGfTyXMaxy5OFcixoF47cXyNos7sqk/ngh0vqvd6hQ1pNLuyaXvh383L7rywt iZLMZjqXKwB3Iw/Q7Dn4pJLQ/SBfP5Ictmju3r6oj91P3XbJCV1VVXnZ6guXhYLvvvv1 CTrBk4faZQwZxAQyojnd7pQJpDH3vKD7ktJswvcnuZGoP3ZmeVf03q7dCClRwrfBVovN XXM4YfxDByD9KXjVBRYWwco5D1zmtDrsTtNfRITvPfDi/F4dzX63L8SrUYCp6P8NmObY 3EKoONJm2Zl1Q1N6qs5SOYROpy8VLVIKzztdo40fQgqvZjNRrbU/XN1MdNMMTP57cvcR D9aQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782787052; x=1783391852; 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; bh=lxbjpX3+kf/I/sbIyYE21tJg4WcBkJjgekD+K3CM0yU=; b=m9jomwOCMnxbQiklvyzYAipihXe2JtERVFTZfSmk2RAfL/WC7wDV6iIEc76v3k3Yfu jI6V+l394OdGolLNRQF5STIfJJ/aJpweKQaHGHpeir71LfSpXSIIYP8+JKL8rPA2BOA8 IvCp84oM08+kbSxZ9O9GL6IhyRKMuCRFWvZ+m7IPeNFEoJ1ROKP0FVlEyA6zXF9LUtI8 F1h8s3WazyHr/ReBV1pewvjzJ7vTdUuo6KnTiobqj98rJ+jpMNR+xK1qZKlgx6Kd0rXg nXp1UYggpLePPQnqLv/XfFEBGQSH7lr0q36ZD3ZWXYW/0PFxG2FXQ0wFySO3up+OShSh KgPA== X-Forwarded-Encrypted: i=1; AHgh+RoethBCtQTbVORe3sTXg3/JRxdnn+g2M1Jpo44FDHHwybh26ZJzV8//K0QS0dvMLht+xnLVp1BwS6OO@vger.kernel.org X-Gm-Message-State: AOJu0Yx6yyPfWrXP0XxKteB9m6PfVgJC/dvs9ehl+Zxty/6iOYW7ioME 5YvZWHE7TVHOhpJALB22gz8k4EYBvRFL2fKy6DVFivN1QGEtW27+8tCX X-Gm-Gg: AfdE7cldJA9C708qtUWTw6kdxVXoeq+00PUzAzbUx1v/DQF1x6A9/siR1oTr414MgoP Px6kCzF252X/aqyU1/DDYRzoVdkhMm0sddowvZpaxJO9iOnj/tbKY5lKq6FQ7Ek2BYxb5nhzJj+ 2Bm12TuehZ7cSOcfFBtXa89R4LXKbnxUe6Pqb9xl8b8JoRkQClSzilLc/Jcou5sr8Ii/dQGI7QU 3BiZW1ZP40oEJZBliI3mCroBEtQbtBe7bNDiUxXu4LEulhO0dQanDqju7ZNzhHaDIlE/tPT4+iJ G0gr52St51Oc7ahlby5sEnBr8hGqzGmLVkwa75DRwC72nNuJMdT8LE9FesYP6GakbDjiIzlwXk7 8L+I6uiiuNx1c88HczZShGysZHggHCRPdHqJds0fZxsXX0P1C8SvWeflHU4JbGWqG/3Jm5tkywJ q9vl2Tdshm9+E= X-Received: by 2002:a17:902:dacf:b0:2c9:f3b5:4855 with SMTP id d9443c01a7336-2ca2d52a761mr14298915ad.8.1782787051533; Mon, 29 Jun 2026 19:37:31 -0700 (PDT) Received: from nuvole ([2408:844c:b00:2b2f:398a:8bef:b88c:653a]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2ca3828c2fesm3310465ad.49.2026.06.29.19.37.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jun 2026 19:37:31 -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 2/2] drm/panel: Add Novatek NT36536 panel driver Date: Tue, 30 Jun 2026 10:34:39 +0800 Message-ID: <20260630023439.248861-3-mitltlatltl@gmail.com> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260630023439.248861-1-mitltlatltl@gmail.com> References: <20260630023439.248861-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 10-bit panel found in LENOVO Legion Y700 Gen4. Signed-off-by: Pengyu Luo --- drivers/gpu/drm/panel/Kconfig | 11 + drivers/gpu/drm/panel/Makefile | 1 + drivers/gpu/drm/panel/panel-novatek-nt36536.c | 494 ++++++++++++++++++ 3 files changed, 506 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 7450b27622a2..3912b79a2ebb 100644 --- a/drivers/gpu/drm/panel/Kconfig +++ b/drivers/gpu/drm/panel/Kconfig @@ -620,6 +620,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 c2c5cf817116..21a5bdca988a 100644 --- a/drivers/gpu/drm/panel/Makefile +++ b/drivers/gpu/drm/panel/Makefile @@ -60,6 +60,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..3ad21fcdf9f0 --- /dev/null +++ b/drivers/gpu/drm/panel/panel-novatek-nt36536.c @@ -0,0 +1,494 @@ +// 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