From 8c7a4b220a5bd0d438a7e3e09c13888367b74a17 Mon Sep 17 00:00:00 2001
From: Henrik Grimler <henrik@grimler.se>
Date: Sun, 16 Jan 2022 17:23:16 +0100
Subject: [PATCH] samsung-klimtlte: add mainline kernel variant

Use the new linux-postmarketos-exynos5 package.  A dtb for klimtwifi
is added as well, even though the device has not been ported yet.
---
 .../testing/device-samsung-klimtlte/APKBUILD  |  32 +++--
 .../device-samsung-klimtlte/deviceinfo        |   5 +
 ...samsung-document-Klimt-WiFi-board-bi.patch |  30 +++++
 ...s-Add-support-for-Samsung-Klimt-WiFi.patch | 111 ++++++++++++++++
 ...samsung-document-Klimt-LTE-board-bin.patch |  35 +++++
 ...ts-Add-support-for-Samsung-Klimt-LTE.patch | 120 ++++++++++++++++++
 main/linux-postmarketos-exynos5/APKBUILD      |   8 ++
 7 files changed, 331 insertions(+), 10 deletions(-)
 create mode 100644 main/linux-postmarketos-exynos5/0013-dt-bindings-arm-samsung-document-Klimt-WiFi-board-bi.patch
 create mode 100644 main/linux-postmarketos-exynos5/0014-ARM-dts-Add-support-for-Samsung-Klimt-WiFi.patch
 create mode 100644 main/linux-postmarketos-exynos5/0015-dt-bindings-arm-samsung-document-Klimt-LTE-board-bin.patch
 create mode 100644 main/linux-postmarketos-exynos5/0016-ARM-dts-Add-support-for-Samsung-Klimt-LTE.patch

diff --git a/device/testing/device-samsung-klimtlte/APKBUILD b/device/testing/device-samsung-klimtlte/APKBUILD
index 45fa667028f..5d2a564d95c 100644
--- a/device/testing/device-samsung-klimtlte/APKBUILD
+++ b/device/testing/device-samsung-klimtlte/APKBUILD
@@ -2,22 +2,20 @@
 # Reference: <https://postmarketos.org/devicepkg>
 pkgname=device-samsung-klimtlte
 pkgdesc="Samsung Galaxy Tab S 8.4 LTE"
-pkgver=0.1
+pkgver=1
 pkgrel=0
 url="https://postmarketos.org"
 license="MIT"
 arch="armv7"
 options="!check !archcheck"
-depends="
-	linux-samsung-klimtlte
-	mesa-dri-gallium
-	mkbootimg
-	postmarketos-base
-	msm-fb-refresher
-"
+depends="postmarketos-base mkbootimg"
 makedepends="devicepkg-dev"
 source="deviceinfo"
-subpackages="$pkgname-nonfree-firmware:nonfree_firmware"
+subpackages="
+	$pkgname-kernel-downstream:kernel_downstream
+	$pkgname-kernel-mainline:kernel_mainline
+	$pkgname-nonfree-firmware:nonfree_firmware
+"
 
 build() {
 	devicepkg_build $startdir $pkgname
@@ -27,10 +25,24 @@ package() {
 	devicepkg_package $startdir $pkgname
 }
 
+kernel_downstream() {
+	pkgdesc="Display and wifi works (see device table for details)"
+	depends="linux-samsung-klimtlte mesa-dri-gallium msm-fb-refresher"
+	devicepkg_subpackage_kernel $startdir $pkgname $subpkgname
+}
+
+kernel_mainline() {
+	pkgdesc="Mainline WIP (usb networking works but not much else)"
+	depends="linux-postmarketos-exynos5"
+	devicepkg_subpackage_kernel $startdir $pkgname $subpkgname
+}
+
 nonfree_firmware() {
 	pkgdesc="Non-free firmware for the Samsung Galaxy Tab S"
 	depends="firmware-samsung-klimt"
 	mkdir "$subpkgdir"
 }
 
-sha512sums="b3ccb88021887be5f76183e339642e9c3863f17b9c50f068f906a644edd444346ed12f2b539d1ac9ef32d40340ae74b935030173f932018f7a180c96d00966f4  deviceinfo"
+sha512sums="
+cba652c5df290ea3f03651a8cba3c9b7e288f3f2b3a01950c9ee7a0663f8e5da396c05ad3477c08b7a0b0304c7fcc33a671ef65e57d1a5c2132d1258cda6aea4  deviceinfo
+"
diff --git a/device/testing/device-samsung-klimtlte/deviceinfo b/device/testing/device-samsung-klimtlte/deviceinfo
index e91e626623a..e72d75c25df 100644
--- a/device/testing/device-samsung-klimtlte/deviceinfo
+++ b/device/testing/device-samsung-klimtlte/deviceinfo
@@ -7,6 +7,8 @@ deviceinfo_name="Samsung Galaxy Tab S 8.4 LTE"
 deviceinfo_manufacturer="Samsung"
 deviceinfo_codename="samsung-klimtlte"
 deviceinfo_year="2014"
+deviceinfo_append_dtb_mainline="true"
+deviceinfo_dtb_mainline="exynos5420-klimt-lte"
 deviceinfo_arch="armv7"
 
 # Device related
@@ -20,6 +22,7 @@ deviceinfo_screen_height="2560"
 deviceinfo_flash_method="heimdall-bootimg"
 deviceinfo_generate_bootimg="true"
 deviceinfo_bootimg_qcdt="false"
+deviceinfo_bootimg_append_seandroidenforce="true"
 deviceinfo_bootimg_mtk_mkimage="false"
 deviceinfo_bootimg_dtb_second="false"
 deviceinfo_flash_offset_base="0x10000000"
@@ -28,5 +31,7 @@ deviceinfo_flash_offset_ramdisk="0x01000000"
 deviceinfo_flash_offset_second="0x00f00000"
 deviceinfo_flash_offset_tags="0x00000100"
 deviceinfo_flash_pagesize="2048"
+
+# Heimdall related
 deviceinfo_flash_heimdall_partition_kernel="BOOT"
 deviceinfo_flash_heimdall_partition_system="SYSTEM"
diff --git a/main/linux-postmarketos-exynos5/0013-dt-bindings-arm-samsung-document-Klimt-WiFi-board-bi.patch b/main/linux-postmarketos-exynos5/0013-dt-bindings-arm-samsung-document-Klimt-WiFi-board-bi.patch
new file mode 100644
index 00000000000..d7e435bf8f0
--- /dev/null
+++ b/main/linux-postmarketos-exynos5/0013-dt-bindings-arm-samsung-document-Klimt-WiFi-board-bi.patch
@@ -0,0 +1,30 @@
+From 451f21e36dac14479287d47790e976adea002c13 Mon Sep 17 00:00:00 2001
+From: Henrik Grimler <henrik@grimler.se>
+Date: Mon, 20 Dec 2021 11:51:05 +0100
+Subject: [PATCH 13/16] dt-bindings: arm: samsung: document Klimt WiFi board
+ binding
+
+Add binding for Galaxy Tab S 8.4", based on Exynos 5420 with codename
+klimt-wifi. The tablet has similar hardware to Chagall WiFi, but a
+smaller battery, smaller screen and another touchscreen controller.
+
+Signed-off-by: Henrik Grimler <henrik@grimler.se>
+---
+ .../devicetree/bindings/arm/samsung/samsung-boards.yaml          | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/Documentation/devicetree/bindings/arm/samsung/samsung-boards.yaml b/Documentation/devicetree/bindings/arm/samsung/samsung-boards.yaml
+index c385e6bfaed1..abac01def63c 100644
+--- a/Documentation/devicetree/bindings/arm/samsung/samsung-boards.yaml
++++ b/Documentation/devicetree/bindings/arm/samsung/samsung-boards.yaml
+@@ -141,6 +141,7 @@ properties:
+           - enum:
+               - insignal,arndale-octa           # Insignal Arndale Octa
+               - samsung,chagall-wifi            # Samsung SM-T800
++              - samsung,klimt-wifi              # Samsung SM-T700
+               - samsung,smdk5420                # Samsung SMDK5420 eval
+           - const: samsung,exynos5420
+           - const: samsung,exynos5
+-- 
+2.34.1
+
diff --git a/main/linux-postmarketos-exynos5/0014-ARM-dts-Add-support-for-Samsung-Klimt-WiFi.patch b/main/linux-postmarketos-exynos5/0014-ARM-dts-Add-support-for-Samsung-Klimt-WiFi.patch
new file mode 100644
index 00000000000..a41a01e6e32
--- /dev/null
+++ b/main/linux-postmarketos-exynos5/0014-ARM-dts-Add-support-for-Samsung-Klimt-WiFi.patch
@@ -0,0 +1,111 @@
+From 2c8a691d2a52b047ab21aab3ba3764ba224210ed Mon Sep 17 00:00:00 2001
+From: Henrik Grimler <henrik@grimler.se>
+Date: Wed, 31 Mar 2021 21:45:11 +0200
+Subject: [PATCH 14/16] ARM: dts: Add support for Samsung Klimt WiFi
+
+Klimt WiFi has the product name Samsung Galaxy Tab S 8.4".  Board is
+based on Exynos 5420, and has similar hardware to Chagall WiFi.
+
+Signed-off-by: Henrik Grimler <henrik@grimler.se>
+---
+ arch/arm/boot/dts/Makefile                  |  1 +
+ arch/arm/boot/dts/exynos5420-klimt-wifi.dts | 75 +++++++++++++++++++++
+ 2 files changed, 76 insertions(+)
+ create mode 100644 arch/arm/boot/dts/exynos5420-klimt-wifi.dts
+
+diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
+index 088fcedb3212..336b725195d7 100644
+--- a/arch/arm/boot/dts/Makefile
++++ b/arch/arm/boot/dts/Makefile
+@@ -221,6 +221,7 @@ dtb-$(CONFIG_ARCH_EXYNOS5) += \
+ 	exynos5420-peach-pit.dtb \
+ 	exynos5420-smdk5420.dtb \
+ 	exynos5420-chagall-wifi.dtb \
++	exynos5420-klimt-wifi.dtb \
+ 	exynos5422-odroidhc1.dtb \
+ 	exynos5422-odroidxu3.dtb \
+ 	exynos5422-odroidxu3-lite.dtb \
+diff --git a/arch/arm/boot/dts/exynos5420-klimt-wifi.dts b/arch/arm/boot/dts/exynos5420-klimt-wifi.dts
+new file mode 100644
+index 000000000000..7c3ba5abd7bf
+--- /dev/null
++++ b/arch/arm/boot/dts/exynos5420-klimt-wifi.dts
+@@ -0,0 +1,75 @@
++// SPDX-License-Identifier: GPL-2.0
++/*
++ * Samsung's Exynos5420 Klimt WiFi board device tree source
++ *
++ * Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
++ *		http://www.samsung.com
++ * Copyright (c) 2022 Henrik Grimler
++ */
++
++/dts-v1/;
++#include "exynos5420-galaxy-tab-common.dtsi"
++
++/ {
++	model = "Samsung Klimt WiFi based on Exynos5420";
++	compatible = "samsung,klimt-wifi", "samsung,exynos5420", \
++		     "samsung,exynos5";
++};
++
++&ldo15_reg {
++	/* Unused */
++	regulator-name = "VDD_LDO15";
++	regulator-min-microvolt = <2800000>;
++	regulator-max-microvolt = <2800000>;
++};
++
++&ldo17_reg {
++	regulator-name = "VDD_VCI_3V0";
++	regulator-min-microvolt = <3000000>;
++	regulator-max-microvolt = <3000000>;
++
++	regulator-state-mem {
++		regulator-off-in-suspend;
++	};
++};
++
++&ldo28_reg {
++	regulator-name = "VDD3_1V8";
++	regulator-min-microvolt = <1800000>;
++	regulator-max-microvolt = <1800000>;
++
++	regulator-state-mem {
++		regulator-off-in-suspend;
++	};
++};
++
++&ldo29_reg {
++	regulator-name = "VDDR_1V6";
++	regulator-min-microvolt = <1600000>;
++	regulator-max-microvolt = <1600000>;
++
++	regulator-state-mem {
++		regulator-off-in-suspend;
++	};
++};
++
++&ldo31_reg {
++	/* Unused */
++	regulator-name = "VDD_LDO31";
++	regulator-min-microvolt = <1800000>;
++	regulator-max-microvolt = <1800000>;
++};
++
++&ldo32_reg {
++	regulator-name = "VDD_TSP_1V8";
++	regulator-min-microvolt = <1800000>;
++	regulator-max-microvolt = <1800000>;
++
++	regulator-state-mem {
++		regulator-off-in-suspend;
++	};
++};
++
++&mmc_2 {
++	sd-uhs-sdr104;
++};
+-- 
+2.34.1
+
diff --git a/main/linux-postmarketos-exynos5/0015-dt-bindings-arm-samsung-document-Klimt-LTE-board-bin.patch b/main/linux-postmarketos-exynos5/0015-dt-bindings-arm-samsung-document-Klimt-LTE-board-bin.patch
new file mode 100644
index 00000000000..0bd8359e972
--- /dev/null
+++ b/main/linux-postmarketos-exynos5/0015-dt-bindings-arm-samsung-document-Klimt-LTE-board-bin.patch
@@ -0,0 +1,35 @@
+From 56466328a5515f28e2fb9d78e155dadeab38b9c2 Mon Sep 17 00:00:00 2001
+From: Henrik Grimler <henrik@grimler.se>
+Date: Sun, 16 Jan 2022 16:13:44 +0100
+Subject: [PATCH 15/16] dt-bindings: arm: samsung: document Klimt LTE board
+ binding
+
+Add binding for Galaxy Tab S 8.4" LTE variant, based on Exynos 5420
+with codename klimt-lte. The tablet has similar hardware to Klimt
+WiFi but with:
+
+* an Intel 6360 modem
+* a sim-card reader
+* a TMD3782 light sensor, instead of Capella CM3323
+* a Semtech SX9500 proximity sensor
+
+Signed-off-by: Henrik Grimler <henrik@grimler.se>
+---
+ .../devicetree/bindings/arm/samsung/samsung-boards.yaml          | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/Documentation/devicetree/bindings/arm/samsung/samsung-boards.yaml b/Documentation/devicetree/bindings/arm/samsung/samsung-boards.yaml
+index abac01def63c..83142ab8526d 100644
+--- a/Documentation/devicetree/bindings/arm/samsung/samsung-boards.yaml
++++ b/Documentation/devicetree/bindings/arm/samsung/samsung-boards.yaml
+@@ -142,6 +142,7 @@ properties:
+               - insignal,arndale-octa           # Insignal Arndale Octa
+               - samsung,chagall-wifi            # Samsung SM-T800
+               - samsung,klimt-wifi              # Samsung SM-T700
++              - samsung,klimt-lte               # Samsung SM-T705
+               - samsung,smdk5420                # Samsung SMDK5420 eval
+           - const: samsung,exynos5420
+           - const: samsung,exynos5
+-- 
+2.34.1
+
diff --git a/main/linux-postmarketos-exynos5/0016-ARM-dts-Add-support-for-Samsung-Klimt-LTE.patch b/main/linux-postmarketos-exynos5/0016-ARM-dts-Add-support-for-Samsung-Klimt-LTE.patch
new file mode 100644
index 00000000000..f931689c2fc
--- /dev/null
+++ b/main/linux-postmarketos-exynos5/0016-ARM-dts-Add-support-for-Samsung-Klimt-LTE.patch
@@ -0,0 +1,120 @@
+From 757d6e257d04e97f14ffa46779991b7143095f1c Mon Sep 17 00:00:00 2001
+From: Henrik Grimler <henrik@grimler.se>
+Date: Sun, 16 Jan 2022 16:29:43 +0100
+Subject: [PATCH 16/16] ARM: dts: Add support for Samsung Klimt LTE
+
+Klimt LTE has the product name Samsung Galaxy Tab S 8.4".  Board is
+based on Exynos 5420, and has similar hardware to Klimt WiFi and
+Chagall WiFi.
+
+Signed-off-by: Henrik Grimler <henrik@grimler.se>
+---
+ arch/arm/boot/dts/Makefile                 |  1 +
+ arch/arm/boot/dts/exynos5420-klimt-lte.dts | 83 ++++++++++++++++++++++
+ 2 files changed, 84 insertions(+)
+ create mode 100644 arch/arm/boot/dts/exynos5420-klimt-lte.dts
+
+diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
+index 336b725195d7..863d35173704 100644
+--- a/arch/arm/boot/dts/Makefile
++++ b/arch/arm/boot/dts/Makefile
+@@ -221,6 +221,7 @@ dtb-$(CONFIG_ARCH_EXYNOS5) += \
+ 	exynos5420-peach-pit.dtb \
+ 	exynos5420-smdk5420.dtb \
+ 	exynos5420-chagall-wifi.dtb \
++	exynos5420-klimt-lte.dtb \
+ 	exynos5420-klimt-wifi.dtb \
+ 	exynos5422-odroidhc1.dtb \
+ 	exynos5422-odroidxu3.dtb \
+diff --git a/arch/arm/boot/dts/exynos5420-klimt-lte.dts b/arch/arm/boot/dts/exynos5420-klimt-lte.dts
+new file mode 100644
+index 000000000000..2a9af1f18de7
+--- /dev/null
++++ b/arch/arm/boot/dts/exynos5420-klimt-lte.dts
+@@ -0,0 +1,83 @@
++// SPDX-License-Identifier: GPL-2.0
++/*
++ * Samsung's Exynos5420 Klimt LTE board device tree source
++ *
++ * Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
++ *		http://www.samsung.com
++ * Copyright (c) 2022 Henrik Grimler
++ */
++
++/dts-v1/;
++#include "exynos5420-galaxy-tab-common.dtsi"
++
++/ {
++	model = "Samsung Klimt LTE based on Exynos5420";
++	compatible = "samsung,klimt-lte", "samsung,exynos5420", \
++		     "samsung,exynos5";
++};
++
++&ldo15_reg {
++	regulator-name = "VDD_LEDA_2V8";
++	regulator-min-microvolt = <2800000>;
++	regulator-max-microvolt = <2800000>;
++
++	regulator-state-mem {
++		regulator-on-in-suspend;
++	};
++};
++
++&ldo17_reg {
++	regulator-name = "VDD_VCI_3V0";
++	regulator-min-microvolt = <3000000>;
++	regulator-max-microvolt = <3000000>;
++
++	regulator-state-mem {
++		regulator-off-in-suspend;
++	};
++};
++
++&ldo28_reg {
++	regulator-name = "VDD3_1V8";
++	regulator-min-microvolt = <1800000>;
++	regulator-max-microvolt = <1800000>;
++
++	regulator-state-mem {
++		regulator-off-in-suspend;
++	};
++};
++
++&ldo29_reg {
++	regulator-name = "VDDR_1V6";
++	regulator-min-microvolt = <1600000>;
++	regulator-max-microvolt = <1600000>;
++
++	regulator-state-mem {
++		regulator-off-in-suspend;
++	};
++};
++
++&ldo31_reg {
++	regulator-name = "VDD_GRIP_1V8";
++	regulator-min-microvolt = <1800000>;
++	regulator-max-microvolt = <1800000>;
++	regulator-always-on;
++	regulator-boot-on;
++
++	regulator-state-mem {
++		regulator-off-in-suspend;
++	};
++};
++
++&ldo32_reg {
++	regulator-name = "VDD_TSP_1V8";
++	regulator-min-microvolt = <1800000>;
++	regulator-max-microvolt = <1800000>;
++
++	regulator-state-mem {
++		regulator-off-in-suspend;
++	};
++};
++
++&mmc_2 {
++	sd-uhs-sdr104;
++};
+-- 
+2.34.1
+
diff --git a/main/linux-postmarketos-exynos5/APKBUILD b/main/linux-postmarketos-exynos5/APKBUILD
index 3c62901f0f0..bd1e6ae46f0 100644
--- a/main/linux-postmarketos-exynos5/APKBUILD
+++ b/main/linux-postmarketos-exynos5/APKBUILD
@@ -50,6 +50,10 @@ source="
 	0010-dt-bindings-arm-samsung-document-Chagall-WiFi-board-.patch
 	0011-ARM-exynos-only-do-SMC_CMD_CPU1BOOT-call-on-Exynos4.patch
 	0012-ARM-dts-Add-support-for-Samsung-Chagall-WiFi.patch
+	0013-dt-bindings-arm-samsung-document-Klimt-WiFi-board-bi.patch
+	0014-ARM-dts-Add-support-for-Samsung-Klimt-WiFi.patch
+	0015-dt-bindings-arm-samsung-document-Klimt-LTE-board-bin.patch
+	0016-ARM-dts-Add-support-for-Samsung-Klimt-LTE.patch
 "
 builddir="$srcdir/linux-${_kernver//_/-}"
 
@@ -93,4 +97,8 @@ f031b887181d645075c7e4b2d93d60f0b0932e256f6b292850bab4b7480b4289f4a89f43f7e4a6d9
 b0595d89a559c14e016f0ef65f526240ab2a85a0397fed1b9a304aca2d7a946496891aad33dcd0fae77fc9d4f33baba58503595f97132af90efdaf9de8d78e4c  0010-dt-bindings-arm-samsung-document-Chagall-WiFi-board-.patch
 8d8be7677e67c41a3eafbf5fff13edeb6be88056a45ab55347544ab883fd3e50d15e77a929f53bd2a1917c9d51cec3d5a78205b3fade0d682081bb5e0317ee81  0011-ARM-exynos-only-do-SMC_CMD_CPU1BOOT-call-on-Exynos4.patch
 d552e78c7a7c029274766200dba88a9af3b22e60f393e1fcd345a527de26c203222308ecce0b212ea8f55a5287737b6ee8730c69680d585f8ce4b45faebf3d20  0012-ARM-dts-Add-support-for-Samsung-Chagall-WiFi.patch
+024b32657af97fce4dc6c524972c9f0e247a7b897f3842d60e9c91a4eb90d41a1c4019e6a5a188f535c3857d6d5b629d7b1f48fc71a445e17a5fb1be77bd48f9  0013-dt-bindings-arm-samsung-document-Klimt-WiFi-board-bi.patch
+36a175f5c6775e5b03a521ac8c57b1dafb565de78bbe46d4a77141f362eeb76f5872b6cb380401f2987c6dd480affbc08954ec9b9adfb4ea21ef0d670f3e858f  0014-ARM-dts-Add-support-for-Samsung-Klimt-WiFi.patch
+a0d5bf1292155da056b07a2384885ca11a4602e1ade3f0672c92e537cce6f5bd631ef1e0389418f5259468f637577ed1335293cb70764e5de23ad134a0725752  0015-dt-bindings-arm-samsung-document-Klimt-LTE-board-bin.patch
+70111f8591a1a566473dbb04a4dcfded110789196922d166719604afcfc6c6d5d5fd66d75c1e020be055c86c2c7b3deac59a13f593d37620027fc75bcfaad7af  0016-ARM-dts-Add-support-for-Samsung-Klimt-LTE.patch
 "
-- 
GitLab