From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wm1-f51.google.com (mail-wm1-f51.google.com [209.85.128.51]) (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 C62A448823A for ; Mon, 7 Sep 2026 11:52:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.51 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788781973; cv=none; b=QkZY3NLYMFHm2wKbdDN6s1+8IHeXTrCWBKE5V5oicPCK/FTJPgz8tQvw33/kAC55y+VX2KSGzsJxhul+kJ75NCtDJW7qoPQXW9wQCmOSoVQlQ2BAwZZFidHfDVsdh8T6G8EicgJQuKSmrpTt2PTget5YYuAAwQdNxBKaYug7c1I= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788781973; c=relaxed/simple; bh=amn/RFS6smWPBd7o2YH5YZXbbloLAPzDGopj96clkUs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=bEEkvwJYG2OmUP32JTuCJeUxEB9GumU3SVzZH3HdNn6R5gAxNlvasZM39/ROP+BUH0VhA88G2z+5vzWnQB3Id3bLXPj4XoZFDza1pe1di7WrevuxHOUs/Evg/cUYnqqltkLS/eWuEeu/GGcIl7i2dOnDmAAmR/rEaAHrXsHpXOY= 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=S7EqESRX; arc=none smtp.client-ip=209.85.128.51 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="S7EqESRX" Received: by mail-wm1-f51.google.com with SMTP id 5b1f17b1804b1-49cd77e0f95so29116795e9.3 for ; Mon, 07 Sep 2026 04:52:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1788781970; x=1789386770; 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=D7R3VJcHDlomCHsnFsSOZiYtq/P5zAezYH17tYJWimU=; b=S7EqESRXalBcfYg+v8yaiLIq2F4oLA2ux02488laTqQntcgKelmMcu939PprvViJcA KyBVJTaazgdH+SDgtF4JOLOolm0NBCLjiTKzeI9T07vdMrr7r25StdphdNQBhHfmXk8+ WBMckDXDYa9HgOH3/+DSL7KRZI6mJnN4i/QViqHh8E0z0HO6uZeQ02X6JqHLHYFXjp4T /aaSzLcnEnYUF0RWvKVD6nerHiFMvL0JsgUrXZGJG9n9YzT11v4sqpM2RO4w5JHu7xhx jDso3RI2o5wXlIYUWse8Sr1hHgtgbjYRHbZIUhk5Qg/+olze2I4tA8AdQ6tY5B4qFlms Qk7g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1788781970; x=1789386770; 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=D7R3VJcHDlomCHsnFsSOZiYtq/P5zAezYH17tYJWimU=; b=n/KgBF5dscMlLMU45qkya+Q6rEBlvpVnUa9uacx68WtS+mIizNAEwLHedxTbwWziDH Ycr3NyLcXVK9jKEzX5YniKEAdP9tVw30OsWDt++62D+nA1Hh1bTGs18ZZtsEr7oN2f1r htDxDAlB52m7CcniozlmwyIZV+DDBs8dvJIJrTJXc+NPHzCKR9Zro6raRAqamHTlMcA7 IX8OEmQpKtObvHKw0JQRDDaOmNekEEfVCxNciMlOO0eLVDwv/ZhBLDO1n7gWpHEUCGhu mG9XxwXQugZDmvkAAo5ANlhsmf1cW/KOz+S87Yx9nPmPhtomSonFKGcego3Nwwig5iDt ntcQ== X-Forwarded-Encrypted: i=1; AKwUvBx39ykygTsjFMhmwWZIkSFp9bqfkXJ6/iLqsuNScP7GDnR6C/iYkBd/1UPbHq+NLdU9R7yKbogSdWc8Hjc=@vger.kernel.org X-Gm-Message-State: AFuF++l2uT9Rb6w7JkwhmLf/RWd9HP1VtSr9HD5JlfvfZ0yP+VwhqE4S WxlYJCIDzHnystswxk6aUQYC0fBVHMUBZDp5wc+/6/bAt/aizOzyousy X-Gm-Gg: AYBFou2F8UNz3+PKaEPnzYVRGXGyALmWPRFtDOun/ZlPAwscjYqAqVyQ/GeePuPqQcB 3fsMJ3Iu+0dSkvbp5KJ73b/ybO0DLgdhTmcnGgL/GisYTDr6jAc8bjyba6OtO/cZ+XyPPEPr132 mz6x+jOixHurJDhUrWYSIlHpFtiGb5+U2kd120h31xVzOdeV/M6o8X8eDaGTGVlih+e2yZPfjOT syFRP/L5CTxYLP8pL7eUVAFngjo57HqTQn0AS39Y5Ik4xxLZFzXRBZ7E4a612+jOiPAvkQEX+AS SJn5nbRrmDcHYOZNOMMYa8G7ZLdQlQGaw1zReqaKQEfoSXTMH/4zVxnfG4I4wTE7SpM2jiWkZe7 9miLVnQX4zp0uP4VYxSBfJ+BwIwMl7ZQodC5CFoUnEwuJLwugaPYmVVyn1Fanitp+c2dkadqUrf WstPxd3kZ8/km+hPgoDogst6gO15RTVBtYysS5U0SE6s3zC5anN5TkIXLiER7Et5Lr3sheKIJkN 00= X-Received: by 2002:a05:600c:4fc5:b0:49c:fe18:6dd5 with SMTP id 5b1f17b1804b1-49cfe186dfemr187825235e9.29.1788781969872; Mon, 07 Sep 2026 04:52:49 -0700 (PDT) Received: from Empers0n ([193.23.219.104]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-4858d2693e8sm26830718f8f.3.2026.09.07.04.52.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 07 Sep 2026 04:52:49 -0700 (PDT) From: Vsevolod Nevorotov To: neil.armstrong@linaro.org, robh@kernel.org, krzk+dt@kernel.org Cc: jesszhan0024@gmail.com, conor+dt@kernel.org, airlied@gmail.com, simona@ffwll.ch, mripard@kernel.org, tzimmermann@suse.de, maarten.lankhorst@linux.intel.com, dri-devel@lists.freedesktop.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Vsevolod Nevorotov Subject: [PATCH 2/2] drm/panel: Add Samsung AMS662ZS01 panel driver Date: Mon, 7 Sep 2026 18:51:30 +0700 Message-ID: <20260907115130.95394-3-sevanevorotov29@gmail.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260907115130.95394-1-sevanevorotov29@gmail.com> References: <20260907115130.95394-1-sevanevorotov29@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 support for the Samsung AMS662ZS01 AMOLED display panel used in the OnePlus 9RT (martini) smartphone. The panel operates in Command Mode with DSC (Display Stream Compression) enabled at 1080x2400 resolution at 60Hz. Signed-off-by: Vsevolod Nevorotov --- drivers/gpu/drm/panel/Kconfig | 13 + drivers/gpu/drm/panel/Makefile | 1 + .../gpu/drm/panel/panel-samsung-ams662zs01.c | 398 ++++++++++++++++++ 3 files changed, 412 insertions(+) create mode 100644 drivers/gpu/drm/panel/panel-samsung-ams662zs01.c diff --git a/drivers/gpu/drm/panel/Kconfig b/drivers/gpu/drm/panel/Kconfig index cbdf7b8f7f7..c94116ca42c 100644 --- a/drivers/gpu/drm/panel/Kconfig +++ b/drivers/gpu/drm/panel/Kconfig @@ -904,6 +904,19 @@ config DRM_PANEL_SAMSUNG_AMS639RQ08 Say Y or M here if you want to enable support for the Samsung AMS639RQ08 FHD Plus (2340x1080@60Hz) CMD mode panel. +config DRM_PANEL_SAMSUNG_AMS662ZS01 + tristate "Samsung AMS662ZS01 panel" + depends on GPIOLIB && OF && REGULATOR + depends on DRM_MIPI_DSI + depends on BACKLIGHT_CLASS_DEVICE + select DRM_DISPLAY_HELPER + select DRM_DISPLAY_DSC_HELPER + help + Say Y or M here if you want to enable support for the + Samsung AMS662ZS01 FHD Plus (1080x2400@60Hz) DSC CMD mode panel. + This panel is connected via MIPI DSI interface and is + primarily found in the OnePlus 9RT smartphone. + config DRM_PANEL_SAMSUNG_S6E88A0_AMS427AP24 tristate "Samsung AMS427AP24 panel with S6E88A0 controller" depends on GPIOLIB && OF && REGULATOR diff --git a/drivers/gpu/drm/panel/Makefile b/drivers/gpu/drm/panel/Makefile index 3b523cf3783..fc5cfc4dd6b 100644 --- a/drivers/gpu/drm/panel/Makefile +++ b/drivers/gpu/drm/panel/Makefile @@ -88,6 +88,7 @@ obj-$(CONFIG_DRM_PANEL_RENESAS_R69328) += panel-renesas-r69328.o obj-$(CONFIG_DRM_PANEL_RONBO_RB070D30) += panel-ronbo-rb070d30.o obj-$(CONFIG_DRM_PANEL_SAMSUNG_AMS581VF01) += panel-samsung-ams581vf01.o obj-$(CONFIG_DRM_PANEL_SAMSUNG_AMS639RQ08) += panel-samsung-ams639rq08.o +obj-$(CONFIG_DRM_PANEL_SAMSUNG_AMS662ZS01) += panel-samsung-ams662zs01.o obj-$(CONFIG_DRM_PANEL_SAMSUNG_ATNA33XC20) += panel-samsung-atna33xc20.o obj-$(CONFIG_DRM_PANEL_SAMSUNG_DB7430) += panel-samsung-db7430.o obj-$(CONFIG_DRM_PANEL_SAMSUNG_LD9040) += panel-samsung-ld9040.o diff --git a/drivers/gpu/drm/panel/panel-samsung-ams662zs01.c b/drivers/gpu/drm/panel/panel-samsung-ams662zs01.c new file mode 100644 index 00000000000..52e7e75c08b --- /dev/null +++ b/drivers/gpu/drm/panel/panel-samsung-ams662zs01.c @@ -0,0 +1,398 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* + * Samsung AMS662ZS01 6.62" 1080x2400 AMOLED DSI command-mode panel with DSC. + * + * Found on the OnePlus 9RT (oneplus,martini). Both panel revisions the vendor + * tree carries -- "samsung ams662zs01 fhd cmd mode dsc dsi panel" and its + * dvt respin, which the martini bootloader hands off as + * msm_drm.dsi_display0=qcom,mdss_dsi_samsung_ams662zs01_dvt_dsc_cmd -- share + * one initialisation sequence and one set of timings; the revisions differ only + * in the HBM/fingerprint brightness tables, which this driver does not use. + * + * Command sequences and timings transcribed from + * arch/arm64/boot/dts/vendor/qcom/display/dsi-panel-samsung_ams662zs01_dvt_dsc_cmd.dtsi + * in the vendor kernel (timing0, the 60 Hz mode). + */ + +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +#include