]> www.infradead.org Git - users/willy/xarray.git/commitdiff
drm/panel-simple: add Gopher 2b LCD panel
authorArtjom Vejsel <akawolf0@gmail.com>
Wed, 4 Aug 2021 00:23:53 +0000 (03:23 +0300)
committerPaul Cercueil <paul@crapouillou.net>
Thu, 5 Aug 2021 07:45:41 +0000 (09:45 +0200)
The Gopher 2b LCD panel is used in Gopher 2b handhelds.
It's simple panel with NewVision NV3047 driver, but SPI lines are not
connected. It has no specific name, since it's unique to that handheld.
lot name at AliExpress: 4.3 inch 40PIN TFT LCD Screen COG NV3047 Drive
IC 480(RGB)*272 No Touch 24Bit RGB Interface

Signed-off-by: Artjom Vejsel <akawolf0@gmail.com>
Signed-off-by: Paul Cercueil <paul@crapouillou.net>
Link: https://patchwork.freedesktop.org/patch/msgid/20210804002353.76385-4-akawolf0@gmail.com
drivers/gpu/drm/panel/panel-simple.c

index e592551c9523b1d763c5fa5dd505bfbdb3a5efcf..8e021b57875dd1b8beac43c39ab07bd13980ae38 100644 (file)
@@ -3622,6 +3622,46 @@ static const struct panel_desc qd43003c0_40 = {
        .bus_format = MEDIA_BUS_FMT_RGB888_1X24,
 };
 
+static const struct drm_display_mode qishenglong_gopher2b_lcd_modes[] = {
+       { /* 60 Hz */
+               .clock = 10800,
+               .hdisplay = 480,
+               .hsync_start = 480 + 77,
+               .hsync_end = 480 + 77 + 41,
+               .htotal = 480 + 77 + 41 + 2,
+               .vdisplay = 272,
+               .vsync_start = 272 + 16,
+               .vsync_end = 272 + 16 + 10,
+               .vtotal = 272 + 16 + 10 + 2,
+               .flags = DRM_MODE_FLAG_NVSYNC | DRM_MODE_FLAG_NHSYNC,
+       },
+       { /* 50 Hz */
+               .clock = 10800,
+               .hdisplay = 480,
+               .hsync_start = 480 + 17,
+               .hsync_end = 480 + 17 + 41,
+               .htotal = 480 + 17 + 41 + 2,
+               .vdisplay = 272,
+               .vsync_start = 272 + 116,
+               .vsync_end = 272 + 116 + 10,
+               .vtotal = 272 + 116 + 10 + 2,
+               .flags = DRM_MODE_FLAG_NVSYNC | DRM_MODE_FLAG_NHSYNC,
+       },
+};
+
+static const struct panel_desc qishenglong_gopher2b_lcd = {
+       .modes = qishenglong_gopher2b_lcd_modes,
+       .num_modes = ARRAY_SIZE(qishenglong_gopher2b_lcd_modes),
+       .bpc = 8,
+       .size = {
+               .width = 95,
+               .height = 54,
+       },
+       .bus_format = MEDIA_BUS_FMT_RGB888_1X24,
+       .bus_flags = DRM_BUS_FLAG_DE_HIGH | DRM_BUS_FLAG_PIXDATA_SAMPLE_NEGEDGE,
+       .connector_type = DRM_MODE_CONNECTOR_DPI,
+};
+
 static const struct display_timing rocktech_rk070er9427_timing = {
        .pixelclock = { 26400000, 33300000, 46800000 },
        .hactive = { 800, 800, 800 },
@@ -4689,6 +4729,9 @@ static const struct of_device_id platform_of_match[] = {
        }, {
                .compatible = "qiaodian,qd43003c0-40",
                .data = &qd43003c0_40,
+       }, {
+               .compatible = "qishenglong,gopher2b-lcd",
+               .data = &qishenglong_gopher2b_lcd,
        }, {
                .compatible = "rocktech,rk070er9427",
                .data = &rocktech_rk070er9427,