From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wr1-f44.google.com (mail-wr1-f44.google.com [209.85.221.44]) (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 B13FB47FAE6 for ; Mon, 7 Sep 2026 11:52:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.44 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788781973; cv=none; b=JcNSgWGmRD14mAt2kVdEKVlumHBd1qJazOrFLkegYzVn5z915enNHUXuPSPSRtduSY8OCqju3Zge5eY10R7oyt0GGN4zECTP6tPqGikMyzAYOq+oJk42ltg+KtYlEC0frPtbHm6WwE/2Ac9qAZCZf1KZ2Fy/wATP3UnKBwTtesg= 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.221.44 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-wr1-f44.google.com with SMTP id ffacd0b85a97d-482ea739de2so2319718f8f.0 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=dsruE2/c2x0CKQpZK+yzPiA39glAWbCkxAV9C15ab1eiXjsXEJcsghKrZqsQKTZExX 81T/VPlY4oQUrifeJMvkS8S+wPBt7FUiG5FsbDze70x5RLImJK/v/BUr+e3lyWmUe7il xMuVQxRXrw1qd6XKSpfcI7AVqjCJsy2va7dyAh1RjRMyK4TjCdCx0xpTcc+FsckhWpDx TKeHIVix5aS6ZQzbClcaPj2WO0UqLNmI8aOU/bEGlTj6Lnhnm14CJNPLg5/u8WyBg7bp cYKAq+wkMVxr/m4ut3AQGDwsIgusUkWaX8wSnq3MFBaFOBiy7HLXzACo+Tyvl/h1gvA4 /tAg== X-Forwarded-Encrypted: i=1; AKwUvBxRZ/O9+wmyxbRm1uQlcoy+9dkv+HQWFF7pRSAoRZAb5iKZtOY3s05c3zegtkFB1Pkv6ta+hXZcwr4V@vger.kernel.org X-Gm-Message-State: AFuF++l/yORFEVCw1G1KN1V8t/DFYBY+tPplGroCfYVnI+hojMKfxXfx fyCE6q0n6i3tegQuvAOF010bfAqTmz9YOLYGSbaIDskED+ufEh/VM+O2 X-Gm-Gg: AYBFou2t3wz5GGbl0RC6ks/KM/uCEecp2kxz7SnWqRHzPJoqSfssxL3ND5Se+/IJepB D1tpYf/oynfFl2t0h8V7GBKDvNS/hVBPUycGWGCHjQ6TzTH+93p2635UafrAF6Nn5sMBkiksnyK OLpNwi098K1oxa2XMM7PqJ8TGGtNTSrQMmsyyIkHPxo1GWrL3SpVCuOXRbGcNKqb+9VFcmLeRwV +gm8u6uFauJuZOXW+domW16MsX2IcBI7JkWZkMSLmEsjrdNiZddR+DPR4Gh6x1Htjo7AKwNhI3A JW+Ov2IFplc2EGoNLy8ignQm9plsGJHLy8ojZWfloVNbP1xQkWNceziRDF/msr2sOpL9iG5TTME Ab5VHRNEZUm4Ycqh1D/8uqP3kQu1pKYV9Ub/ax3q5QOynOggl5uDpRLvWzRxu7zyxySFQgJqliy ErLez6U5iDARzuf7owra42O5yTmH7r1m9wLnfwDjXr9uZb2SSZhYtDQ3IB+KMXL0If+wnN4ylvT Og= 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: devicetree@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