Add support for the Hannstar HSD100PXN1 to the DRM simple panel driver.

The HSD100PXN1 is an XGA (1024x768) panel with an 18-bit LVDS interface.
It supports pixel clocks in the range of 55-75 MHz.

This panel is offered for sale by Freescale as a companion part to its'
i.MX5x Quick Start board and i.MX6 SABRE platforms with under the name
MCIMX-LVDS1.

Signed-off-by: Eric Nelson <eric.nelson at boundarydevices.com>
---
 .../bindings/panel/hannstar,hsd100pxn1.txt         |  7 ++++++
 drivers/gpu/drm/panel/panel-simple.c               | 26 ++++++++++++++++++++++
 2 files changed, 33 insertions(+)
 create mode 100644 
Documentation/devicetree/bindings/panel/hannstar,hsd100pxn1.txt

diff --git a/Documentation/devicetree/bindings/panel/hannstar,hsd100pxn1.txt 
b/Documentation/devicetree/bindings/panel/hannstar,hsd100pxn1.txt
new file mode 100644
index 0000000..8270319
--- /dev/null
+++ b/Documentation/devicetree/bindings/panel/hannstar,hsd100pxn1.txt
@@ -0,0 +1,7 @@
+HannStar Display Corp. HSD100PXN1 10.1" XGA LVDS panel
+
+Required properties:
+- compatible: should be "hannstar,hsd100pxn1"
+
+This binding is compatible with the simple-panel binding, which is specified
+in simple-panel.txt in this directory.
diff --git a/drivers/gpu/drm/panel/panel-simple.c 
b/drivers/gpu/drm/panel/panel-simple.c
index 30904a9..cc29ed3 100644
--- a/drivers/gpu/drm/panel/panel-simple.c
+++ b/drivers/gpu/drm/panel/panel-simple.c
@@ -731,6 +731,29 @@ static const struct panel_desc hannstar_hsd070pww1 = {
        },
 };

+static const struct display_timing hannstar_hsd100pxn1_timing = {
+       .pixelclock = { 55000000, 65000000, 75000000 },
+       .hactive = { 1024, 1024, 1024 },
+       .hfront_porch = { 40, 40, 40 },
+       .hback_porch = { 220, 220, 220 },
+       .hsync_len = { 20, 60, 100 },
+       .vactive = { 768, 768, 768 },
+       .vfront_porch = { 7, 7, 7 },
+       .vback_porch = { 21, 21, 21 },
+       .vsync_len = { 10, 10, 10 },
+       .flags = DISPLAY_FLAGS_DE_HIGH,
+};
+
+static const struct panel_desc hannstar_hsd100pxn1 = {
+       .timings = &hannstar_hsd100pxn1_timing,
+       .num_timings = 1,
+       .bpc = 6,
+       .size = {
+               .width = 203,
+               .height = 152,
+       },
+};
+
 static const struct drm_display_mode hitachi_tx23d38vm0caa_mode = {
        .clock = 33333,
        .hdisplay = 800,
@@ -1038,6 +1061,9 @@ static const struct of_device_id platform_of_match[] = {
                .compatible = "hannstar,hsd070pww1",
                .data = &hannstar_hsd070pww1,
        }, {
+               .compatible = "hannstar,hsd100pxn1",
+               .data = &hannstar_hsd100pxn1,
+       }, {
                .compatible = "hit,tx23d38vm0caa",
                .data = &hitachi_tx23d38vm0caa
        }, {
-- 
1.9.1

Reply via email to