drm/panel: simple: Add support for Rocktech RK070ER9427 LCD panel
authorJagan Teki <jagan@amarulasolutions.com>
Thu, 7 Jun 2018 13:46:48 +0000 (19:16 +0530)
committerThierry Reding <treding@nvidia.com>
Tue, 10 Jul 2018 15:59:05 +0000 (17:59 +0200)
This adds support for the Rocktech Display Ltd. RK070ER9427
800(RGB)x480 TFT LCD panel, which can be supported by the
simple panel driver.

Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Thierry Reding <treding@nvidia.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180607134648.2902-1-jagan@amarulasolutions.com
Documentation/devicetree/bindings/display/panel/rocktech,rk070er9427.txt [new file with mode: 0644]
drivers/gpu/drm/panel/panel-simple.c

diff --git a/Documentation/devicetree/bindings/display/panel/rocktech,rk070er9427.txt b/Documentation/devicetree/bindings/display/panel/rocktech,rk070er9427.txt
new file mode 100644 (file)
index 0000000..eb1fb9f
--- /dev/null
@@ -0,0 +1,25 @@
+Rocktech Display Ltd. RK070ER9427 800(RGB)x480 TFT LCD panel
+
+This binding is compatible with the simple-panel binding, which is specified
+in simple-panel.txt in this directory.
+
+Required properties:
+- compatible: should be "rocktech,rk070er9427"
+
+Optional properties:
+- backlight: phandle of the backlight device attached to the panel
+
+Optional nodes:
+- Video port for LCD panel input.
+
+Example:
+       panel {
+               compatible = "rocktech,rk070er9427";
+               backlight = <&backlight_lcd>;
+
+               port {
+                       lcd_panel_in: endpoint {
+                               remote-endpoint = <&lcd_display_out>;
+                       };
+               };
+       };
index ac6aaa174c0b8964da0462953b2a790c3740f31b..884fd534c8b39123b1c5224fb170f8c04ef51691 100644 (file)
@@ -1747,6 +1747,36 @@ static const struct panel_desc qd43003c0_40 = {
        .bus_format = MEDIA_BUS_FMT_RGB888_1X24,
 };
 
+static const struct display_timing rocktech_rk070er9427_timing = {
+       .pixelclock = { 26400000, 33300000, 46800000 },
+       .hactive = { 800, 800, 800 },
+       .hfront_porch = { 16, 210, 354 },
+       .hback_porch = { 46, 46, 46 },
+       .hsync_len = { 1, 1, 1 },
+       .vactive = { 480, 480, 480 },
+       .vfront_porch = { 7, 22, 147 },
+       .vback_porch = { 23, 23, 23 },
+       .vsync_len = { 1, 1, 1 },
+       .flags = DISPLAY_FLAGS_DE_HIGH,
+};
+
+static const struct panel_desc rocktech_rk070er9427 = {
+       .timings = &rocktech_rk070er9427_timing,
+       .num_timings = 1,
+       .bpc = 6,
+       .size = {
+               .width = 154,
+               .height = 86,
+       },
+       .delay = {
+               .prepare = 41,
+               .enable = 50,
+               .unprepare = 41,
+               .disable = 50,
+       },
+       .bus_format = MEDIA_BUS_FMT_RGB666_1X18,
+};
+
 static const struct drm_display_mode samsung_lsn122dl01_c01_mode = {
        .clock = 271560,
        .hdisplay = 2560,
@@ -2283,6 +2313,9 @@ static const struct of_device_id platform_of_match[] = {
        }, {
                .compatible = "qiaodian,qd43003c0-40",
                .data = &qd43003c0_40,
+       }, {
+               .compatible = "rocktech,rk070er9427",
+               .data = &rocktech_rk070er9427,
        }, {
                .compatible = "samsung,lsn122dl01-c01",
                .data = &samsung_lsn122dl01_c01,