drm/panel: simple: Add support for Innolux G070Y2-L01
authorChristoph Fritz <chf.fritz@googlemail.com>
Mon, 4 Jun 2018 11:16:48 +0000 (13:16 +0200)
committerThierry Reding <treding@nvidia.com>
Tue, 10 Jul 2018 15:59:05 +0000 (17:59 +0200)
This patch adds support for Innolux G070Y2-L01 7" WVGA (800x480) TFT LCD
panel.

Signed-off-by: Christoph Fritz <chf.fritz@googlemail.com>
Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Thierry Reding <treding@nvidia.com>
Link: https://patchwork.freedesktop.org/patch/msgid/1528111008.2818.20.camel@googlemail.com
Documentation/devicetree/bindings/display/panel/innolux,g070y2-l01.txt [new file with mode: 0644]
drivers/gpu/drm/panel/panel-simple.c

diff --git a/Documentation/devicetree/bindings/display/panel/innolux,g070y2-l01.txt b/Documentation/devicetree/bindings/display/panel/innolux,g070y2-l01.txt
new file mode 100644 (file)
index 0000000..7c234cf
--- /dev/null
@@ -0,0 +1,12 @@
+Innolux G070Y2-L01 7" WVGA (800x480) TFT LCD panel
+
+Required properties:
+- compatible: should be "innolux,g070y2-l01"
+- power-supply: as specified in the base binding
+
+Optional properties:
+- backlight: as specified in the base binding
+- enable-gpios: as specified in the base binding
+
+This binding is compatible with the simple-panel binding, which is specified
+in simple-panel.txt in this directory.
index 2c4857e..da7fbd2 100644 (file)
@@ -1176,6 +1176,36 @@ static const struct panel_desc innolux_at070tn92 = {
        .bus_format = MEDIA_BUS_FMT_RGB888_1X24,
 };
 
+static const struct display_timing innolux_g070y2_l01_timing = {
+       .pixelclock = { 28000000, 29500000, 32000000 },
+       .hactive = { 800, 800, 800 },
+       .hfront_porch = { 61, 91, 141 },
+       .hback_porch = { 60, 90, 140 },
+       .hsync_len = { 12, 12, 12 },
+       .vactive = { 480, 480, 480 },
+       .vfront_porch = { 4, 9, 30 },
+       .vback_porch = { 4, 8, 28 },
+       .vsync_len = { 2, 2, 2 },
+       .flags = DISPLAY_FLAGS_DE_HIGH,
+};
+
+static const struct panel_desc innolux_g070y2_l01 = {
+       .timings = &innolux_g070y2_l01_timing,
+       .num_timings = 1,
+       .bpc = 6,
+       .size = {
+               .width = 152,
+               .height = 91,
+       },
+       .delay = {
+               .prepare = 10,
+               .enable = 100,
+               .disable = 100,
+               .unprepare = 800,
+       },
+       .bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_SPWG,
+};
+
 static const struct display_timing innolux_g101ice_l01_timing = {
        .pixelclock = { 60400000, 71100000, 74700000 },
        .hactive = { 1280, 1280, 1280 },
@@ -2341,10 +2371,13 @@ static const struct of_device_id platform_of_match[] = {
                .compatible = "innolux,at070tn92",
                .data = &innolux_at070tn92,
        }, {
-               .compatible ="innolux,g101ice-l01",
+               .compatible = "innolux,g070y2-l01",
+               .data = &innolux_g070y2_l01,
+       }, {
+               .compatible = "innolux,g101ice-l01",
                .data = &innolux_g101ice_l01
        }, {
-               .compatible ="innolux,g121i1-l01",
+               .compatible = "innolux,g121i1-l01",
                .data = &innolux_g121i1_l01
        }, {
                .compatible = "innolux,g121x1-l03",