]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
drm/panel: simple: Add Logic PD Type 28 display support
authorAdam Ford <aford173@gmail.com>
Wed, 16 Oct 2019 13:51:45 +0000 (08:51 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 24 Feb 2020 07:36:33 +0000 (08:36 +0100)
[ Upstream commit 0d35408afbeb603bc9972ae91e4dd2638bcffe52 ]

Previously, there was an omap panel-dpi driver that would
read generic timings from the device tree and set the display
timing accordingly.  This driver was removed so the screen
no longer functions.  This patch modifies the panel-simple
file to setup the timings to the same values previously used.

Fixes: 8bf4b1621178 ("drm/omap: Remove panel-dpi driver")
Signed-off-by: Adam Ford <aford173@gmail.com>
Reviewed-by: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20191016135147.7743-1-aford173@gmail.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/gpu/drm/panel/panel-simple.c

index 28fa6ba7b767394d2fd918079f164fca08941ff8..8abb31f83ffc70972f69a983c6e05d2ec97363b5 100644 (file)
@@ -2048,6 +2048,40 @@ static const struct drm_display_mode mitsubishi_aa070mc01_mode = {
        .flags = DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC,
 };
 
+static const struct drm_display_mode logicpd_type_28_mode = {
+       .clock = 9000,
+       .hdisplay = 480,
+       .hsync_start = 480 + 3,
+       .hsync_end = 480 + 3 + 42,
+       .htotal = 480 + 3 + 42 + 2,
+
+       .vdisplay = 272,
+       .vsync_start = 272 + 2,
+       .vsync_end = 272 + 2 + 11,
+       .vtotal = 272 + 2 + 11 + 3,
+       .vrefresh = 60,
+       .flags = DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC,
+};
+
+static const struct panel_desc logicpd_type_28 = {
+       .modes = &logicpd_type_28_mode,
+       .num_modes = 1,
+       .bpc = 8,
+       .size = {
+               .width = 105,
+               .height = 67,
+       },
+       .delay = {
+               .prepare = 200,
+               .enable = 200,
+               .unprepare = 200,
+               .disable = 200,
+       },
+       .bus_format = MEDIA_BUS_FMT_RGB888_1X24,
+       .bus_flags = DRM_BUS_FLAG_DE_HIGH | DRM_BUS_FLAG_PIXDATA_DRIVE_POSEDGE |
+                    DRM_BUS_FLAG_SYNC_DRIVE_NEGEDGE,
+};
+
 static const struct panel_desc mitsubishi_aa070mc01 = {
        .modes = &mitsubishi_aa070mc01_mode,
        .num_modes = 1,
@@ -3264,6 +3298,9 @@ static const struct of_device_id platform_of_match[] = {
        }, {
                .compatible = "lg,lp129qe",
                .data = &lg_lp129qe,
+       }, {
+               .compatible = "logicpd,type28",
+               .data = &logicpd_type_28,
        }, {
                .compatible = "mitsubishi,aa070mc01-ca1",
                .data = &mitsubishi_aa070mc01,