From nobody Tue Feb 10 00:39:52 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 68710333434; Tue, 21 Oct 2025 11:53:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761047588; cv=none; b=CYO2bdCjUTvIOQT1zT8Ujg7LEgd52VAyLxkSfIYpQxZaro0sE2jUyvrCFhs9DDXf3CMjowYWSGTyTPdrwCucXOB3NsDWwKjdQ3jCgdfxVSarSCWhpcFkpATjBY1Kfv8Gf1eRNqYPdJE79RSBc58dW2As/ma5v/PEMlAj4csTrUY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761047588; c=relaxed/simple; bh=v5D7nE1ZWhuJ6MDMTzwFDQBR/WaGOhAInmMJsBFluxg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=fv/AGTMHscX3XVXgve9VJXUSmCm/whD96xPZ+pgyDukWj+3qJ5qkHXkGwWOmYFQBQHkjGDGd6usN1qCEyH8rhSMULlE4rLK6oMo+piwNuS9EwTrNUKbBlhzX2D7f51BdvEsIsQbcaZ8RqG53cB7GfWGoTKBZT1y8349gsyJosLk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=BaQ8kWDe; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="BaQ8kWDe" Received: by smtp.kernel.org (Postfix) with ESMTPS id D479FC4CEFD; Tue, 21 Oct 2025 11:53:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1761047587; bh=v5D7nE1ZWhuJ6MDMTzwFDQBR/WaGOhAInmMJsBFluxg=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=BaQ8kWDe4ZqZAtdOyeDIwg+p2tZeiJ+drWwmuI61Vo+ovzP3RhwcDitWnI/Z1QMlB cMrpvUxSKTonUMw1B85yADKZ+Nf8Fuc+Gg09nCOJ8uOSTovqYAHM0h+/usZj77gOuc WWKPe+hrabSwhKmvBMVfLXDzYez6LFNMx68Imv4pUJe3XWDfHJ0b5hgZmQrjL9oMnY IoUf8cdM9jOlNn1+N5nTGlC6KRlosK1Ftxe/za6K3bXkztIxRxjKrHO8xetK3qgXch x6AHEBl/4gmnv+sLZEF9nwoU1pKYJILaeNNIBPxIxIHG6QSa0FuIIujntgG5kDkuGL 3oHvsq6MBYHGA== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id C439ECCD1A5; Tue, 21 Oct 2025 11:53:07 +0000 (UTC) From: David Heidelberg via B4 Relay Date: Tue, 21 Oct 2025 13:53:02 +0200 Subject: [PATCH v4 2/7] drm/panel: Add Samsung S6E3FC2X01 DDIC with AMS641RW panel Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251021-s6e3fc2x01-v4-2-5e3ee21c688a@ixit.cz> References: <20251021-s6e3fc2x01-v4-0-5e3ee21c688a@ixit.cz> In-Reply-To: <20251021-s6e3fc2x01-v4-0-5e3ee21c688a@ixit.cz> To: Neil Armstrong , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Thierry Reding , Sam Ravnborg , Bjorn Andersson , Konrad Dybcio , Casey Connolly , Jessica Zhang Cc: dri-devel@lists.freedesktop.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, phone-devel@vger.kernel.org, David Heidelberg X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=15295; i=david@ixit.cz; h=from:subject:message-id; bh=9MgG9IyU3Z2P4zB5yh+ZZym8fZkFc1R+kwdqnFGHYec=; b=owEBbQKS/ZANAwAIAWACP8TTSSByAcsmYgBo93Qh7YbTlVXOCSaiYAyt70wVmFAZNL0XKFng/ DZFW9CBP5eJAjMEAAEIAB0WIQTXegnP7twrvVOnBHRgAj/E00kgcgUCaPd0IQAKCRBgAj/E00kg csq0EAC6dh+43I2iv5rPtm6ya6vbyiLLKxnzMZnEM5uJxeb2cSq3R4GmofgfIQg09LwVcQIJi2Z m79BeIh8OTX+SKjvpED0XnU71IJRpVoQmfIMaKteA3U2iJRinvrkw0QlWHi83b7z2EZBmvKQ8E+ hF25gIq3id2WD1lCGoJ9BDiTHPpLmtIY0KGE6eAlO0LbHD6K1d7NGidFbWRebznXM83lkJomm+w 34gDWgWzfz6x1/jr3N5CtSUTkXGjsC2tUXyN7BIXsWTDoVdbHCE+6qbhnJTxR5FitJZ7bX+kzbz wxHzDTbIw4asUtzW4MMFjV1/sFunh7Fe1Kn1No/zrkZL9ewNxIvYPlFxmfLt9mnZxeQezG9kn0h s3jeYyDxx5HwK5W0df7O9yVFTsqVB8b0HReoSTGCWnuMSIQCaMgqHmFLQNI9nrvso2wQzMH8EpK sxbfwuP9ph5eMbjT6pOZPRQp0GifrAMypIKQQRbWvdUHmzMh7uvKg/q86ZDF3O1MkNHFQkK9C9a KRRY/lcauMCAcMgIUUgrwg5O6ZeJMJHlNkMM70F4bUgI8yTpWKQed61KT01F3v6d1UgY3WWxcEE eE6MhwCdSPV2nfX3FsQwfDTrIFzvAXRl4Mcrx/opk4/0Ry1TdAUQWA0YZd6kGLUZ7armBvQ05Kp riaNE1NbXeEaW9Q== X-Developer-Key: i=david@ixit.cz; a=openpgp; fpr=D77A09CFEEDC2BBD53A7047460023FC4D3492072 X-Endpoint-Received: by B4 Relay for david@ixit.cz/default with auth_id=355 X-Original-From: David Heidelberg Reply-To: david@ixit.cz From: David Heidelberg Add panel driver used in the OnePlus 6T. No datasheet, based mostly on EDK2 init sequence and the downstream driver. Note: This driver doesn't use previously mentioned "samsung,s6e3fc2x01" by OnePlus 6T device-tree. The reason is because DDIC itself without knowing the panel type used with it will not give the driver enough information about the panel used, as the panel cannot be autodetected. While would be more practical to support the original compatible, I would like to avoid it, to prevent confusing devs upstreaming DDICs. Based on work of: Casey Connolly Joel Selvaraj Nia Espera Signed-off-by: David Heidelberg --- MAINTAINERS | 1 + drivers/gpu/drm/panel/Kconfig | 13 + drivers/gpu/drm/panel/Makefile | 1 + drivers/gpu/drm/panel/panel-samsung-s6e3fc2x01.c | 385 +++++++++++++++++++= ++++ 4 files changed, 400 insertions(+) diff --git a/MAINTAINERS b/MAINTAINERS index 42be36b42c29b..a3296756f5ca3 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -8065,6 +8065,7 @@ DRM DRIVER FOR SAMSUNG S6E3FC2X01 DDIC M: David Heidelberg S: Maintained F: Documentation/devicetree/bindings/display/panel/samsung,s6e3fc2x01.yaml +F: drivers/gpu/drm/panel/panel-samsung-s6e3fc2x01.c =20 DRM DRIVER FOR SAMSUNG S6E3HA8 PANELS M: Dzmitry Sankouski diff --git a/drivers/gpu/drm/panel/Kconfig b/drivers/gpu/drm/panel/Kconfig index 045ffb2ccd0f0..fadb7f397837e 100644 --- a/drivers/gpu/drm/panel/Kconfig +++ b/drivers/gpu/drm/panel/Kconfig @@ -801,6 +801,19 @@ config DRM_PANEL_SAMSUNG_S6D7AA0 select DRM_MIPI_DSI select VIDEOMODE_HELPERS =20 +config DRM_PANEL_SAMSUNG_S6E3FC2X01 + tristate "Samsung S6E3FC2X01 DSI panel controller" + depends on OF + depends on DRM_MIPI_DSI + depends on BACKLIGHT_CLASS_DEVICE + select VIDEOMODE_HELPERS + help + Say Y or M here if you want to enable support for the + Samsung S6E3FC2 DDIC and connected MIPI DSI panel. + Currently supported panels: + + Samsung AMS641RW (found in the OnePlus 6T smartphone) + config DRM_PANEL_SAMSUNG_S6E3HA2 tristate "Samsung S6E3HA2 DSI video mode panel" depends on OF diff --git a/drivers/gpu/drm/panel/Makefile b/drivers/gpu/drm/panel/Makefile index 0356775a443ad..ae56f64982cfb 100644 --- a/drivers/gpu/drm/panel/Makefile +++ b/drivers/gpu/drm/panel/Makefile @@ -79,6 +79,7 @@ obj-$(CONFIG_DRM_PANEL_SAMSUNG_S6D16D0) +=3D panel-samsun= g-s6d16d0.o obj-$(CONFIG_DRM_PANEL_SAMSUNG_S6D27A1) +=3D panel-samsung-s6d27a1.o obj-$(CONFIG_DRM_PANEL_SAMSUNG_S6D7AA0) +=3D panel-samsung-s6d7aa0.o obj-$(CONFIG_DRM_PANEL_SAMSUNG_S6E3FA7) +=3D panel-samsung-s6e3fa7.o +obj-$(CONFIG_DRM_PANEL_SAMSUNG_S6E3FC2X01) +=3D panel-samsung-s6e3fc2x01.o obj-$(CONFIG_DRM_PANEL_SAMSUNG_S6E3HA2) +=3D panel-samsung-s6e3ha2.o obj-$(CONFIG_DRM_PANEL_SAMSUNG_S6E3HA8) +=3D panel-samsung-s6e3ha8.o obj-$(CONFIG_DRM_PANEL_SAMSUNG_S6E63J0X03) +=3D panel-samsung-s6e63j0x03.o diff --git a/drivers/gpu/drm/panel/panel-samsung-s6e3fc2x01.c b/drivers/gpu= /drm/panel/panel-samsung-s6e3fc2x01.c new file mode 100644 index 0000000000000..e63080204af77 --- /dev/null +++ b/drivers/gpu/drm/panel/panel-samsung-s6e3fc2x01.c @@ -0,0 +1,385 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* + * Copyright (c) 2022 Nia Espera + * Copyright (c) 2025 David Heidelberg + */ + +#include +#include +#include +#include +#include +#include +#include +#include + +#include