armbian_build/patch/kernel/archive/sunxi-6.6/patches.armbian/drv-gpu-drm-panel-simple-Add-compability-olinuxino-lcd.patch
Gunjan Gupta d1186b8a0e kernel: sunxi: Add patches for 6.6 kernel
I have changed the way the patches are generated a bit. Instead of using orange-pi branch from megous tree for 6.6 kernel, I have used the following kernel branches

	a83t-suspend, af8133j, anx, audio,
	axp, cam, drm, err, fixes, mbus,
	modem, opi3, pb, pinetab, pp, ppkb,
	samuel, speed, tbs-a711, ths

These branches were carefully chosen to include only allwinner related patches and remove importing of the rockchip related patches into the allwinner kernel.

Following patches are modified to fix patch application failure
- patches.armbian/arm64-dts-sun50i-h616-orangepi-zero2-reg_usb1_vbus-status-ok.patch
- patches.armbian/arm64-dts-sun50i-h616-orangepi-zero2-Enable-GPU-mali.patch
- patches.armbian/arm64-dts-allwinner-h616-Add-efuse_xlate-cpu-frequency-scaling-v1_6_2.patch
- patches.armbian/arm64-dts-allwinner-h616-LED-green_power_on-red_status_heartbeat.patch
- patches.armbian/arm64-dts-allwinner-overlay-Add-Overlays-for-sunxi64.patch
- patches.armbian/arm64-dts-sun50i-h616-bigtreetech-cb1.patch

Following patches are modified because of kernel api change to fix compilation failure
- patches.armbian/drv-gpu-drm-sun4i-Add-HDMI-audio-sun4i-hdmi-encoder.patch
- patches.armbian/drv-of-Device-Tree-Overlay-ConfigFS-interface.patch
2023-10-30 22:58:11 +05:30

171 lines
4.8 KiB
Diff

From 0000000000000000000000000000000000000000 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: 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 dd7928d9570f..bc6b065ba889 100644
--- a/drivers/gpu/drm/panel/panel-simple.c
+++ b/drivers/gpu/drm/panel/panel-simple.c
@@ -3099,6 +3099,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,
@@ -3111,8 +3149,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,
@@ -3121,6 +3159,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
@@ -4387,8 +4490,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,
--
Armbian