From nobody Tue Feb 10 01:35:58 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 3888E72629; Thu, 23 Oct 2025 20:24:29 +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=1761251070; cv=none; b=mcyjVmQJAHcNgUfS1RvaO+BHEEB4osfS7wsDcEhaei819/VP+jSsUcXzo7PcVlyv7vSFqcyjkePg/wsWKAMKqP7x9ScMw93bEVBmXlyW+aYHjEqb9iVszjpz4ejUY2jdugQmyrGoEAlzWv0psHDF4ZgqUkUaeRsX+YhAhSwp4mk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761251070; c=relaxed/simple; bh=v5D7nE1ZWhuJ6MDMTzwFDQBR/WaGOhAInmMJsBFluxg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=b0tZ0Fnyv1R7BxHE+p/Ba57CLnvIW9k/YFaBeIwofvMbJ/FMETwKDl2TQtNBIbjKcBTot1DUJHB509u6TwCl5VloSwQKQKyf8yDk4GR1rt1xgDLB2/yQbQPMiC1KG346EHmBTUOWUrtJXB2umhgKkjS3UYuv8NJsNviqTlv5kiI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=inPZ54lm; 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="inPZ54lm" Received: by smtp.kernel.org (Postfix) with ESMTPS id A65FFC4CEFD; Thu, 23 Oct 2025 20:24:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1761251069; bh=v5D7nE1ZWhuJ6MDMTzwFDQBR/WaGOhAInmMJsBFluxg=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=inPZ54lmnwGA25upiLFsxSLPykradeDcvm6mWEpm3iOMmzB+SB659bsStXbfkdkyA WUGmqCDf8NjY+nraIHcYL6waBGoxGNT48ZO6UNH3otGFNZ90g8ksbWcUB5gqPdbO+T kuAHwappteUXxwoIQW9H9f8WWV1+MgcMLVHWk9ZDnSAT+WLyPYHtLzaC8AxXStAglb /e/XYNah6NaQFgU019AgVdy0jeLJFIPlJmfG5ZmbO94y0VpynERChpApZBkx5tNvNR 8Q+nq12LNpZ0krCsV700eDbh00w/UTHWwEyjyt8JdTTX1Q7B3NVaxGPNBO+noZlVuk JjkSH2kwziH6g== 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 95FC3CCF9E6; Thu, 23 Oct 2025 20:24:29 +0000 (UTC) From: David Heidelberg via B4 Relay Date: Thu, 23 Oct 2025 22:24:26 +0200 Subject: [PATCH v5 2/6] 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: <20251023-s6e3fc2x01-v5-2-8f8852e67417@ixit.cz> References: <20251023-s6e3fc2x01-v5-0-8f8852e67417@ixit.cz> In-Reply-To: <20251023-s6e3fc2x01-v5-0-8f8852e67417@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/ZANAwAIAWACP8TTSSByAcsmYgBo+o77ryb6Q7LBffct51XnUqOmgqlX6RzoHAsui OTSq8w9SvyJAjMEAAEIAB0WIQTXegnP7twrvVOnBHRgAj/E00kgcgUCaPqO+wAKCRBgAj/E00kg cpzQD/9OZc5gSvoMoEGaN3EhAqhPNwde/GasZws1j8h7TGgjmoHuGujLrwac8ygPaTTkhzKgE/8 qYYYHypt0F9BM34zLVbggD7CXZSdcMjFXvE0yqIGt4/rY72hVcRqa703jYs3wvpv/En0tI8FRwO inRJ8udXDGp1uu9pJbPbfXdzXnY7wEd05FHidTnGA6/eIA92m0SkR1gp8cPH/2b9L+8ZEI2eYix 13GcDemuJPsVOcNRi5B2UlFSPSmAncmYQorMzTvvEFYVVwujfK/FyWGl6HLY04sc9cE0W+pc6OM /ZaLrS0ykkwOY9rLUCBFPIxajcmUwD9K5/KaUN/UehQa7YyPTYr3if4nhB7kJDYJG+CflYgTUrZ asxLdwF37+fp/Zr171XsuP2UzLnOLKMVhrtnl5+mMQbXEqy3Xo7lKQqfLK6ijp1xCnWD80khYl4 b0pV1gTncso8RgVE5d5yLty7exM8WdtnWSjaHyLLmDtw2T/y6AF+KEjOuKrvyJ/gFsBkdkhFZ9Q XXzou79fPtDS0pnpalQ/PYmCxWZimdPjJtbFFlzX3LWNJLGuPRP4SJYnZruYmFbcYzd69I6XCbM +hajRa3uqBnHLDkixueH1uQHON1xugIyh/DGZ26KXsDfjmpINBhIm1XyY+7nUGtiU4izVZKRh61 7dthTuXig91CFJA== 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 Reviewed-by: Dmitry Baryshkov Reviewed-by: Jessica Zhang --- 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