2020-12-30 15:20:35

by Iskren Chernev

[permalink] [raw]
Subject: [PATCH 1/2] dt-bindings: panel-simple: add samsung,s6e3fa2 panel

Add samsung,s6e3fa2 in the allowed simple-panel compat strings.

Signed-off-by: Iskren Chernev <[email protected]>
---
.../devicetree/bindings/display/panel/panel-simple.yaml | 2 ++
1 file changed, 2 insertions(+)

diff --git a/Documentation/devicetree/bindings/display/panel/panel-simple.yaml b/Documentation/devicetree/bindings/display/panel/panel-simple.yaml
index 27fffafe5b5c0..52480ca230c7b 100644
--- a/Documentation/devicetree/bindings/display/panel/panel-simple.yaml
+++ b/Documentation/devicetree/bindings/display/panel/panel-simple.yaml
@@ -241,6 +241,8 @@ properties:
- samsung,ltn101nt05
# Samsung Electronics 14" WXGA (1366x768) TFT LCD panel
- samsung,ltn140at29-301
+ # Samsung Electronics 5.1" (1920x1080) AMOLED cmd panel
+ - samsung,s6e3fa2
# Satoz SAT050AT40H12R2 5.0" WVGA TFT LCD panel
- satoz,sat050at40h12r2
# Sharp LQ035Q7DB03 3.5" QVGA TFT LCD panel

base-commit: d7a03a44a5e93f39ece70ec75d25c6088caa0fdb
--
2.29.2


2020-12-30 15:20:44

by Iskren Chernev

[permalink] [raw]
Subject: [PATCH 2/2] drm/panel: simple: add samsung,s6e3fa2 panel

From: Samuel Pascua <[email protected]>

This panel is used on the Samsung Galaxy S5 (klte).

Signed-off-by: Samuel Pascua <[email protected]>
---
drivers/gpu/drm/panel/panel-simple.c | 30 ++++++++++++++++++++++++++++
1 file changed, 30 insertions(+)

diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c
index 41bbec72b2dad..5f16826f3ae06 100644
--- a/drivers/gpu/drm/panel/panel-simple.c
+++ b/drivers/gpu/drm/panel/panel-simple.c
@@ -4611,6 +4611,33 @@ static const struct panel_desc_dsi osd101t2045_53ts = {
.lanes = 4,
};

+static const struct drm_display_mode s6e3fa2_mode = {
+ .clock = 149769,
+ .hdisplay = 1080,
+ .hsync_start = 1080 + 162,
+ .hsync_end = 1080 + 162 + 10,
+ .htotal = 1080 + 162 + 10 + 36,
+ .vdisplay = 1920,
+ .vsync_start = 1920 + 13,
+ .vsync_end = 1920 + 13 + 2,
+ .vtotal = 1920 + 13 + 2 + 3,
+};
+
+static const struct panel_desc_dsi samsung_s6e3fa2 = {
+ .desc = {
+ .modes = &s6e3fa2_mode,
+ .num_modes = 1,
+ .bpc = 8,
+ .size = {
+ .width = 65,
+ .height = 115,
+ },
+ },
+ .flags = MIPI_DSI_MODE_VIDEO_BURST,
+ .format = MIPI_DSI_FMT_RGB888,
+ .lanes = 4,
+};
+
static const struct of_device_id dsi_of_match[] = {
{
.compatible = "auo,b080uan01",
@@ -4633,6 +4660,9 @@ static const struct of_device_id dsi_of_match[] = {
}, {
.compatible = "osddisplays,osd101t2045-53ts",
.data = &osd101t2045_53ts
+ }, {
+ .compatible = "samsung,s6e3fa2",
+ .data = &samsung_s6e3fa2
}, {
/* sentinel */
}
--
2.29.2

2021-01-03 06:07:32

by Alexey Minnekhanov

[permalink] [raw]
Subject: Re: [PATCH 2/2] drm/panel: simple: add samsung,s6e3fa2 panel

Tested this on Samsung Galaxy S5 along with other patches that enable
GPU support on this device.

Tested-by: Alexey Minnekhanov <[email protected]>

On 12/30/20 6:17 PM, Iskren Chernev wrote:
> From: Samuel Pascua <[email protected]>
>
> This panel is used on the Samsung Galaxy S5 (klte).
>
> Signed-off-by: Samuel Pascua <[email protected]>
> ---
> drivers/gpu/drm/panel/panel-simple.c | 30 ++++++++++++++++++++++++++++
> 1 file changed, 30 insertions(+)
>

2021-01-11 21:46:55

by Rob Herring

[permalink] [raw]
Subject: Re: [PATCH 1/2] dt-bindings: panel-simple: add samsung,s6e3fa2 panel

On Wed, 30 Dec 2020 17:17:10 +0200, Iskren Chernev wrote:
> Add samsung,s6e3fa2 in the allowed simple-panel compat strings.
>
> Signed-off-by: Iskren Chernev <[email protected]>
> ---
> .../devicetree/bindings/display/panel/panel-simple.yaml | 2 ++
> 1 file changed, 2 insertions(+)
>

Acked-by: Rob Herring <[email protected]>

2021-01-28 09:47:27

by Iskren Chernev

[permalink] [raw]
Subject: Re: [PATCH 2/2] drm/panel: simple: add samsung,s6e3fa2 panel



On 12/30/20 5:17 PM, Iskren Chernev wrote:
> From: Samuel Pascua <[email protected]>
>
> This panel is used on the Samsung Galaxy S5 (klte).
>
> Signed-off-by: Samuel Pascua <[email protected]>
> ---
> drivers/gpu/drm/panel/panel-simple.c | 30 ++++++++++++++++++++++++++++
> 1 file changed, 30 insertions(+)
>
> diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c
> index 41bbec72b2dad..5f16826f3ae06 100644
> --- a/drivers/gpu/drm/panel/panel-simple.c
> +++ b/drivers/gpu/drm/panel/panel-simple.c
> @@ -4611,6 +4611,33 @@ static const struct panel_desc_dsi osd101t2045_53ts = {
> .lanes = 4,
> };
>
> +static const struct drm_display_mode s6e3fa2_mode = {
> + .clock = 149769,
> + .hdisplay = 1080,
> + .hsync_start = 1080 + 162,
> + .hsync_end = 1080 + 162 + 10,
> + .htotal = 1080 + 162 + 10 + 36,
> + .vdisplay = 1920,
> + .vsync_start = 1920 + 13,
> + .vsync_end = 1920 + 13 + 2,
> + .vtotal = 1920 + 13 + 2 + 3,
> +};
> +
> +static const struct panel_desc_dsi samsung_s6e3fa2 = {
> + .desc = {
> + .modes = &s6e3fa2_mode,
> + .num_modes = 1,
> + .bpc = 8,
> + .size = {
> + .width = 65,
> + .height = 115,
> + },
> + },
> + .flags = MIPI_DSI_MODE_VIDEO_BURST,
> + .format = MIPI_DSI_FMT_RGB888,
> + .lanes = 4,
> +};
> +
> static const struct of_device_id dsi_of_match[] = {
> {
> .compatible = "auo,b080uan01",
> @@ -4633,6 +4660,9 @@ static const struct of_device_id dsi_of_match[] = {
> }, {
> .compatible = "osddisplays,osd101t2045-53ts",
> .data = &osd101t2045_53ts
> + }, {
> + .compatible = "samsung,s6e3fa2",
> + .data = &samsung_s6e3fa2

I just want to share some details to avoid issues in the future.

This setup (with simple panel and bindings), works in the sense that the
display shows stuff, after being left on by the bootloader on the Samsung
Galaxy S5 (klte). There is no provisions for turning the screen off and
back on, backlight, or anything else.

The display is a rather advanced one, containing many features, but so far
none of them (including on/off) has been made to work. It is possible that
in the future some of those features will be figured out, and these might
very well include additional DT properties.

So would it be better to put the bindings in a separate file, ready to
grow, and for the panel - include a simple custom driver that works no
better than the simple-panel one now, but can accommodate future expansion?

> }, {
> /* sentinel */
> }
> --
> 2.29.2
>