]> git.itanic.dy.fi Git - linux-stable/commitdiff
drm/panel-simple: add Evervision VGG644804 panel entry
authorMichael Walle <mwalle@kernel.org>
Thu, 23 Nov 2023 10:24:04 +0000 (11:24 +0100)
committerNeil Armstrong <neil.armstrong@linaro.org>
Tue, 5 Dec 2023 08:23:42 +0000 (09:23 +0100)
Timings taken from the datasheet, although sometimes there are just
typical values and it's not clear if they are no min and max values or
if you must use the typical value exactly. To make things worse, there
is no back porch but only a combined sync and back porch length.

Unfortunately, there is not public datasheet. Therefore, here are the
relevant timings:
                 | min |  typ   | max |
-----------------+-----+--------+-----+
CLK frequency    |  -  | 25.175 |  -  |
HS period        |  -  |   800  |  -  |
HS pulse width   |  5  |    30  |  -  |
HS-DEN time      | 112 |   144  | 175 |
DEN pulse width  |  -  |   640  |  -  |
VS pulse width   |  1  |     3  |  5  |
VS-DEN time      |  -  |    35  |  -  |
VS period        |  -  |   525  |  -  |

Signed-off-by: Michael Walle <mwalle@kernel.org>
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Link: https://lore.kernel.org/r/20231123102404.2022201-2-mwalle@kernel.org
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20231123102404.2022201-2-mwalle@kernel.org
drivers/gpu/drm/panel/panel-simple.c

index 876e1b40cfb3b97186b7437b396fdee24098b30c..8017ad33cf18dfc991ac00a0e8d5e36ba928b510 100644 (file)
@@ -2002,6 +2002,33 @@ static const struct panel_desc eink_vb3300_kca = {
        .connector_type = DRM_MODE_CONNECTOR_DPI,
 };
 
+static const struct display_timing evervision_vgg644804_timing = {
+       .pixelclock = { 25175000, 25175000, 25175000 },
+       .hactive = { 640, 640, 640 },
+       .hfront_porch = { 16, 16, 16 },
+       .hback_porch = { 82, 114, 170 },
+       .hsync_len = { 5, 30, 30 },
+       .vactive = { 480, 480, 480 },
+       .vfront_porch = { 10, 10, 10 },
+       .vback_porch = { 30, 32, 34 },
+       .vsync_len = { 1, 3, 5 },
+       .flags = DISPLAY_FLAGS_HSYNC_LOW | DISPLAY_FLAGS_VSYNC_LOW |
+                DISPLAY_FLAGS_DE_HIGH | DISPLAY_FLAGS_PIXDATA_POSEDGE |
+                DISPLAY_FLAGS_SYNC_POSEDGE,
+};
+
+static const struct panel_desc evervision_vgg644804 = {
+       .timings = &evervision_vgg644804_timing,
+       .num_timings = 1,
+       .bpc = 8,
+       .size = {
+               .width = 115,
+               .height = 86,
+       },
+       .bus_format = MEDIA_BUS_FMT_RGB666_1X7X3_SPWG,
+       .bus_flags = DRM_BUS_FLAG_DE_HIGH | DRM_BUS_FLAG_PIXDATA_SAMPLE_NEGEDGE,
+};
+
 static const struct display_timing evervision_vgg804821_timing = {
        .pixelclock = { 27600000, 33300000, 50000000 },
        .hactive = { 800, 800, 800 },
@@ -4366,6 +4393,9 @@ static const struct of_device_id platform_of_match[] = {
        }, {
                .compatible = "eink,vb3300-kca",
                .data = &eink_vb3300_kca,
+       }, {
+               .compatible = "evervision,vgg644804",
+               .data = &evervision_vgg644804,
        }, {
                .compatible = "evervision,vgg804821",
                .data = &evervision_vgg804821,