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

From: Iskren Chernev
Date: Thu Jan 28 2021 - 04:45:45 EST




On 12/30/20 5:17 PM, Iskren Chernev wrote:
> From: Samuel Pascua <pascua.samuel.14@xxxxxxxxx>
>
> This panel is used on the Samsung Galaxy S5 (klte).
>
> Signed-off-by: Samuel Pascua <pascua.samuel.14@xxxxxxxxx>
> ---
> 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
>