172 lines
4.8 KiB
Diff
172 lines
4.8 KiB
Diff
From 4364f4f0335c7f90067c92119eac2fc88269d0c0 Mon Sep 17 00:00:00 2001
|
|
From: The-going <48602507+The-going@users.noreply.github.com>
|
|
Date: Wed, 2 Feb 2022 19:34:55 +0300
|
|
Subject: [PATCH 047/158] drv:gpu:drm: panel-simple Add compability olinuxino
|
|
lcd
|
|
|
|
---
|
|
drivers/gpu/drm/panel/panel-simple.c | 126 ++++++++++++++++++++++++++-
|
|
1 file changed, 122 insertions(+), 4 deletions(-)
|
|
|
|
diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c
|
|
index 8a3b685c2..fbdeb6251 100644
|
|
--- a/drivers/gpu/drm/panel/panel-simple.c
|
|
+++ b/drivers/gpu/drm/panel/panel-simple.c
|
|
@@ -2944,6 +2944,44 @@ static const struct panel_desc okaya_rs800480t_7x0gp = {
|
|
.bus_format = MEDIA_BUS_FMT_RGB666_1X18,
|
|
};
|
|
|
|
+static const struct drm_display_mode olimex_vga_olinuxino_800_mode = {
|
|
+ .clock = 40000,
|
|
+ .hdisplay = 800,
|
|
+ .hsync_start = 800 + 40,
|
|
+ .hsync_end = 800 + 40 + 128,
|
|
+ .htotal = 800 + 40 + 128 + 88,
|
|
+ .vdisplay = 600,
|
|
+ .vsync_start = 600 + 5,
|
|
+ .vsync_end = 600 + 5 + 4,
|
|
+ .vtotal = 600 + 5 + 4 + 19,
|
|
+};
|
|
+
|
|
+static const struct drm_display_mode olimex_vga_olinuxino_1024_mode = {
|
|
+ .clock = 45000,
|
|
+ .hdisplay = 1024,
|
|
+ .hsync_start = 1024 + 16,
|
|
+ .hsync_end = 1024 + 16 + 10,
|
|
+ .htotal = 1024 + 16 + 10 + 150,
|
|
+ .vdisplay = 600,
|
|
+ .vsync_start = 600 + 2,
|
|
+ .vsync_end = 600 + 2 + 21,
|
|
+ .vtotal = 600 + 2 + 21 + 2,
|
|
+};
|
|
+
|
|
+
|
|
+static const struct drm_display_mode olimex_lcd_olinuxino_43_mode = {
|
|
+ .clock = 12000,
|
|
+ .hdisplay = 480,
|
|
+ .hsync_start = 480 + 8,
|
|
+ .hsync_end = 480 + 8 + 20,
|
|
+ .htotal = 480 + 8 + 20 + 23,
|
|
+ .vdisplay = 272,
|
|
+ .vsync_start = 272 + 4,
|
|
+ .vsync_end = 272 + 4 + 10,
|
|
+ .vtotal = 272 + 4 + 10 + 13,
|
|
+};
|
|
+
|
|
+
|
|
static const struct drm_display_mode olimex_lcd_olinuxino_43ts_mode = {
|
|
.clock = 9000,
|
|
.hdisplay = 480,
|
|
@@ -2956,8 +2994,8 @@ static const struct drm_display_mode olimex_lcd_olinuxino_43ts_mode = {
|
|
.vtotal = 272 + 8 + 5 + 3,
|
|
};
|
|
|
|
-static const struct panel_desc olimex_lcd_olinuxino_43ts = {
|
|
- .modes = &olimex_lcd_olinuxino_43ts_mode,
|
|
+static const struct panel_desc olimex_lcd_olinuxino_43 = {
|
|
+ .modes = &olimex_lcd_olinuxino_43_mode,
|
|
.num_modes = 1,
|
|
.size = {
|
|
.width = 95,
|
|
@@ -2966,6 +3004,71 @@ static const struct panel_desc olimex_lcd_olinuxino_43ts = {
|
|
.bus_format = MEDIA_BUS_FMT_RGB888_1X24,
|
|
};
|
|
|
|
+static const struct drm_display_mode olimex_lcd_olinuxino_5_mode = {
|
|
+ .clock = 33300,
|
|
+ .hdisplay = 800,
|
|
+ .hsync_start = 800 + 210,
|
|
+ .hsync_end = 800 + 210 + 20,
|
|
+ .htotal = 800 + 210 + 20 + 26,
|
|
+ .vdisplay = 480,
|
|
+ .vsync_start = 480 + 22,
|
|
+ .vsync_end = 480 + 22 + 10,
|
|
+ .vtotal = 480 + 22 + 10 + 13,
|
|
+};
|
|
+
|
|
+static const struct panel_desc olimex_lcd_olinuxino_5 = {
|
|
+ .modes = &olimex_lcd_olinuxino_5_mode,
|
|
+ .num_modes = 1,
|
|
+ .size = {
|
|
+ .width = 154,
|
|
+ .height = 86,
|
|
+ },
|
|
+ .bus_format = MEDIA_BUS_FMT_RGB888_1X24,
|
|
+};
|
|
+static const struct drm_display_mode olimex_lcd_olinuxino_7_mode = {
|
|
+ .clock = 33300,
|
|
+ .hdisplay = 800,
|
|
+ .hsync_start = 800 + 210,
|
|
+ .hsync_end = 800 + 210 + 20,
|
|
+ .htotal = 800 + 210 + 20 + 26,
|
|
+ .vdisplay = 480,
|
|
+ .vsync_start = 480 + 22,
|
|
+ .vsync_end = 480 + 22 + 10,
|
|
+ .vtotal = 480 + 22 + 10 + 13,
|
|
+};
|
|
+
|
|
+static const struct panel_desc olimex_lcd_olinuxino_7 = {
|
|
+ .modes = &olimex_lcd_olinuxino_7_mode,
|
|
+ .num_modes = 1,
|
|
+ .size = {
|
|
+ .width = 154,
|
|
+ .height = 86,
|
|
+ },
|
|
+ .bus_format = MEDIA_BUS_FMT_RGB888_1X24,
|
|
+};
|
|
+
|
|
+static const struct drm_display_mode olimex_lcd_olinuxino_10_mode = {
|
|
+ .clock = 45000,
|
|
+ .hdisplay = 1024,
|
|
+ .hsync_start = 1024 + 16,
|
|
+ .hsync_end = 1024 + 16 + 1,
|
|
+ .htotal = 1024 + 10 + 6 + 160,
|
|
+ .vdisplay = 600,
|
|
+ .vsync_start = 600 + 1,
|
|
+ .vsync_end = 600 + 1 + 1,
|
|
+ .vtotal = 600 + 1 + 1 + 22,
|
|
+};
|
|
+
|
|
+static const struct panel_desc olimex_lcd_olinuxino_10 = {
|
|
+ .modes = &olimex_lcd_olinuxino_10_mode,
|
|
+ .num_modes = 1,
|
|
+ .size = {
|
|
+ .width = 222,
|
|
+ .height = 143,
|
|
+ },
|
|
+ .bus_format = MEDIA_BUS_FMT_RGB888_1X24,
|
|
+};
|
|
+
|
|
/*
|
|
* 800x480 CVT. The panel appears to be quite accepting, at least as far as
|
|
* pixel clocks, but this is the timing that was being used in the Adafruit
|
|
@@ -4189,8 +4292,23 @@ static const struct of_device_id platform_of_match[] = {
|
|
.compatible = "okaya,rs800480t-7x0gp",
|
|
.data = &okaya_rs800480t_7x0gp,
|
|
}, {
|
|
- .compatible = "olimex,lcd-olinuxino-43-ts",
|
|
- .data = &olimex_lcd_olinuxino_43ts,
|
|
+ .compatible = "olimex,olinuxino-vga-800x600",
|
|
+ .data = &olimex_vga_olinuxino_800_mode,
|
|
+ }, {
|
|
+ .compatible = "olimex,olinuxino-vga-1024x768",
|
|
+ .data = &olimex_vga_olinuxino_1024_mode,
|
|
+ }, {
|
|
+ .compatible = "olimex,lcd-olinuxino-4.3",
|
|
+ .data = &olimex_lcd_olinuxino_43,
|
|
+ }, {
|
|
+ .compatible = "olimex,lcd-olinuxino-5",
|
|
+ .data = &olimex_lcd_olinuxino_5,
|
|
+ }, {
|
|
+ .compatible = "olimex,lcd-olinuxino-7",
|
|
+ .data = &olimex_lcd_olinuxino_7,
|
|
+ }, {
|
|
+ .compatible = "olimex,lcd-olinuxino-10",
|
|
+ .data = &olimex_lcd_olinuxino_10,
|
|
}, {
|
|
.compatible = "ontat,yx700wv03",
|
|
.data = &ontat_yx700wv03,
|
|
--
|
|
2.35.3
|
|
|