openwrt/target/linux/bcm27xx/patches-6.6/950-1239-drivers-gpu-drm-panel-Added-waveshare-5.0inch-6.25in.patch
Álvaro Fernández Rojas 538a1d740c bcm27xx: update to latest RPi patches
The patches were generated from the RPi repo with the following command:
git format-patch v6.6.58..rpi-6.6.y

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2024-10-31 13:44:23 +01:00

83 lines
2.2 KiB
Diff

From f955b7838f9ce72e48b29e58d65e0642d097c8b3 Mon Sep 17 00:00:00 2001
From: eng33 <eng33@waveshare.com>
Date: Wed, 4 Sep 2024 10:48:22 +0800
Subject: [PATCH 1239/1350] drivers:gpu:drm:panel: Added waveshare 5.0inch,
6.25inch, and 8.8inch dsi screen devices
Signed-off-by: eng33 <eng33@waveshare.com>
---
drivers/gpu/drm/panel/panel-waveshare-dsi.c | 55 +++++++++++++++++++++
1 file changed, 55 insertions(+)
--- a/drivers/gpu/drm/panel/panel-waveshare-dsi.c
+++ b/drivers/gpu/drm/panel/panel-waveshare-dsi.c
@@ -150,6 +150,51 @@ static const struct drm_display_mode ws_
.vtotal = 720 + 8 + 4 + 16,
};
+/* 5.0inch 720x1280
+ * https://www.waveshare.com/5inch-dsi-lcd-d.htm
+ */
+static const struct drm_display_mode ws_panel_5_0_mode = {
+ .clock = 83333,
+ .hdisplay = 720,
+ .hsync_start = 720 + 100,
+ .hsync_end = 720 + 100 + 80,
+ .htotal = 720 + 100 + 80 + 100,
+ .vdisplay = 1280,
+ .vsync_start = 1280 + 20,
+ .vsync_end = 1280 + 20 + 20,
+ .vtotal = 1280 + 20 + 20 + 20,
+};
+
+/* 6.25inch 720x1560
+ * https://www.waveshare.com/6.25inch-dsi-lcd.htm
+ */
+static const struct drm_display_mode ws_panel_6_25_mode = {
+ .clock = 83333,
+ .hdisplay = 720,
+ .hsync_start = 720 + 50,
+ .hsync_end = 720 + 50 + 50,
+ .htotal = 720 + 50 + 50 + 50,
+ .vdisplay = 1560,
+ .vsync_start = 1560 + 20,
+ .vsync_end = 1560 + 20 + 20,
+ .vtotal = 1560 + 20 + 20 + 20,
+};
+
+/* 8.8inch 480x1920
+ * https://www.waveshare.com/8.8inch-dsi-lcd.htm
+ */
+static const struct drm_display_mode ws_panel_8_8_mode = {
+ .clock = 83333,
+ .hdisplay = 480,
+ .hsync_start = 480 + 50,
+ .hsync_end = 480 + 50 + 50,
+ .htotal = 480 + 50 + 50 + 50,
+ .vdisplay = 1920,
+ .vsync_start = 1920 + 20,
+ .vsync_end = 1920 + 20 + 20,
+ .vtotal = 1920 + 20 + 20 + 20,
+};
+
static struct ws_panel *panel_to_ts(struct drm_panel *panel)
{
return container_of(panel, struct ws_panel, base);
@@ -413,6 +458,16 @@ static const struct of_device_id ws_pane
.compatible = "waveshare,4inch-panel",
.data = &ws_panel_4_mode,
}, {
+ .compatible = "waveshare,5.0inch-panel",
+ .data = &ws_panel_5_0_mode,
+ }, {
+ .compatible = "waveshare,6.25inch-panel",
+ .data = &ws_panel_6_25_mode,
+ }, {
+ .compatible = "waveshare,8.8inch-panel",
+ .data = &ws_panel_8_8_mode,
+ }, {
+ }, {
/* sentinel */
}
};