drm/panel: simple: Add support for KOE TX26D202VM0BWA panel
authorLiu Ying <victor.liu@nxp.com>
Mon, 1 Jun 2020 06:11:20 +0000 (14:11 +0800)
committerSam Ravnborg <sam@ravnborg.org>
Fri, 5 Jun 2020 15:45:26 +0000 (17:45 +0200)
This patch adds support for Kaohsiung Opto-Electronics Inc.
10.1" TX26D202VM0BWA WUXGA(1920x1200) TFT LCD panel with LVDS interface.
The panel has dual LVDS channels.

My panel is manufactured by US Micro Products(USMP).  There is a tag at
the back of the panel, which indicates the panel type is 'TX26D202VM0BWA'
and it's made by KOE in Taiwan.

The panel spec from USMP can be found at:
https://www.usmicroproducts.com/sites/default/files/datasheets/USMP-T101-192120NDU-A0.pdf

The below panel spec from KOE is basically the same to the one from USMP.
However, the panel type 'TX26D202VM0BAA' is a little bit different.
It looks that the two types of panel are compatible with each other.
http://www.koe.j-display.com/upload/product/TX26D202VM0BAA.pdf

Cc: Thierry Reding <thierry.reding@gmail.com>
Cc: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: Liu Ying <victor.liu@nxp.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Link: https://patchwork.freedesktop.org/patch/msgid/1590991880-24273-1-git-send-email-victor.liu@nxp.com
drivers/gpu/drm/panel/panel-simple.c

index 1754d40..6764ac6 100644 (file)
@@ -2159,6 +2159,37 @@ static const struct panel_desc koe_tx14d24vm1bpa = {
        },
 };
 
+static const struct display_timing koe_tx26d202vm0bwa_timing = {
+       .pixelclock = { 151820000, 156720000, 159780000 },
+       .hactive = { 1920, 1920, 1920 },
+       .hfront_porch = { 105, 130, 142 },
+       .hback_porch = { 45, 70, 82 },
+       .hsync_len = { 30, 30, 30 },
+       .vactive = { 1200, 1200, 1200},
+       .vfront_porch = { 3, 5, 10 },
+       .vback_porch = { 2, 5, 10 },
+       .vsync_len = { 5, 5, 5 },
+};
+
+static const struct panel_desc koe_tx26d202vm0bwa = {
+       .timings = &koe_tx26d202vm0bwa_timing,
+       .num_timings = 1,
+       .bpc = 8,
+       .size = {
+               .width = 217,
+               .height = 136,
+       },
+       .delay = {
+               .prepare = 1000,
+               .enable = 1000,
+               .unprepare = 1000,
+               .disable = 1000,
+       },
+       .bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_SPWG,
+       .bus_flags = DRM_BUS_FLAG_DE_HIGH | DRM_BUS_FLAG_PIXDATA_DRIVE_POSEDGE,
+       .connector_type = DRM_MODE_CONNECTOR_LVDS,
+};
+
 static const struct display_timing koe_tx31d200vm0baa_timing = {
        .pixelclock = { 39600000, 43200000, 48000000 },
        .hactive = { 1280, 1280, 1280 },
@@ -3752,6 +3783,9 @@ static const struct of_device_id platform_of_match[] = {
                .compatible = "koe,tx14d24vm1bpa",
                .data = &koe_tx14d24vm1bpa,
        }, {
+               .compatible = "koe,tx26d202vm0bwa",
+               .data = &koe_tx26d202vm0bwa,
+       }, {
                .compatible = "koe,tx31d200vm0baa",
                .data = &koe_tx31d200vm0baa,
        }, {