* [PATCH v2 00/12] Make Samsung SOFEF00 DDIC and panel work
@ 2025-11-13 17:57 David Heidelberg via B4 Relay
2025-11-13 17:57 ` [PATCH v2 01/12] dt-bindings: panel: Convert Samsung SOFEF00 DDIC into standalone yaml David Heidelberg via B4 Relay
` (11 more replies)
0 siblings, 12 replies; 18+ messages in thread
From: David Heidelberg via B4 Relay @ 2025-11-13 17:57 UTC (permalink / raw)
To: Neil Armstrong, Jessica Zhang, 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
Cc: dri-devel, devicetree, linux-kernel, linux-arm-msm, phone-devel,
David Heidelberg
This DDIC is essential for panels used in OnePlus 6 and Pixel 3a XL
(SDC variant). With proper support, all downstream patches in
sdm845-mainline and sdm670-mainline can be dropped.
The mainline driver was broken so far, and with my recent introduction
of S6E3FC2X01 driver, I had to "break it even more" due to OnePlus 6
common device-tree changes which defined all the regulators and
corrected properties.
At this moment the first version of the patchset will not include
Pixel 3a XL (SDC) as no testers yet volunteered.
The code, including the Pixel 3a XL enhancement can be found at
https://gitlab.com/dhxx/linux/-/tree/b4/sofef00-rebuild
There are some unknown issues with -next-20251103 - 11, so won't likely
work there, recommend linus 6.18-rc4 and later.
Signed-off-by: David Heidelberg <david@ixit.cz>
---
Changes in v2:
- General fixes to device-tree binding (Krzysztof)
- Add myself as a maintainer
- Updated commits wording
- Link to v1: https://lore.kernel.org/r/20251104-sofef00-rebuild-v1-0-dfcfa17eb176@ixit.cz
---
Casey Connolly (2):
drm/panel: sofef00: Add prepare_prev_first flag to drm_panel
drm/panel: sofef00: Initialise at 50% brightness
David Heidelberg (10):
dt-bindings: panel: Convert Samsung SOFEF00 DDIC into standalone yaml
arch: arm64: qcom: sdm845-enchilada: Specify panel name within the compatible
drm/panel: sofef00: Clean up panel description after s6e3fc2x01 removal
drm/panel: sofef00: Handle all regulators
drm/panel: sofef00: Split sending commands to the enable/disable functions
drm/panel: sofef00: Introduce page macro
drm/panel: sofef00: Introduce compatible which includes the panel name
drm/panel: sofef00: Simplify get_modes
drm/panel: sofef00: Mark the LPM mode always-on
drm/panel: sofef00: Non-continuous mode and video burst are supported
.../bindings/display/panel/panel-simple-dsi.yaml | 25 +----
.../bindings/display/panel/samsung,sofef00.yaml | 79 ++++++++++++++++
MAINTAINERS | 6 ++
.../boot/dts/qcom/sdm845-oneplus-enchilada.dts | 4 +-
drivers/gpu/drm/panel/Kconfig | 7 +-
drivers/gpu/drm/panel/panel-samsung-sofef00.c | 104 +++++++++++++--------
6 files changed, 162 insertions(+), 63 deletions(-)
---
base-commit: 6d7e7251d03f98f26f2ee0dfd21bb0a0480a2178
change-id: 20251104-sofef00-rebuild-04cfc6e68e71
Best regards,
--
David Heidelberg <david@ixit.cz>
^ permalink raw reply [flat|nested] 18+ messages in thread
* [PATCH v2 01/12] dt-bindings: panel: Convert Samsung SOFEF00 DDIC into standalone yaml
2025-11-13 17:57 [PATCH v2 00/12] Make Samsung SOFEF00 DDIC and panel work David Heidelberg via B4 Relay
@ 2025-11-13 17:57 ` David Heidelberg via B4 Relay
2025-11-14 8:13 ` Krzysztof Kozlowski
2025-11-16 13:55 ` Casey Connolly
2025-11-13 17:57 ` [PATCH v2 02/12] arch: arm64: qcom: sdm845-enchilada: Specify panel name within the compatible David Heidelberg via B4 Relay
` (10 subsequent siblings)
11 siblings, 2 replies; 18+ messages in thread
From: David Heidelberg via B4 Relay @ 2025-11-13 17:57 UTC (permalink / raw)
To: Neil Armstrong, Jessica Zhang, 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
Cc: dri-devel, devicetree, linux-kernel, linux-arm-msm, phone-devel,
David Heidelberg
From: David Heidelberg <david@ixit.cz>
Reason for moving from simple panel is this DDIC has three supplies,
while panel-simple-dsi is limited to one.
Previous compatible only described the DDIC, but didn't include panel
connected to it. Let's fix it, and offer bindings authors two
compatibles to distinguish the connected panel.
Basic description for SOFEF00 DDIC with attached panels
- Samsung AMS601NT22 6.01 inch, 1080x2160 pixels, 18:9 ratio
- Samsung AMS628NW01 6.28 inch, 1080x2280 pixels, 19:9 ratio
There is only one user which uses samsung,sofef00 and it's updated to
comply within this patch series.
Signed-off-by: David Heidelberg <david@ixit.cz>
---
.../bindings/display/panel/panel-simple-dsi.yaml | 25 ++-----
.../bindings/display/panel/samsung,sofef00.yaml | 79 ++++++++++++++++++++++
MAINTAINERS | 6 ++
3 files changed, 89 insertions(+), 21 deletions(-)
diff --git a/Documentation/devicetree/bindings/display/panel/panel-simple-dsi.yaml b/Documentation/devicetree/bindings/display/panel/panel-simple-dsi.yaml
index ac2db8cf5eb76..464d7c8a7665e 100644
--- a/Documentation/devicetree/bindings/display/panel/panel-simple-dsi.yaml
+++ b/Documentation/devicetree/bindings/display/panel/panel-simple-dsi.yaml
@@ -19,6 +19,9 @@ description: |
If the panel is more advanced a dedicated binding file is required.
+allOf:
+ - $ref: panel-common.yaml#
+
properties:
compatible:
@@ -56,8 +59,6 @@ properties:
- panasonic,vvx10f034n00
# Samsung s6e3fa7 1080x2220 based AMS559NK06 AMOLED panel
- samsung,s6e3fa7-ams559nk06
- # Samsung sofef00 1080x2280 AMOLED panel
- - samsung,sofef00
# Shangai Top Display Optoelectronics 7" TL070WSH30 1024x600 TFT LCD panel
- tdo,tl070wsh30
@@ -70,30 +71,12 @@ properties:
reset-gpios: true
port: true
power-supply: true
- vddio-supply: true
-
-allOf:
- - $ref: panel-common.yaml#
- - if:
- properties:
- compatible:
- enum:
- - samsung,sofef00
- then:
- properties:
- power-supply: false
- required:
- - vddio-supply
- else:
- properties:
- vddio-supply: false
- required:
- - power-supply
additionalProperties: false
required:
- compatible
+ - power-supply
- reg
examples:
diff --git a/Documentation/devicetree/bindings/display/panel/samsung,sofef00.yaml b/Documentation/devicetree/bindings/display/panel/samsung,sofef00.yaml
new file mode 100644
index 0000000000000..eeee3cac72e31
--- /dev/null
+++ b/Documentation/devicetree/bindings/display/panel/samsung,sofef00.yaml
@@ -0,0 +1,79 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/display/panel/samsung,sofef00.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Samsung SOFEF00 AMOLED DDIC
+
+description: The SOFEF00 is display driver IC with connected panel.
+
+maintainers:
+ - David Heidelberg <david@ixit.cz>
+
+allOf:
+ - $ref: panel-common.yaml#
+
+properties:
+ compatible:
+ items:
+ - enum:
+ # Samsung 6.01 inch, 1080x2160 pixels, 18:9 ratio
+ - samsung,sofef00-ams601nt22
+ # Samsung 6.28 inch, 1080x2280 pixels, 19:9 ratio
+ - samsung,sofef00-ams628nw01
+ - const: samsung,sofef00
+
+ reg:
+ maxItems: 1
+
+ poc-supply:
+ description: POC regulator
+
+ vci-supply:
+ description: VCI regulator
+
+ vddio-supply:
+ description: VDD regulator
+
+required:
+ - compatible
+ - reset-gpios
+ - poc-supply
+ - vci-supply
+ - vddio-supply
+
+unevaluatedProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/gpio/gpio.h>
+
+ dsi {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ panel@0 {
+ compatible = "samsung,sofef00-ams628nw01", "samsung,sofef00";
+ reg = <0>;
+
+ vddio-supply = <&vreg_l14a_1p88>;
+ vci-supply = <&s2dos05_buck1>;
+ poc-supply = <&s2dos05_ldo1>;
+
+ te-gpios = <&tlmm 10 GPIO_ACTIVE_HIGH>;
+ reset-gpios = <&tlmm 6 GPIO_ACTIVE_HIGH>;
+
+ pinctrl-0 = <&panel_active>;
+ pinctrl-1 = <&panel_suspend>;
+ pinctrl-names = "default", "sleep";
+
+ port {
+ panel_in: endpoint {
+ remote-endpoint = <&mdss_dsi0_out>;
+ };
+ };
+ };
+ };
+
+...
diff --git a/MAINTAINERS b/MAINTAINERS
index 7e015dcbac732..a4b16812d5a0c 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -8117,6 +8117,12 @@ S: Maintained
F: Documentation/devicetree/bindings/display/panel/samsung,s6e3ha8.yaml
F: drivers/gpu/drm/panel/panel-samsung-s6e3ha8.c
+DRM DRIVER FOR SAMSUNG SOFEF00 DDIC
+M: David Heidelberg <david@ixit.cz>
+S: Maintained
+F: Documentation/devicetree/bindings/display/panel/samsung,sofef00.yaml
+F: drivers/gpu/drm/panel/panel-samsung-sofef00.c
+
DRM DRIVER FOR SHARP MEMORY LCD
M: Alex Lanzano <lanzano.alex@gmail.com>
S: Maintained
--
2.51.0
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH v2 02/12] arch: arm64: qcom: sdm845-enchilada: Specify panel name within the compatible
2025-11-13 17:57 [PATCH v2 00/12] Make Samsung SOFEF00 DDIC and panel work David Heidelberg via B4 Relay
2025-11-13 17:57 ` [PATCH v2 01/12] dt-bindings: panel: Convert Samsung SOFEF00 DDIC into standalone yaml David Heidelberg via B4 Relay
@ 2025-11-13 17:57 ` David Heidelberg via B4 Relay
2025-11-13 20:28 ` Bjorn Andersson
2025-11-13 17:57 ` [PATCH v2 03/12] drm/panel: sofef00: Clean up panel description after s6e3fc2x01 removal David Heidelberg via B4 Relay
` (9 subsequent siblings)
11 siblings, 1 reply; 18+ messages in thread
From: David Heidelberg via B4 Relay @ 2025-11-13 17:57 UTC (permalink / raw)
To: Neil Armstrong, Jessica Zhang, 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
Cc: dri-devel, devicetree, linux-kernel, linux-arm-msm, phone-devel,
David Heidelberg
From: David Heidelberg <david@ixit.cz>
sofef00 is name of the DDIC, it doesn't contain name of the panel used.
The DDIC is also paired with other panels, so make clear which panel is
used.
New device-tree will work with old driver as expected, due to secondary
compatible.
cosmetic: sort the node.
Signed-off-by: David Heidelberg <david@ixit.cz>
---
arch/arm64/boot/dts/qcom/sdm845-oneplus-enchilada.dts | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/arch/arm64/boot/dts/qcom/sdm845-oneplus-enchilada.dts b/arch/arm64/boot/dts/qcom/sdm845-oneplus-enchilada.dts
index a259eb9d45ae0..8aead6dc25e00 100644
--- a/arch/arm64/boot/dts/qcom/sdm845-oneplus-enchilada.dts
+++ b/arch/arm64/boot/dts/qcom/sdm845-oneplus-enchilada.dts
@@ -31,9 +31,9 @@ battery: battery {
};
&display_panel {
- status = "okay";
+ compatible = "samsung,sofef00-ams628nw01", "samsung,sofef00";
- compatible = "samsung,sofef00";
+ status = "okay";
};
&bq27441_fg {
--
2.51.0
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH v2 03/12] drm/panel: sofef00: Clean up panel description after s6e3fc2x01 removal
2025-11-13 17:57 [PATCH v2 00/12] Make Samsung SOFEF00 DDIC and panel work David Heidelberg via B4 Relay
2025-11-13 17:57 ` [PATCH v2 01/12] dt-bindings: panel: Convert Samsung SOFEF00 DDIC into standalone yaml David Heidelberg via B4 Relay
2025-11-13 17:57 ` [PATCH v2 02/12] arch: arm64: qcom: sdm845-enchilada: Specify panel name within the compatible David Heidelberg via B4 Relay
@ 2025-11-13 17:57 ` David Heidelberg via B4 Relay
2025-11-13 17:57 ` [PATCH v2 04/12] drm/panel: sofef00: Handle all regulators David Heidelberg via B4 Relay
` (8 subsequent siblings)
11 siblings, 0 replies; 18+ messages in thread
From: David Heidelberg via B4 Relay @ 2025-11-13 17:57 UTC (permalink / raw)
To: Neil Armstrong, Jessica Zhang, 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
Cc: dri-devel, devicetree, linux-kernel, linux-arm-msm, phone-devel,
David Heidelberg
From: David Heidelberg <david@ixit.cz>
Remove leftover from s6e3fc2x01 support drop and clarify supported panel.
The Samsung SOFEF00 DDIC is used in multiple phones, so describe it
properly and generalize.
Fixes: e1eb7293ab41 ("drm/panel: samsung-sofef00: Drop s6e3fc2x01 support")
Signed-off-by: David Heidelberg <david@ixit.cz>
---
drivers/gpu/drm/panel/Kconfig | 7 ++++---
drivers/gpu/drm/panel/panel-samsung-sofef00.c | 4 ++--
2 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/drivers/gpu/drm/panel/Kconfig b/drivers/gpu/drm/panel/Kconfig
index ad54537d914a4..4a0b4da0fea46 100644
--- a/drivers/gpu/drm/panel/Kconfig
+++ b/drivers/gpu/drm/panel/Kconfig
@@ -881,16 +881,17 @@ config DRM_PANEL_SAMSUNG_S6E8AA5X01_AMS561RA01
DSI protocol with 4 lanes.
config DRM_PANEL_SAMSUNG_SOFEF00
- tristate "Samsung sofef00/s6e3fc2x01 OnePlus 6/6T DSI cmd mode panels"
+ tristate "Samsung SOFEF00 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 AMOLED
- command mode panels found in the OnePlus 6/6T smartphones.
+ panel SOFEF00 DDIC and connected panel.
+ Currently supported panels:
- The panels are 2280x1080@60Hz and 2340x1080@60Hz respectively
+ Samsung AMS628NW01 (found in OnePlus 6, 1080x2280@60Hz)
config DRM_PANEL_SEIKO_43WVF1G
tristate "Seiko 43WVF1G panel"
diff --git a/drivers/gpu/drm/panel/panel-samsung-sofef00.c b/drivers/gpu/drm/panel/panel-samsung-sofef00.c
index 064258217d50a..c88574ea66e1c 100644
--- a/drivers/gpu/drm/panel/panel-samsung-sofef00.c
+++ b/drivers/gpu/drm/panel/panel-samsung-sofef00.c
@@ -252,7 +252,7 @@ static struct mipi_dsi_driver sofef00_panel_driver = {
.probe = sofef00_panel_probe,
.remove = sofef00_panel_remove,
.driver = {
- .name = "panel-oneplus6",
+ .name = "panel-samsung-sofef00",
.of_match_table = sofef00_panel_of_match,
},
};
@@ -260,5 +260,5 @@ static struct mipi_dsi_driver sofef00_panel_driver = {
module_mipi_dsi_driver(sofef00_panel_driver);
MODULE_AUTHOR("Casey Connolly <casey.connolly@linaro.org>");
-MODULE_DESCRIPTION("DRM driver for Samsung AMOLED DSI panels found in OnePlus 6/6T phones");
+MODULE_DESCRIPTION("DRM driver for Samsung SOFEF00 DDIC");
MODULE_LICENSE("GPL v2");
--
2.51.0
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH v2 04/12] drm/panel: sofef00: Handle all regulators
2025-11-13 17:57 [PATCH v2 00/12] Make Samsung SOFEF00 DDIC and panel work David Heidelberg via B4 Relay
` (2 preceding siblings ...)
2025-11-13 17:57 ` [PATCH v2 03/12] drm/panel: sofef00: Clean up panel description after s6e3fc2x01 removal David Heidelberg via B4 Relay
@ 2025-11-13 17:57 ` David Heidelberg via B4 Relay
2025-11-13 17:57 ` [PATCH v2 05/12] drm/panel: sofef00: Split sending commands to the enable/disable functions David Heidelberg via B4 Relay
` (7 subsequent siblings)
11 siblings, 0 replies; 18+ messages in thread
From: David Heidelberg via B4 Relay @ 2025-11-13 17:57 UTC (permalink / raw)
To: Neil Armstrong, Jessica Zhang, 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
Cc: dri-devel, devicetree, linux-kernel, linux-arm-msm, phone-devel,
David Heidelberg
From: David Heidelberg <david@ixit.cz>
Recently we documented, there is more than vddio regulator, adapt the
driver to work with VCI and POC regulator.
Signed-off-by: David Heidelberg <david@ixit.cz>
---
drivers/gpu/drm/panel/panel-samsung-sofef00.c | 28 ++++++++++++++++-----------
1 file changed, 17 insertions(+), 11 deletions(-)
diff --git a/drivers/gpu/drm/panel/panel-samsung-sofef00.c b/drivers/gpu/drm/panel/panel-samsung-sofef00.c
index c88574ea66e1c..3097040e6bfa0 100644
--- a/drivers/gpu/drm/panel/panel-samsung-sofef00.c
+++ b/drivers/gpu/drm/panel/panel-samsung-sofef00.c
@@ -20,10 +20,16 @@
struct sofef00_panel {
struct drm_panel panel;
struct mipi_dsi_device *dsi;
- struct regulator *supply;
+ struct regulator_bulk_data *supplies;
struct gpio_desc *reset_gpio;
};
+static const struct regulator_bulk_data sofef00_supplies[] = {
+ { .supply = "vddio" },
+ { .supply = "vci" },
+ { .supply = "poc" },
+};
+
static inline
struct sofef00_panel *to_sofef00_panel(struct drm_panel *panel)
{
@@ -86,20 +92,18 @@ static int sofef00_panel_off(struct sofef00_panel *ctx)
static int sofef00_panel_prepare(struct drm_panel *panel)
{
struct sofef00_panel *ctx = to_sofef00_panel(panel);
- struct device *dev = &ctx->dsi->dev;
int ret;
- ret = regulator_enable(ctx->supply);
- if (ret < 0) {
- dev_err(dev, "Failed to enable regulator: %d\n", ret);
+ ret = regulator_bulk_enable(ARRAY_SIZE(sofef00_supplies), ctx->supplies);
+ if (ret < 0)
return ret;
- }
sofef00_panel_reset(ctx);
ret = sofef00_panel_on(ctx);
if (ret < 0) {
gpiod_set_value_cansleep(ctx->reset_gpio, 1);
+ regulator_bulk_disable(ARRAY_SIZE(sofef00_supplies), ctx->supplies);
return ret;
}
@@ -111,7 +115,7 @@ static int sofef00_panel_unprepare(struct drm_panel *panel)
struct sofef00_panel *ctx = to_sofef00_panel(panel);
sofef00_panel_off(ctx);
- regulator_disable(ctx->supply);
+ regulator_bulk_disable(ARRAY_SIZE(sofef00_supplies), ctx->supplies);
return 0;
}
@@ -197,10 +201,12 @@ static int sofef00_panel_probe(struct mipi_dsi_device *dsi)
if (IS_ERR(ctx))
return PTR_ERR(ctx);
- ctx->supply = devm_regulator_get(dev, "vddio");
- if (IS_ERR(ctx->supply))
- return dev_err_probe(dev, PTR_ERR(ctx->supply),
- "Failed to get vddio regulator\n");
+ ret = devm_regulator_bulk_get_const(dev,
+ ARRAY_SIZE(sofef00_supplies),
+ sofef00_supplies,
+ &ctx->supplies);
+ if (ret)
+ return dev_err_probe(dev, ret, "Failed to get regulators\n");
ctx->reset_gpio = devm_gpiod_get(dev, "reset", GPIOD_OUT_HIGH);
if (IS_ERR(ctx->reset_gpio))
--
2.51.0
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH v2 05/12] drm/panel: sofef00: Split sending commands to the enable/disable functions
2025-11-13 17:57 [PATCH v2 00/12] Make Samsung SOFEF00 DDIC and panel work David Heidelberg via B4 Relay
` (3 preceding siblings ...)
2025-11-13 17:57 ` [PATCH v2 04/12] drm/panel: sofef00: Handle all regulators David Heidelberg via B4 Relay
@ 2025-11-13 17:57 ` David Heidelberg via B4 Relay
2025-11-13 17:57 ` [PATCH v2 06/12] drm/panel: sofef00: Introduce page macro David Heidelberg via B4 Relay
` (6 subsequent siblings)
11 siblings, 0 replies; 18+ messages in thread
From: David Heidelberg via B4 Relay @ 2025-11-13 17:57 UTC (permalink / raw)
To: Neil Armstrong, Jessica Zhang, 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
Cc: dri-devel, devicetree, linux-kernel, linux-arm-msm, phone-devel,
David Heidelberg
From: David Heidelberg <david@ixit.cz>
It's not possible to send DSI panel commands in the .unprepare. Move it
to .disable and do similar for prepare, where we move the display on to
the .enable.
Signed-off-by: David Heidelberg <david@ixit.cz>
---
drivers/gpu/drm/panel/panel-samsung-sofef00.c | 20 +++++++++++++++++++-
1 file changed, 19 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/panel/panel-samsung-sofef00.c b/drivers/gpu/drm/panel/panel-samsung-sofef00.c
index 3097040e6bfa0..a3651f0060bde 100644
--- a/drivers/gpu/drm/panel/panel-samsung-sofef00.c
+++ b/drivers/gpu/drm/panel/panel-samsung-sofef00.c
@@ -68,6 +68,14 @@ static int sofef00_panel_on(struct sofef00_panel *ctx)
mipi_dsi_dcs_write_seq_multi(&dsi_ctx, MIPI_DCS_WRITE_CONTROL_DISPLAY, 0x20);
mipi_dsi_dcs_write_seq_multi(&dsi_ctx, MIPI_DCS_WRITE_POWER_SAVE, 0x00);
+ return dsi_ctx.accum_err;
+}
+
+static int sofef00_enable(struct drm_panel *panel)
+{
+ struct sofef00_panel *ctx = to_sofef00_panel(panel);
+ struct mipi_dsi_multi_context dsi_ctx = { .dsi = ctx->dsi };
+
mipi_dsi_dcs_set_display_on_multi(&dsi_ctx);
return dsi_ctx.accum_err;
@@ -110,11 +118,19 @@ static int sofef00_panel_prepare(struct drm_panel *panel)
return 0;
}
-static int sofef00_panel_unprepare(struct drm_panel *panel)
+static int sofef00_disable(struct drm_panel *panel)
{
struct sofef00_panel *ctx = to_sofef00_panel(panel);
sofef00_panel_off(ctx);
+
+ return 0;
+}
+
+static int sofef00_panel_unprepare(struct drm_panel *panel)
+{
+ struct sofef00_panel *ctx = to_sofef00_panel(panel);
+
regulator_bulk_disable(ARRAY_SIZE(sofef00_supplies), ctx->supplies);
return 0;
@@ -154,6 +170,8 @@ static int sofef00_panel_get_modes(struct drm_panel *panel, struct drm_connector
static const struct drm_panel_funcs sofef00_panel_panel_funcs = {
.prepare = sofef00_panel_prepare,
+ .enable = sofef00_enable,
+ .disable = sofef00_disable,
.unprepare = sofef00_panel_unprepare,
.get_modes = sofef00_panel_get_modes,
};
--
2.51.0
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH v2 06/12] drm/panel: sofef00: Introduce page macro
2025-11-13 17:57 [PATCH v2 00/12] Make Samsung SOFEF00 DDIC and panel work David Heidelberg via B4 Relay
` (4 preceding siblings ...)
2025-11-13 17:57 ` [PATCH v2 05/12] drm/panel: sofef00: Split sending commands to the enable/disable functions David Heidelberg via B4 Relay
@ 2025-11-13 17:57 ` David Heidelberg via B4 Relay
2025-11-13 17:57 ` [PATCH v2 07/12] drm/panel: sofef00: Add prepare_prev_first flag to drm_panel David Heidelberg via B4 Relay
` (5 subsequent siblings)
11 siblings, 0 replies; 18+ messages in thread
From: David Heidelberg via B4 Relay @ 2025-11-13 17:57 UTC (permalink / raw)
To: Neil Armstrong, Jessica Zhang, 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
Cc: dri-devel, devicetree, linux-kernel, linux-arm-msm, phone-devel,
David Heidelberg
From: David Heidelberg <david@ixit.cz>
Introducing the macro make the code a bit clearer.
Looking at other Samsung drivers, I assume it's lvl2, thou due to not
available documentation it's only educated guess.
Signed-off-by: David Heidelberg <david@ixit.cz>
---
drivers/gpu/drm/panel/panel-samsung-sofef00.c | 15 ++++++++++-----
1 file changed, 10 insertions(+), 5 deletions(-)
diff --git a/drivers/gpu/drm/panel/panel-samsung-sofef00.c b/drivers/gpu/drm/panel/panel-samsung-sofef00.c
index a3651f0060bde..97122ec8872a1 100644
--- a/drivers/gpu/drm/panel/panel-samsung-sofef00.c
+++ b/drivers/gpu/drm/panel/panel-samsung-sofef00.c
@@ -36,6 +36,11 @@ struct sofef00_panel *to_sofef00_panel(struct drm_panel *panel)
return container_of(panel, struct sofef00_panel, panel);
}
+#define sofef00_test_key_on_lvl2(ctx) \
+ mipi_dsi_dcs_write_seq_multi(ctx, 0xf0, 0x5a, 0x5a)
+#define sofef00_test_key_off_lvl2(ctx) \
+ mipi_dsi_dcs_write_seq_multi(ctx, 0xf0, 0xa5, 0xa5)
+
static void sofef00_panel_reset(struct sofef00_panel *ctx)
{
gpiod_set_value_cansleep(ctx->reset_gpio, 0);
@@ -56,15 +61,15 @@ static int sofef00_panel_on(struct sofef00_panel *ctx)
mipi_dsi_dcs_exit_sleep_mode_multi(&dsi_ctx);
mipi_dsi_usleep_range(&dsi_ctx, 10000, 11000);
- mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0xf0, 0x5a, 0x5a);
-
+ sofef00_test_key_on_lvl2(&dsi_ctx);
mipi_dsi_dcs_set_tear_on_multi(&dsi_ctx, MIPI_DSI_DCS_TEAR_MODE_VBLANK);
+ sofef00_test_key_off_lvl2(&dsi_ctx);
- mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0xf0, 0xa5, 0xa5);
- mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0xf0, 0x5a, 0x5a);
+ sofef00_test_key_on_lvl2(&dsi_ctx);
mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0xb0, 0x07);
mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0xb6, 0x12);
- mipi_dsi_dcs_write_seq_multi(&dsi_ctx, 0xf0, 0xa5, 0xa5);
+ sofef00_test_key_off_lvl2(&dsi_ctx);
+
mipi_dsi_dcs_write_seq_multi(&dsi_ctx, MIPI_DCS_WRITE_CONTROL_DISPLAY, 0x20);
mipi_dsi_dcs_write_seq_multi(&dsi_ctx, MIPI_DCS_WRITE_POWER_SAVE, 0x00);
--
2.51.0
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH v2 07/12] drm/panel: sofef00: Add prepare_prev_first flag to drm_panel
2025-11-13 17:57 [PATCH v2 00/12] Make Samsung SOFEF00 DDIC and panel work David Heidelberg via B4 Relay
` (5 preceding siblings ...)
2025-11-13 17:57 ` [PATCH v2 06/12] drm/panel: sofef00: Introduce page macro David Heidelberg via B4 Relay
@ 2025-11-13 17:57 ` David Heidelberg via B4 Relay
2025-11-13 17:57 ` [PATCH v2 08/12] drm/panel: sofef00: Initialise at 50% brightness David Heidelberg via B4 Relay
` (4 subsequent siblings)
11 siblings, 0 replies; 18+ messages in thread
From: David Heidelberg via B4 Relay @ 2025-11-13 17:57 UTC (permalink / raw)
To: Neil Armstrong, Jessica Zhang, 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
Cc: dri-devel, devicetree, linux-kernel, linux-arm-msm, phone-devel,
David Heidelberg
From: Casey Connolly <casey.connolly@linaro.org>
This corrects the host initialisation sequence so that we can send
DSI/DCS commands in prepare().
Signed-off-by: Casey Connolly <casey.connolly@linaro.org>
Signed-off-by: David Heidelberg <david@ixit.cz>
---
drivers/gpu/drm/panel/panel-samsung-sofef00.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/gpu/drm/panel/panel-samsung-sofef00.c b/drivers/gpu/drm/panel/panel-samsung-sofef00.c
index 97122ec8872a1..0d3ae0689a19b 100644
--- a/drivers/gpu/drm/panel/panel-samsung-sofef00.c
+++ b/drivers/gpu/drm/panel/panel-samsung-sofef00.c
@@ -242,6 +242,8 @@ static int sofef00_panel_probe(struct mipi_dsi_device *dsi)
dsi->lanes = 4;
dsi->format = MIPI_DSI_FMT_RGB888;
+ ctx->panel.prepare_prev_first = true;
+
ctx->panel.backlight = sofef00_create_backlight(dsi);
if (IS_ERR(ctx->panel.backlight))
return dev_err_probe(dev, PTR_ERR(ctx->panel.backlight),
--
2.51.0
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH v2 08/12] drm/panel: sofef00: Initialise at 50% brightness
2025-11-13 17:57 [PATCH v2 00/12] Make Samsung SOFEF00 DDIC and panel work David Heidelberg via B4 Relay
` (6 preceding siblings ...)
2025-11-13 17:57 ` [PATCH v2 07/12] drm/panel: sofef00: Add prepare_prev_first flag to drm_panel David Heidelberg via B4 Relay
@ 2025-11-13 17:57 ` David Heidelberg via B4 Relay
2025-11-13 17:57 ` [PATCH v2 09/12] drm/panel: sofef00: Introduce compatible which includes the panel name David Heidelberg via B4 Relay
` (3 subsequent siblings)
11 siblings, 0 replies; 18+ messages in thread
From: David Heidelberg via B4 Relay @ 2025-11-13 17:57 UTC (permalink / raw)
To: Neil Armstrong, Jessica Zhang, 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
Cc: dri-devel, devicetree, linux-kernel, linux-arm-msm, phone-devel,
David Heidelberg
From: Casey Connolly <casey.connolly@linaro.org>
Initialising at max brightness is not necessary.
Half brightness is much more comfortable.
Signed-off-by: Casey Connolly <casey.connolly@linaro.org>
Signed-off-by: David Heidelberg <david@ixit.cz>
---
drivers/gpu/drm/panel/panel-samsung-sofef00.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/panel/panel-samsung-sofef00.c b/drivers/gpu/drm/panel/panel-samsung-sofef00.c
index 0d3ae0689a19b..d1e5340d7e337 100644
--- a/drivers/gpu/drm/panel/panel-samsung-sofef00.c
+++ b/drivers/gpu/drm/panel/panel-samsung-sofef00.c
@@ -204,7 +204,7 @@ sofef00_create_backlight(struct mipi_dsi_device *dsi)
struct device *dev = &dsi->dev;
const struct backlight_properties props = {
.type = BACKLIGHT_PLATFORM,
- .brightness = 1023,
+ .brightness = 512,
.max_brightness = 1023,
};
--
2.51.0
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH v2 09/12] drm/panel: sofef00: Introduce compatible which includes the panel name
2025-11-13 17:57 [PATCH v2 00/12] Make Samsung SOFEF00 DDIC and panel work David Heidelberg via B4 Relay
` (7 preceding siblings ...)
2025-11-13 17:57 ` [PATCH v2 08/12] drm/panel: sofef00: Initialise at 50% brightness David Heidelberg via B4 Relay
@ 2025-11-13 17:57 ` David Heidelberg via B4 Relay
2025-11-13 17:57 ` [PATCH v2 10/12] drm/panel: sofef00: Simplify get_modes David Heidelberg via B4 Relay
` (2 subsequent siblings)
11 siblings, 0 replies; 18+ messages in thread
From: David Heidelberg via B4 Relay @ 2025-11-13 17:57 UTC (permalink / raw)
To: Neil Armstrong, Jessica Zhang, 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
Cc: dri-devel, devicetree, linux-kernel, linux-arm-msm, phone-devel,
David Heidelberg
From: David Heidelberg <david@ixit.cz>
Compatible should correspond to the panel used and the driver currently
supports only AMS628NW01 panel. Adapt the internal driver structures to
reflect the name.
Original, not very descriptive, compatible is kept to ensure compatibility
with older device-trees.
Signed-off-by: David Heidelberg <david@ixit.cz>
---
drivers/gpu/drm/panel/panel-samsung-sofef00.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/panel/panel-samsung-sofef00.c b/drivers/gpu/drm/panel/panel-samsung-sofef00.c
index d1e5340d7e337..7947adf908772 100644
--- a/drivers/gpu/drm/panel/panel-samsung-sofef00.c
+++ b/drivers/gpu/drm/panel/panel-samsung-sofef00.c
@@ -141,7 +141,7 @@ static int sofef00_panel_unprepare(struct drm_panel *panel)
return 0;
}
-static const struct drm_display_mode enchilada_panel_mode = {
+static const struct drm_display_mode ams628nw01_panel_mode = {
.clock = (1080 + 112 + 16 + 36) * (2280 + 36 + 8 + 12) * 60 / 1000,
.hdisplay = 1080,
.hsync_start = 1080 + 112,
@@ -159,7 +159,7 @@ static int sofef00_panel_get_modes(struct drm_panel *panel, struct drm_connector
{
struct drm_display_mode *mode;
- mode = drm_mode_duplicate(connector->dev, &enchilada_panel_mode);
+ mode = drm_mode_duplicate(connector->dev, &ams628nw01_panel_mode);
if (!mode)
return -ENOMEM;
@@ -274,7 +274,9 @@ static void sofef00_panel_remove(struct mipi_dsi_device *dsi)
}
static const struct of_device_id sofef00_panel_of_match[] = {
+ /* legacy compatible */
{ .compatible = "samsung,sofef00" },
+ { .compatible = "samsung,sofef00-ams628nw01" },
{ /* sentinel */ }
};
MODULE_DEVICE_TABLE(of, sofef00_panel_of_match);
--
2.51.0
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH v2 10/12] drm/panel: sofef00: Simplify get_modes
2025-11-13 17:57 [PATCH v2 00/12] Make Samsung SOFEF00 DDIC and panel work David Heidelberg via B4 Relay
` (8 preceding siblings ...)
2025-11-13 17:57 ` [PATCH v2 09/12] drm/panel: sofef00: Introduce compatible which includes the panel name David Heidelberg via B4 Relay
@ 2025-11-13 17:57 ` David Heidelberg via B4 Relay
2025-11-13 17:57 ` [PATCH v2 11/12] drm/panel: sofef00: Mark the LPM mode always-on David Heidelberg via B4 Relay
2025-11-13 17:57 ` [PATCH v2 12/12] drm/panel: sofef00: Non-continuous mode and video burst are supported David Heidelberg via B4 Relay
11 siblings, 0 replies; 18+ messages in thread
From: David Heidelberg via B4 Relay @ 2025-11-13 17:57 UTC (permalink / raw)
To: Neil Armstrong, Jessica Zhang, 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
Cc: dri-devel, devicetree, linux-kernel, linux-arm-msm, phone-devel,
David Heidelberg
From: David Heidelberg <david@ixit.cz>
Levearage drm_connector_helper_get_modes_fixed helper function.
Signed-off-by: David Heidelberg <david@ixit.cz>
---
drivers/gpu/drm/panel/panel-samsung-sofef00.c | 21 +++++++--------------
1 file changed, 7 insertions(+), 14 deletions(-)
diff --git a/drivers/gpu/drm/panel/panel-samsung-sofef00.c b/drivers/gpu/drm/panel/panel-samsung-sofef00.c
index 7947adf908772..e69a28628b656 100644
--- a/drivers/gpu/drm/panel/panel-samsung-sofef00.c
+++ b/drivers/gpu/drm/panel/panel-samsung-sofef00.c
@@ -16,6 +16,7 @@
#include <drm/drm_mipi_dsi.h>
#include <drm/drm_modes.h>
#include <drm/drm_panel.h>
+#include <drm/drm_probe_helper.h>
struct sofef00_panel {
struct drm_panel panel;
@@ -143,34 +144,26 @@ static int sofef00_panel_unprepare(struct drm_panel *panel)
static const struct drm_display_mode ams628nw01_panel_mode = {
.clock = (1080 + 112 + 16 + 36) * (2280 + 36 + 8 + 12) * 60 / 1000,
+
.hdisplay = 1080,
.hsync_start = 1080 + 112,
.hsync_end = 1080 + 112 + 16,
.htotal = 1080 + 112 + 16 + 36,
+
.vdisplay = 2280,
.vsync_start = 2280 + 36,
.vsync_end = 2280 + 36 + 8,
.vtotal = 2280 + 36 + 8 + 12,
+
.width_mm = 68,
.height_mm = 145,
+
+ .type = DRM_MODE_TYPE_DRIVER | DRM_MODE_TYPE_PREFERRED,
};
static int sofef00_panel_get_modes(struct drm_panel *panel, struct drm_connector *connector)
{
- struct drm_display_mode *mode;
-
- mode = drm_mode_duplicate(connector->dev, &ams628nw01_panel_mode);
- if (!mode)
- return -ENOMEM;
-
- drm_mode_set_name(mode);
-
- mode->type = DRM_MODE_TYPE_DRIVER | DRM_MODE_TYPE_PREFERRED;
- connector->display_info.width_mm = mode->width_mm;
- connector->display_info.height_mm = mode->height_mm;
- drm_mode_probed_add(connector, mode);
-
- return 1;
+ return drm_connector_helper_get_modes_fixed(connector, &ams628nw01_panel_mode);
}
static const struct drm_panel_funcs sofef00_panel_panel_funcs = {
--
2.51.0
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH v2 11/12] drm/panel: sofef00: Mark the LPM mode always-on
2025-11-13 17:57 [PATCH v2 00/12] Make Samsung SOFEF00 DDIC and panel work David Heidelberg via B4 Relay
` (9 preceding siblings ...)
2025-11-13 17:57 ` [PATCH v2 10/12] drm/panel: sofef00: Simplify get_modes David Heidelberg via B4 Relay
@ 2025-11-13 17:57 ` David Heidelberg via B4 Relay
2025-11-13 17:57 ` [PATCH v2 12/12] drm/panel: sofef00: Non-continuous mode and video burst are supported David Heidelberg via B4 Relay
11 siblings, 0 replies; 18+ messages in thread
From: David Heidelberg via B4 Relay @ 2025-11-13 17:57 UTC (permalink / raw)
To: Neil Armstrong, Jessica Zhang, 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
Cc: dri-devel, devicetree, linux-kernel, linux-arm-msm, phone-devel,
David Heidelberg
From: David Heidelberg <david@ixit.cz>
The panel operated in low-power mode, with exception of changing the
brightness levels.
Signed-off-by: David Heidelberg <david@ixit.cz>
---
drivers/gpu/drm/panel/panel-samsung-sofef00.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/panel/panel-samsung-sofef00.c b/drivers/gpu/drm/panel/panel-samsung-sofef00.c
index e69a28628b656..8286cad385738 100644
--- a/drivers/gpu/drm/panel/panel-samsung-sofef00.c
+++ b/drivers/gpu/drm/panel/panel-samsung-sofef00.c
@@ -92,8 +92,6 @@ static int sofef00_panel_off(struct sofef00_panel *ctx)
struct mipi_dsi_device *dsi = ctx->dsi;
struct mipi_dsi_multi_context dsi_ctx = { .dsi = dsi };
- dsi->mode_flags &= ~MIPI_DSI_MODE_LPM;
-
mipi_dsi_dcs_set_display_off_multi(&dsi_ctx);
mipi_dsi_msleep(&dsi_ctx, 40);
@@ -180,10 +178,14 @@ static int sofef00_panel_bl_update_status(struct backlight_device *bl)
int err;
u16 brightness = (u16)backlight_get_brightness(bl);
+ dsi->mode_flags &= ~MIPI_DSI_MODE_LPM;
+
err = mipi_dsi_dcs_set_display_brightness_large(dsi, brightness);
if (err < 0)
return err;
+ dsi->mode_flags |= MIPI_DSI_MODE_LPM;
+
return 0;
}
@@ -234,6 +236,7 @@ static int sofef00_panel_probe(struct mipi_dsi_device *dsi)
dsi->lanes = 4;
dsi->format = MIPI_DSI_FMT_RGB888;
+ dsi->mode_flags = MIPI_DSI_MODE_LPM;
ctx->panel.prepare_prev_first = true;
--
2.51.0
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH v2 12/12] drm/panel: sofef00: Non-continuous mode and video burst are supported
2025-11-13 17:57 [PATCH v2 00/12] Make Samsung SOFEF00 DDIC and panel work David Heidelberg via B4 Relay
` (10 preceding siblings ...)
2025-11-13 17:57 ` [PATCH v2 11/12] drm/panel: sofef00: Mark the LPM mode always-on David Heidelberg via B4 Relay
@ 2025-11-13 17:57 ` David Heidelberg via B4 Relay
11 siblings, 0 replies; 18+ messages in thread
From: David Heidelberg via B4 Relay @ 2025-11-13 17:57 UTC (permalink / raw)
To: Neil Armstrong, Jessica Zhang, 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
Cc: dri-devel, devicetree, linux-kernel, linux-arm-msm, phone-devel,
David Heidelberg
From: David Heidelberg <david@ixit.cz>
The panel supports both modes.
Signed-off-by: David Heidelberg <david@ixit.cz>
---
drivers/gpu/drm/panel/panel-samsung-sofef00.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/panel/panel-samsung-sofef00.c b/drivers/gpu/drm/panel/panel-samsung-sofef00.c
index 8286cad385738..b330c4a1ad19d 100644
--- a/drivers/gpu/drm/panel/panel-samsung-sofef00.c
+++ b/drivers/gpu/drm/panel/panel-samsung-sofef00.c
@@ -236,7 +236,8 @@ static int sofef00_panel_probe(struct mipi_dsi_device *dsi)
dsi->lanes = 4;
dsi->format = MIPI_DSI_FMT_RGB888;
- dsi->mode_flags = MIPI_DSI_MODE_LPM;
+ dsi->mode_flags = MIPI_DSI_MODE_VIDEO_BURST |
+ MIPI_DSI_CLOCK_NON_CONTINUOUS | MIPI_DSI_MODE_LPM;
ctx->panel.prepare_prev_first = true;
--
2.51.0
^ permalink raw reply related [flat|nested] 18+ messages in thread
* Re: [PATCH v2 02/12] arch: arm64: qcom: sdm845-enchilada: Specify panel name within the compatible
2025-11-13 17:57 ` [PATCH v2 02/12] arch: arm64: qcom: sdm845-enchilada: Specify panel name within the compatible David Heidelberg via B4 Relay
@ 2025-11-13 20:28 ` Bjorn Andersson
0 siblings, 0 replies; 18+ messages in thread
From: Bjorn Andersson @ 2025-11-13 20:28 UTC (permalink / raw)
To: david
Cc: Neil Armstrong, Jessica Zhang, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Thierry Reding, Sam Ravnborg,
Konrad Dybcio, Casey Connolly, dri-devel, devicetree,
linux-kernel, linux-arm-msm, phone-devel
On Thu, Nov 13, 2025 at 06:57:36PM +0100, David Heidelberg via B4 Relay wrote:
> From: David Heidelberg <david@ixit.cz>
No "arch: " prefix on these files, please. (If patch 1 is picked in the
current form, I can fix it up for you)
Regards,
Bjorn
>
> sofef00 is name of the DDIC, it doesn't contain name of the panel used.
> The DDIC is also paired with other panels, so make clear which panel is
> used.
>
> New device-tree will work with old driver as expected, due to secondary
> compatible.
>
> cosmetic: sort the node.
>
> Signed-off-by: David Heidelberg <david@ixit.cz>
> ---
> arch/arm64/boot/dts/qcom/sdm845-oneplus-enchilada.dts | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/arch/arm64/boot/dts/qcom/sdm845-oneplus-enchilada.dts b/arch/arm64/boot/dts/qcom/sdm845-oneplus-enchilada.dts
> index a259eb9d45ae0..8aead6dc25e00 100644
> --- a/arch/arm64/boot/dts/qcom/sdm845-oneplus-enchilada.dts
> +++ b/arch/arm64/boot/dts/qcom/sdm845-oneplus-enchilada.dts
> @@ -31,9 +31,9 @@ battery: battery {
> };
>
> &display_panel {
> - status = "okay";
> + compatible = "samsung,sofef00-ams628nw01", "samsung,sofef00";
>
> - compatible = "samsung,sofef00";
> + status = "okay";
> };
>
> &bq27441_fg {
>
> --
> 2.51.0
>
>
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH v2 01/12] dt-bindings: panel: Convert Samsung SOFEF00 DDIC into standalone yaml
2025-11-13 17:57 ` [PATCH v2 01/12] dt-bindings: panel: Convert Samsung SOFEF00 DDIC into standalone yaml David Heidelberg via B4 Relay
@ 2025-11-14 8:13 ` Krzysztof Kozlowski
2025-11-16 13:55 ` Casey Connolly
1 sibling, 0 replies; 18+ messages in thread
From: Krzysztof Kozlowski @ 2025-11-14 8:13 UTC (permalink / raw)
To: David Heidelberg
Cc: Neil Armstrong, Jessica Zhang, 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, dri-devel,
devicetree, linux-kernel, linux-arm-msm, phone-devel
On Thu, Nov 13, 2025 at 06:57:35PM +0100, David Heidelberg wrote:
> Reason for moving from simple panel is this DDIC has three supplies,
> while panel-simple-dsi is limited to one.
>
> Previous compatible only described the DDIC, but didn't include panel
> connected to it. Let's fix it, and offer bindings authors two
> compatibles to distinguish the connected panel.
>
> Basic description for SOFEF00 DDIC with attached panels
>
> - Samsung AMS601NT22 6.01 inch, 1080x2160 pixels, 18:9 ratio
> - Samsung AMS628NW01 6.28 inch, 1080x2280 pixels, 19:9 ratio
>
> There is only one user which uses samsung,sofef00 and it's updated to
> comply within this patch series.
>
> Signed-off-by: David Heidelberg <david@ixit.cz>
> ---
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH v2 01/12] dt-bindings: panel: Convert Samsung SOFEF00 DDIC into standalone yaml
2025-11-13 17:57 ` [PATCH v2 01/12] dt-bindings: panel: Convert Samsung SOFEF00 DDIC into standalone yaml David Heidelberg via B4 Relay
2025-11-14 8:13 ` Krzysztof Kozlowski
@ 2025-11-16 13:55 ` Casey Connolly
2025-11-16 14:42 ` David Heidelberg
2025-11-16 17:46 ` David Heidelberg
1 sibling, 2 replies; 18+ messages in thread
From: Casey Connolly @ 2025-11-16 13:55 UTC (permalink / raw)
To: david, Neil Armstrong, Jessica Zhang, Maarten Lankhorst,
Maxime Ripard, Thomas Zimmermann, David Airlie, Simona Vetter,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Thierry Reding,
Sam Ravnborg, Bjorn Andersson, Konrad Dybcio
Cc: dri-devel, devicetree, linux-kernel, linux-arm-msm, phone-devel
Hi David,
I may not have added myself to MAINTAINERS when I submitted this driver,
but a heads-up would have been appreciated before just taking it over!
On 11/13/25 18:57, David Heidelberg via B4 Relay wrote:
> From: David Heidelberg <david@ixit.cz>
[...]> diff --git a/MAINTAINERS b/MAINTAINERS
> index 7e015dcbac732..a4b16812d5a0c 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -8117,6 +8117,12 @@ S: Maintained
> F: Documentation/devicetree/bindings/display/panel/samsung,s6e3ha8.yaml
> F: drivers/gpu/drm/panel/panel-samsung-s6e3ha8.c
>
> +DRM DRIVER FOR SAMSUNG SOFEF00 DDIC
> +M: David Heidelberg <david@ixit.cz>
M: Casey Connolly <casey.connolly@linaro.org>
Please and thanks!
Casey (she/they)
> +S: Maintained
> +F: Documentation/devicetree/bindings/display/panel/samsung,sofef00.yaml
> +F: drivers/gpu/drm/panel/panel-samsung-sofef00.c
> +
> DRM DRIVER FOR SHARP MEMORY LCD
> M: Alex Lanzano <lanzano.alex@gmail.com>
> S: Maintained
>
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH v2 01/12] dt-bindings: panel: Convert Samsung SOFEF00 DDIC into standalone yaml
2025-11-16 13:55 ` Casey Connolly
@ 2025-11-16 14:42 ` David Heidelberg
2025-11-16 17:46 ` David Heidelberg
1 sibling, 0 replies; 18+ messages in thread
From: David Heidelberg @ 2025-11-16 14:42 UTC (permalink / raw)
To: Casey Connolly, Neil Armstrong, Jessica Zhang, Maarten Lankhorst,
Maxime Ripard, Thomas Zimmermann, David Airlie, Simona Vetter,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Thierry Reding,
Sam Ravnborg, Bjorn Andersson, Konrad Dybcio
Cc: dri-devel, devicetree, linux-kernel, linux-arm-msm, phone-devel
On 16/11/2025 14:55, Casey Connolly wrote:
> Hi David,
>
> I may not have added myself to MAINTAINERS when I submitted this driver,
> but a heads-up would have been appreciated before just taking it over!
>
> On 11/13/25 18:57, David Heidelberg via B4 Relay wrote:
>> From: David Heidelberg <david@ixit.cz>
>
> [...]> diff --git a/MAINTAINERS b/MAINTAINERS
>> index 7e015dcbac732..a4b16812d5a0c 100644
>> --- a/MAINTAINERS
>> +++ b/MAINTAINERS
>> @@ -8117,6 +8117,12 @@ S: Maintained
>> F: Documentation/devicetree/bindings/display/panel/
>> samsung,s6e3ha8.yaml
>> F: drivers/gpu/drm/panel/panel-samsung-s6e3ha8.c
>> +DRM DRIVER FOR SAMSUNG SOFEF00 DDIC
>> +M: David Heidelberg <david@ixit.cz>
>
> M: Casey Connolly <casey.connolly@linaro.org>
Sure, I'll add you in next patch version.
Could you review the patches not authored by you within the patchset too?
Thank you
David
>
> Please and thanks!
> Casey (she/they)
>
>> +S: Maintained
>> +F: Documentation/devicetree/bindings/display/panel/
>> samsung,sofef00.yaml
>> +F: drivers/gpu/drm/panel/panel-samsung-sofef00.c
>> +
>> DRM DRIVER FOR SHARP MEMORY LCD
>> M: Alex Lanzano <lanzano.alex@gmail.com>
>> S: Maintained
>>
>
--
David Heidelberg
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH v2 01/12] dt-bindings: panel: Convert Samsung SOFEF00 DDIC into standalone yaml
2025-11-16 13:55 ` Casey Connolly
2025-11-16 14:42 ` David Heidelberg
@ 2025-11-16 17:46 ` David Heidelberg
1 sibling, 0 replies; 18+ messages in thread
From: David Heidelberg @ 2025-11-16 17:46 UTC (permalink / raw)
To: Casey Connolly, Neil Armstrong, Jessica Zhang, Maarten Lankhorst,
Maxime Ripard, Thomas Zimmermann, David Airlie, Simona Vetter,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Thierry Reding,
Sam Ravnborg, Bjorn Andersson, Konrad Dybcio
Cc: dri-devel, devicetree, linux-kernel, linux-arm-msm, phone-devel
On 16/11/2025 14:55, Casey Connolly wrote:
> Hi David,
>
> I may not have added myself to MAINTAINERS when I submitted this driver,
> but a heads-up would have been appreciated before just taking it over!
I missed this part in first reaction to your email.
Since the driver was broken in mainline and you didn't upstream any
patches you had in sdm845-mainline tree for more than year, I assumed
you don't have time to maintain the driver.
I'm very happy you got back and you're going to maintain the driver
again thou.
I didn't feel I'm taking over from you, so sorry about that!
David
>
> On 11/13/25 18:57, David Heidelberg via B4 Relay wrote:
>> From: David Heidelberg <david@ixit.cz>
>
> [...]> diff --git a/MAINTAINERS b/MAINTAINERS
>> index 7e015dcbac732..a4b16812d5a0c 100644
>> --- a/MAINTAINERS
>> +++ b/MAINTAINERS
>> @@ -8117,6 +8117,12 @@ S: Maintained
>> F: Documentation/devicetree/bindings/display/panel/
>> samsung,s6e3ha8.yaml
>> F: drivers/gpu/drm/panel/panel-samsung-s6e3ha8.c
>> +DRM DRIVER FOR SAMSUNG SOFEF00 DDIC
>> +M: David Heidelberg <david@ixit.cz>
>
> M: Casey Connolly <casey.connolly@linaro.org>
>
> Please and thanks!
> Casey (she/they)
>
>> +S: Maintained
>> +F: Documentation/devicetree/bindings/display/panel/
>> samsung,sofef00.yaml
>> +F: drivers/gpu/drm/panel/panel-samsung-sofef00.c
>> +
>> DRM DRIVER FOR SHARP MEMORY LCD
>> M: Alex Lanzano <lanzano.alex@gmail.com>
>> S: Maintained
>>
>
--
David Heidelberg
^ permalink raw reply [flat|nested] 18+ messages in thread
end of thread, other threads:[~2025-11-16 17:46 UTC | newest]
Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-11-13 17:57 [PATCH v2 00/12] Make Samsung SOFEF00 DDIC and panel work David Heidelberg via B4 Relay
2025-11-13 17:57 ` [PATCH v2 01/12] dt-bindings: panel: Convert Samsung SOFEF00 DDIC into standalone yaml David Heidelberg via B4 Relay
2025-11-14 8:13 ` Krzysztof Kozlowski
2025-11-16 13:55 ` Casey Connolly
2025-11-16 14:42 ` David Heidelberg
2025-11-16 17:46 ` David Heidelberg
2025-11-13 17:57 ` [PATCH v2 02/12] arch: arm64: qcom: sdm845-enchilada: Specify panel name within the compatible David Heidelberg via B4 Relay
2025-11-13 20:28 ` Bjorn Andersson
2025-11-13 17:57 ` [PATCH v2 03/12] drm/panel: sofef00: Clean up panel description after s6e3fc2x01 removal David Heidelberg via B4 Relay
2025-11-13 17:57 ` [PATCH v2 04/12] drm/panel: sofef00: Handle all regulators David Heidelberg via B4 Relay
2025-11-13 17:57 ` [PATCH v2 05/12] drm/panel: sofef00: Split sending commands to the enable/disable functions David Heidelberg via B4 Relay
2025-11-13 17:57 ` [PATCH v2 06/12] drm/panel: sofef00: Introduce page macro David Heidelberg via B4 Relay
2025-11-13 17:57 ` [PATCH v2 07/12] drm/panel: sofef00: Add prepare_prev_first flag to drm_panel David Heidelberg via B4 Relay
2025-11-13 17:57 ` [PATCH v2 08/12] drm/panel: sofef00: Initialise at 50% brightness David Heidelberg via B4 Relay
2025-11-13 17:57 ` [PATCH v2 09/12] drm/panel: sofef00: Introduce compatible which includes the panel name David Heidelberg via B4 Relay
2025-11-13 17:57 ` [PATCH v2 10/12] drm/panel: sofef00: Simplify get_modes David Heidelberg via B4 Relay
2025-11-13 17:57 ` [PATCH v2 11/12] drm/panel: sofef00: Mark the LPM mode always-on David Heidelberg via B4 Relay
2025-11-13 17:57 ` [PATCH v2 12/12] drm/panel: sofef00: Non-continuous mode and video burst are supported David Heidelberg via B4 Relay
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).