From nobody Mon Feb 9 06:49:44 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 6863C333433; Tue, 21 Oct 2025 11:53:07 +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=Z1rroYTVC+dkW5npH2EiaKBPwtBx+qPUuR4F1Ywm5cyB3UAOeu5pR8hBQbz0RPlqLp4qN7u4e65glf763XQvLHkJ4MFV3xKMYAY/CMfB0QblodziPXmSdwkF+Lsz2aIGazZMOfdu6PmtOg0XuqB7rKAzx6Eh2joinX5KN63sc5I= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761047588; c=relaxed/simple; bh=nmPuutRk5b32HClJ1JpF095nMvI4XlkPn7j8/55HKJc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=nbKX/dt3QA3LrMwPJ6DLxLiCDzkMQJ5lSeuus1z64Yxz0thaYSsiqIxRw0fRPvDHSQu7zK3BNVzVMxeg58GpVIb8SKzaI7ijES3nLDFzsxbyQNhypEG8kjPs+yXPoWjEJ5Ej0795VjY26sL18IJV76xiO9h3UmHAF67UTaLGiww= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=K/KzvzyX; 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="K/KzvzyX" Received: by smtp.kernel.org (Postfix) with ESMTPS id C5542C4CEF1; 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=nmPuutRk5b32HClJ1JpF095nMvI4XlkPn7j8/55HKJc=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=K/KzvzyXrFt23cqTkVCepl086eQIuJT1qEZxeB2hNjjDYDPFPYwPa+Lxb/eVyb6na /8KqKP8aptYHnRfOryVuUx9UeruhsOqlVCIuXiswe6psMskIxERZ+5SBRboXHtWPNH l/13a2t2h2CCkVGagsMqwNQ9UCdoXwMvkKPc9UyZPyuiz7Q6c+ctvMh5X6QPJG2QVh skFlUaibpPj56E0QAHjxhUbA/6bv88DTeBr5Xw6fKAY6QcfJrnL2tE4vR0x5qDeI5K fn2hRkwHpCgqfMRcyON6ZyJWxnb7PNjUCyuZEosWG2M/YRQoW+nG+R60EuO3vN44pK oZZMgWIVoYSPA== 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 B365CCCD184; Tue, 21 Oct 2025 11:53:07 +0000 (UTC) From: David Heidelberg via B4 Relay Date: Tue, 21 Oct 2025 13:53:01 +0200 Subject: [PATCH v4 1/7] dt-bindings: panel: Add Samsung S6E3FC2X01 DDIC with 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-1-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=3282; i=david@ixit.cz; h=from:subject:message-id; bh=JdHXDnZheYdpaOz/cxbhwjp10b+1nHR1LCLgjicoVIo=; b=owEBbQKS/ZANAwAIAWACP8TTSSByAcsmYgBo93QhIq2aimDTlf+pIpmwIXbpeLugsjz55OOsg L5y1AyFJoyJAjMEAAEIAB0WIQTXegnP7twrvVOnBHRgAj/E00kgcgUCaPd0IQAKCRBgAj/E00kg cuHuEACfs0x114XMyrWl5lWGBG4hlIY3gIUBhKzrzVmo6uQB3geQhc1D6s+UZUlyh3VJVYXOxUd MAd9UmyXuZ1c9amn7RoT91igzQCDM6es8HBIPdFopQKNxJAA9W5lIGFWWjrqcH/+UW8RP52gdBO 0gV+4qTH3Nc+cxgeqvAqRGA05Fuz/TgwdJwpkv13Dri7MZ90ewcD7gUywwv0LViHbeSxOrTe9op 8IITAi4+RvUcNDk3oUyf/VIgWpzr9k+w0e3/J8NrrNmDFBrIQGV1LEOQ2M3DS4gMDZtr9wJLide IR7yC0PnwBZOQEnPKsLWeJ1r03FHLPxsa2LrQh2dUdFQSYCME3PvgkkdEbdqvwl+36SwHOye6L5 K8cFhQebeWSYdr3bbI4Lt5pKp8jwISmyCd68JqCuQwu262V2n5aqftCJzxhezSsFCU9uHMJSzTh ri7hnMgq0bRwOMiamHDpEk1BUOt75Hg0NA7xlEUW9i4wuFvVHLUZNLGG904kbmwuTyVj6uKIPFo Ssg8yiEQvaH5rLiatIoL2q1mi/Zpkdc+gJUf98woo72/NVzP8Gp1OVZuOnxavPbspI6ur0BQVvo Mbne+RtLLtOGge4ZCLB/ePpVFNUJuDK+WRvqa0O8pjDrIgvfWe7inRtoCyNAyX3/VP0JLISheJc 7u/WeKFLu24fYQg== 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 Basic description for S6E3FC2X01 DDIC with attached panel AMS641RW. Samsung AMS641RW is 6.41 inch, 1080x2340 pixels, 19.5:9 ratio panel panel-simple-dsi cannot be used because it's limited to one power-supply, while we use three. Signed-off-by: David Heidelberg --- .../bindings/display/panel/samsung,s6e3fc2x01.yaml | 81 ++++++++++++++++++= ++++ MAINTAINERS | 5 ++ 2 files changed, 86 insertions(+) diff --git a/Documentation/devicetree/bindings/display/panel/samsung,s6e3fc= 2x01.yaml b/Documentation/devicetree/bindings/display/panel/samsung,s6e3fc2= x01.yaml new file mode 100644 index 0000000000000..d48354fb52ea0 --- /dev/null +++ b/Documentation/devicetree/bindings/display/panel/samsung,s6e3fc2x01.ya= ml @@ -0,0 +1,81 @@ +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/display/panel/samsung,s6e3fc2x01.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Samsung S6E3FC2X01 AMOLED DDIC + +description: The S6E3FC2X01 is display driver IC with connected panel. + +maintainers: + - David Heidelberg + +allOf: + - $ref: panel-common.yaml# + +properties: + compatible: + items: + - enum: + # Samsung 6.41 inch, 1080x2340 pixels, 19.5:9 ratio + - samsung,s6e3fc2x01-ams641rw + - const: samsung,s6e3fc2x01 + + reg: + maxItems: 1 + + reset-gpios: true + + port: true + + vddio-supply: + description: VDD regulator + + vci-supply: + description: VCI regulator + + poc-supply: + description: POC regulator + +required: + - compatible + - reset-gpios + - vddio-supply + - vci-supply + - poc-supply + +unevaluatedProperties: false + +examples: + - | + #include + + dsi { + #address-cells =3D <1>; + #size-cells =3D <0>; + + panel@0 { + compatible =3D "samsung,s6e3fc2x01-ams641rw", "samsung,s6e3fc2= x01"; + reg =3D <0>; + + vddio-supply =3D <&vreg_l14a_1p88>; + vci-supply =3D <&s2dos05_buck1>; + poc-supply =3D <&s2dos05_ldo1>; + + te-gpios =3D <&tlmm 10 GPIO_ACTIVE_HIGH>; + reset-gpios =3D <&tlmm 6 GPIO_ACTIVE_HIGH>; + + pinctrl-0 =3D <&sde_dsi_active &sde_te_active_sleep>; + pinctrl-1 =3D <&sde_dsi_suspend &sde_te_active_sleep>; + pinctrl-names =3D "default", "sleep"; + + port { + panel_in: endpoint { + remote-endpoint =3D <&mdss_dsi0_out>; + }; + }; + }; + }; + +... diff --git a/MAINTAINERS b/MAINTAINERS index be1861bd6f4e3..42be36b42c29b 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -8061,6 +8061,11 @@ S: Maintained F: Documentation/devicetree/bindings/display/panel/samsung,s6d7aa0.yaml F: drivers/gpu/drm/panel/panel-samsung-s6d7aa0.c =20 +DRM DRIVER FOR SAMSUNG S6E3FC2X01 DDIC +M: David Heidelberg +S: Maintained +F: Documentation/devicetree/bindings/display/panel/samsung,s6e3fc2x01.yaml + DRM DRIVER FOR SAMSUNG S6E3HA8 PANELS M: Dzmitry Sankouski S: Maintained --=20 2.51.0 From nobody Mon Feb 9 06:49:44 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