diff mbox series

[RFC,09/16] drm/panel: simple: Add support for Innolux LS075AT011

Message ID 20181218153742.1313125-10-lkundrak@v3.sk (mailing list archive)
State New, archived
Headers show
Series Armada DRM support for OLPC XO-1.75 laptop | expand

Commit Message

Lubomir Rintel Dec. 18, 2018, 3:37 p.m. UTC
This adds support for Innolux LS075AT011 7.5" 1200x900 panel.

The panel is not a regular LCD with RGB pixels. Its pixels are just of
one color, organized like this:

 g b r
 b r g . . .
 r g b
   .
   .
   .

It's controlled by the Himax HX8837, which takes the RGB data, optionally
dithers the colors by swizzling and drives the panel.  I couldn't determine
what the bus_format is. There's six data pins marked FD00, FD01, FD10,
FD11, FD20 and FD21.

There's no public data sheet. The clock is taken from the OLPC's
OpenFirmware, I don't know why precisely that number. It seems to work.

Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
---
 drivers/gpu/drm/panel/panel-simple.c | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)
diff mbox series

Patch

diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c
index a04ffb3b2174..d084132c3010 100644
--- a/drivers/gpu/drm/panel/panel-simple.c
+++ b/drivers/gpu/drm/panel/panel-simple.c
@@ -1326,6 +1326,29 @@  static const struct panel_desc innolux_g121x1_l03 = {
 	},
 };
 
+static const struct drm_display_mode innolux_ls075at011_mode = {
+	.clock = 56930,
+	.hdisplay = 1200,
+	.hsync_start = 1200 + 26,
+	.hsync_end = 1200 + 26 + 6,
+	.htotal = 1200 + 26 + 6 + 24,
+	.vdisplay = 900,
+	.vsync_start = 900 + 4,
+	.vsync_end = 900 + 4 + 3,
+	.vtotal = 900 + 4 + 3 + 5,
+	.vrefresh = 50,
+	.flags = DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC,
+};
+
+static const struct panel_desc innolux_ls075at011 = {
+	.modes = &innolux_ls075at011_mode,
+	.num_modes = 1,
+	.size = {
+		.width = 152,
+		.height = 115,
+	},
+};
+
 static const struct drm_display_mode innolux_n116bge_mode = {
 	.clock = 76420,
 	.hdisplay = 1366,
@@ -2449,6 +2472,9 @@  static const struct of_device_id platform_of_match[] = {
 	}, {
 		.compatible = "innolux,g121x1-l03",
 		.data = &innolux_g121x1_l03,
+	}, {
+		.compatible = "innolux,ls075at011",
+		.data = &innolux_ls075at011,
 	}, {
 		.compatible = "innolux,n116bge",
 		.data = &innolux_n116bge,