From d4b54d1249f04f7a025263ac0c1ffa799b96341c Mon Sep 17 00:00:00 2001 From: Affe Null Date: Sat, 25 Feb 2023 15:12:52 +0100 Subject: [PATCH] linux-postmarketos-exynos4: Add missing ea8061 panel driver (MR 3549) Add a driver for the Magnachip EA8061 panel found on some Samsung Galaxy Note II devices. Split the device trees into two (one for devices with the already supported S6EVR02 panel and one for the new EA8061 panel). Note: I didn't write this driver myself. Just like the old S6EVR02 driver, it has been ported from https://github.com/fourkbomb/linux to the latest mainline Linux version. --- .../0008-Add-s6evr02-panel.patch | 906 -------- ...atch => 0008-samsung-t0lte-add-leds.patch} | 2 +- ...ort-for-Samsung-Galaxy-Note-2-GT-N71.patch | 1847 +++++++++++++++++ .../linux-postmarketos-exynos4/APKBUILD | 12 +- .../config-postmarketos-exynos4.armv7 | 3 +- 5 files changed, 1856 insertions(+), 914 deletions(-) delete mode 100644 device/community/linux-postmarketos-exynos4/0008-Add-s6evr02-panel.patch rename device/community/linux-postmarketos-exynos4/{0009-samsung-t0lte-add-leds.patch => 0008-samsung-t0lte-add-leds.patch} (98%) create mode 100644 device/community/linux-postmarketos-exynos4/0009-Add-display-support-for-Samsung-Galaxy-Note-2-GT-N71.patch diff --git a/device/community/linux-postmarketos-exynos4/0008-Add-s6evr02-panel.patch b/device/community/linux-postmarketos-exynos4/0008-Add-s6evr02-panel.patch deleted file mode 100644 index 415e4e70c..000000000 --- a/device/community/linux-postmarketos-exynos4/0008-Add-s6evr02-panel.patch +++ /dev/null @@ -1,906 +0,0 @@ -From 550e86f8492ee7b1f69a4d51b6d0be3baf8abf74 Mon Sep 17 00:00:00 2001 -From: Jack Knightly -Date: Fri, 14 Oct 2022 20:58:17 +0200 -Subject: [PATCH 08/11] Add s6evr02 panel - -This adds the s6evr02 panel which the Samsung Galaxy Note II -uses. After this is merged I will create another MR for t0lte to be -added as a new device. - -PLEASE NOTE - I did not write the panel driver, but merely brought up -an old driver that worked with mainline a few years ago. The driver -was written by forkbomb and can be found here: -https://github.com/fourkbomb/linux/blob/master/drivers/gpu/drm/panel/panel-samsung-s6evr02.c -Given it is based on another panel driver that is still in mainline -today, I applied the commits that that panel driver underwent between -then and now, and it works. ---- - arch/arm/boot/dts/exynos4412-n710x.dts | 69 ++ - drivers/gpu/drm/panel/Kconfig | 6 + - drivers/gpu/drm/panel/Makefile | 1 + - drivers/gpu/drm/panel/panel-samsung-s6evr02.c | 764 ++++++++++++++++++ - 4 files changed, 840 insertions(+) - create mode 100644 drivers/gpu/drm/panel/panel-samsung-s6evr02.c - -diff --git a/arch/arm/boot/dts/exynos4412-n710x.dts b/arch/arm/boot/dts/exynos4412-n710x.dts -index 9ae05b0d684c..da0e475b1063 100644 ---- a/arch/arm/boot/dts/exynos4412-n710x.dts -+++ b/arch/arm/boot/dts/exynos4412-n710x.dts -@@ -38,6 +38,75 @@ &cam_io_reg { - status = "okay"; - }; - -+ -+&dsi_0 { -+ vddcore-supply = <&ldo8_reg>; -+ vddio-supply = <&ldo10_reg>; -+ samsung,burst-clock-frequency = <500000000>; -+ samsung,esc-clock-frequency = <20000000>; -+ samsung,pll-clock-frequency = <24000000>; -+ status = "okay"; -+ -+ ports { -+ #address-cells = <1>; -+ #size-cells = <0>; -+ -+ port@1 { -+ reg = <1>; -+ -+ dsi_out: endpoint@0 { -+ samsung,burst-clock-frequency = <500000000>; -+ samsung,esc-clock-frequency = <20000000>; -+ //status = "disabled"; -+ remote-endpoint = <&dsi_in_s6evr02>; -+ status = "okay"; -+ }; -+ -+ }; -+ -+ }; -+ -+ s6evr02: panel-s6evr02@0 { -+ compatible = "samsung,s6evr02"; -+ reg = <0>; -+ vdd3-supply = <&ldo13_reg>; -+ vci-supply = <&ldo25_reg>; -+ reset-gpios = <&gpf2 1 GPIO_ACTIVE_HIGH>; -+ power-on-delay = <50>; -+ reset-delay = <100>; -+ init-delay = <100>; -+ panel-width-mm = <69>; -+ panel-height-mm = <123>; -+ // HIGH means s6evr02 -+ present-gpios = <&gpf1 0 GPIO_ACTIVE_HIGH>; -+ //status = "disabled"; -+ status = "okay"; -+ -+ display-timings { -+ timing0_s6evr02: timing-0 { -+ clock-frequency = <62614944>; -+ hactive = <720>; -+ vactive = <1280>; -+ hfront-porch = <70>; -+ hback-porch = <40>; -+ hsync-len = <3>; -+ vfront-porch = <13>; -+ vback-porch = <1>; -+ vsync-len = <2>; -+ }; -+ }; -+ -+ port { -+ dsi_in_s6evr02: endpoint { -+ //status = "disabled"; -+ remote-endpoint = <&dsi_out>; -+ status = "okay"; -+ }; -+ }; -+ }; -+ -+}; -+ - &i2c_3 { - samsung,i2c-sda-delay = <100>; - samsung,i2c-slave-addr = <0x10>; -diff --git a/drivers/gpu/drm/panel/Kconfig b/drivers/gpu/drm/panel/Kconfig -index a582ddd583c2..5e6064475f44 100644 ---- a/drivers/gpu/drm/panel/Kconfig -+++ b/drivers/gpu/drm/panel/Kconfig -@@ -536,6 +536,12 @@ config DRM_PANEL_SAMSUNG_S6E8AA0 - depends on OF - select DRM_MIPI_DSI - select VIDEOMODE_HELPERS -+ -+config DRM_PANEL_SAMSUNG_S6EVR02 -+ tristate "Samsung S6EVR02 DSI video mode panel" -+ depends on OF -+ select DRM_MIPI_DSI -+ select VIDEOMODE_HELPERS - - config DRM_PANEL_SAMSUNG_SOFEF00 - tristate "Samsung sofef00/s6e3fc2x01 OnePlus 6/6T DSI cmd mode panels" -diff --git a/drivers/gpu/drm/panel/Makefile b/drivers/gpu/drm/panel/Makefile -index 34e717382dbb..b3d149475a38 100644 ---- a/drivers/gpu/drm/panel/Makefile -+++ b/drivers/gpu/drm/panel/Makefile -@@ -54,6 +54,7 @@ obj-$(CONFIG_DRM_PANEL_SAMSUNG_S6E63M0_SPI) += panel-samsung-s6e63m0-spi.o - obj-$(CONFIG_DRM_PANEL_SAMSUNG_S6E63M0_DSI) += panel-samsung-s6e63m0-dsi.o - obj-$(CONFIG_DRM_PANEL_SAMSUNG_S6E88A0_AMS452EF01) += panel-samsung-s6e88a0-ams452ef01.o - obj-$(CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0) += panel-samsung-s6e8aa0.o -+obj-$(CONFIG_DRM_PANEL_SAMSUNG_S6EVR02) += panel-samsung-s6evr02.o - obj-$(CONFIG_DRM_PANEL_SAMSUNG_SOFEF00) += panel-samsung-sofef00.o - obj-$(CONFIG_DRM_PANEL_SEIKO_43WVF1G) += panel-seiko-43wvf1g.o - obj-$(CONFIG_DRM_PANEL_SHARP_LQ101R1SX01) += panel-sharp-lq101r1sx01.o -diff --git a/drivers/gpu/drm/panel/panel-samsung-s6evr02.c b/drivers/gpu/drm/panel/panel-samsung-s6evr02.c -new file mode 100644 -index 000000000000..f1612a6c262c ---- /dev/null -+++ b/drivers/gpu/drm/panel/panel-samsung-s6evr02.c -@@ -0,0 +1,764 @@ -+// SPDX-License-Identifier: GPL-2.0-only -+/* -+ * MIPI-DSI based S6EVR02 AMOLED LCD 5.5 inch panel driver. -+ * -+ * Copyright (c) 2017 Simon Shields, -+ * -+ * Based on the s6e8aa0 panel driver, -+ * Copyright (c) 2013 Samsung Electronics Co., Ltd -+ * -+ * Inki Dae, -+ * Donghwa Lee, -+ * Joongmock Shin -+ * Eunchul Kim -+ * Tomasz Figa -+ * Andrzej Hajda -+*/ -+ -+#include -+#include -+#include -+#include -+#include -+ -+#include -+#include