From nobody Tue Feb 10 06:25:06 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 4A4EC34F46B; Thu, 16 Oct 2025 16:17:00 +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=1760631420; cv=none; b=diIQfEkLoX6Can2+7IxSo+E3/GBJ31+uBbU6+daTbUj5XQP5Zu6Z3XTU772XSoZ0urXi2HfVx/SVA0qtBD5d43+oGh7q9Bm1zv2vt0mvaCgzNBkOGrz+zWL3UXzJfs0blvmPN6hRIn1aOxqlR3EPJ5SIPV99SeeVJ9bss989p1E= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760631420; c=relaxed/simple; bh=4kxrh8lNYomQLHHWdaX5r8SkUlzAABJDEHVlYbahRBs=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Wmf3h0452M4nXnLDRSiIwYaS0Jj9lJA352CmdDMpt7s+hSjGJ/vI1otLqVWrG7M7xrUDqELLnpPMEfvHdP+dx1JXOY82nUg6eYvFfNHCzrP3G0TubyYDzwb/dyPbjnRPXa4epm5Tw0NiBmT3JBoKqSUQL+qvMX5wZoEZXV/x/Dw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=sceyIGmR; 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="sceyIGmR" Received: by smtp.kernel.org (Postfix) with ESMTPS id D6F49C116C6; Thu, 16 Oct 2025 16:16:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1760631419; bh=4kxrh8lNYomQLHHWdaX5r8SkUlzAABJDEHVlYbahRBs=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=sceyIGmR15EAcjd1njXAu3BJRRtdiKg7hCR1VbNsVPn6G2MfqoF4brj52FcaCV5VG OwG16irAPM3aFpSrDfoXk4w78WA2bqp2CEEpaZCcQtIVjZCGsrl8KNsGmzLVMDzjHQ oEkxxi2vynjmiCKys13wEqSBV9ylLCz3KTl276fg4ZenSEHd/8g5gN7U4TyuOLQ3TK YUrWTlTjWC6QhTC9R9vmnNo8n5yHesReoZZLHDLm1bzdZfv5y4Jxf/RLBoKX/HsY1R rHsCn6dNBwfwchEWShTGI9ZGytFSR7ZwNScqfxzIsbxMZYYMr9V4YT7jVmt2F+FCuO A8IBXOKhkPmnQ== 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 CBA2ACCD195; Thu, 16 Oct 2025 16:16:59 +0000 (UTC) From: David Heidelberg via B4 Relay Date: Thu, 16 Oct 2025 18:16:59 +0200 Subject: [PATCH v3 4/8] 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: <20251016-s6e3fc2x01-v3-4-ce0f3566b903@ixit.cz> References: <20251016-s6e3fc2x01-v3-0-ce0f3566b903@ixit.cz> In-Reply-To: <20251016-s6e3fc2x01-v3-0-ce0f3566b903@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=15722; i=david@ixit.cz; h=from:subject:message-id; bh=hHuOninuip/7GLZ6Epila7GjYzxz0dHL4Hl4YTk5a/w=; b=owEBbQKS/ZANAwAIAWACP8TTSSByAcsmYgBo8Rp5MMONnzc/IAyMzo9A6xnOGzUHJ8p+kkzlF XB5kzF+OgWJAjMEAAEIAB0WIQTXegnP7twrvVOnBHRgAj/E00kgcgUCaPEaeQAKCRBgAj/E00kg cq+/D/9ZWJ8Cj15B302shgw5hA4hd5s1BTiqlJPKT1/Bj/iJfPoCfsWzNKseW0swnwD7UzgjYuj y1EEQx924ICu/SOCD9nt13Ezk8KLuyk9k26j2pnJ7G4sAiz/j9RevhXP6a3FHk2W9NcCJXHsE+I vMJu83feoeAIGvYy1VMXp1VOMmv5g4sKqgN8RfDb8AJib3KEKhUOtOW37FiWT8z5R4wl2mL7tiX LyDGJCJf+fQfPH9QyqPc8tX7047r99Du4tuOMQ7EcANmzFdyxVEhWH68Q5QOedGNaG6IGlEKVH7 sNGQRf77xb2TgEghqNSvuip+4parMITHL/A2toOJT1lUvFLefwb2KvBNgfW0pFt/veQVFXaZDB0 wxPV4Dcs+Ki7tszgjS8S25KMmA4hU3J98gfYZTf+kHJrB22yXeaDCGJgAXyhb3n89j7OjxaioZA dJiEQdD32X66tTBi8vnvjVlFD+pVDKrXdWFk/Ssr9n0bD7XoDHxWwMr4PqvXDnAv3438DnoLyYn OHuGosWXuvMca7iRhhZFM9ryLaB7FoRvrQMgeTdyTub3cYnqTyP0U5xCqG6c20MG1LC+2H9QJx1 8tHXLB6Xrjbs4TANGq6capJrINr+4LKsjheIag6/0wCUet4VLHUE+ohWz5oVlzHTByH19d5dB92 F4Xq2vwiUbBR9gg== 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 | 399 +++++++++++++++++++= ++++ 4 files changed, 414 insertions(+) diff --git a/MAINTAINERS b/MAINTAINERS index d11dd6c7a6b27..ee715864e1f97 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -8060,6 +8060,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..36e7cf1a3654a --- /dev/null +++ b/drivers/gpu/drm/panel/panel-samsung-s6e3fc2x01.c @@ -0,0 +1,399 @@ +// 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