diff --git a/device/testing/device-google-peach-pi/APKBUILD b/device/testing/device-google-peach-pi/APKBUILD
new file mode 100644
index 0000000000000000000000000000000000000000..97adf16263e94ef368337d08640f3ad4efa5d72e
--- /dev/null
+++ b/device/testing/device-google-peach-pi/APKBUILD
@@ -0,0 +1,116 @@
+# Reference: <https://postmarketos.org/devicepkg>
+# Maintainer: Jenneron <jenneron@protonmail.com>
+# Co-Maintainer: Iourine <iourine@iourine.msk.su>
+pkgname=device-google-peach-pi
+pkgdesc="Samsung Chromebook 2 (13.3 inch)"
+pkgver=1
+pkgrel=0
+url="https://postmarketos.org"
+license="MIT"
+arch="armv7"
+options="!check !archcheck"
+depends="
+	alsa-ucm-conf
+	mesa-dri-gallium
+	postmarketos-base
+	linux-postmarketos-exynos5
+	u-boot-peach-pi
+"
+makedepends="
+	devicepkg-dev
+	u-boot-tools
+"
+source="
+	deviceinfo
+	i3wm/xorg.conf.d/90-tap-to-click.conf
+	modprobe.d/mali.conf
+	uboot-script.cmd
+	ucm/Peach-Pi-I2S-MA.conf
+	ucm/HiFi.conf
+	mpv/mpv.conf.wayland
+	mpv/mpv.conf.xorg
+	sway/tinydm/10-no-hardware-cursor.sh
+"
+subpackages="
+	$pkgname-i3wm
+	$pkgname-mpv-wayland:mpv_wayland
+	$pkgname-mpv-xorg:mpv_xorg
+	$pkgname-nonfree-firmware:nonfree_firmware
+	$pkgname-sway
+"
+
+build() {
+	devicepkg_build $startdir $pkgname
+
+	mkimage \
+		-A arm \
+		-O linux \
+		-T script \
+		-C none \
+		-a 0 \
+		-e 0 \
+		-n postmarketos \
+		-d "$srcdir"/uboot-script.cmd \
+		"$srcdir"/boot.scr
+}
+
+package() {
+	devicepkg_package $startdir $pkgname
+
+	# Block panfrost probe as it causes segfault in X11
+	install -Dm644 "$srcdir"/mali.conf \
+		"$pkgdir"/etc/modprobe.d/mali.conf
+
+	# Alsa UCM configs
+	install -Dm644 "$srcdir"/Peach-Pi-I2S-MA.conf \
+		"$pkgdir"/usr/share/alsa/ucm2/conf.d/Peach-Pi-I2S-MA/Peach-Pi-I2S-MA.conf
+	install -Dm644 "$srcdir"/HiFi.conf \
+		"$pkgdir"/usr/share/alsa/ucm2/conf.d/Peach-Pi-I2S-MA/HiFi.conf
+
+	# U-Boot script
+	install -Dm644 "$srcdir"/boot.scr \
+		"$pkgdir"/boot/boot.scr
+}
+
+i3wm() {
+	install_if="$pkgname=$pkgver-r$pkgrel postmarketos-ui-i3wm"
+	install -Dm644 "$srcdir"/90-tap-to-click.conf \
+		"$subpkgdir"/etc/X11/xorg.conf.d/90-tap-to-click.conf
+}
+
+mpv_wayland() {
+	# Looks like wayland libs are installed with some x11 UIs too, so match wlroots here
+	install_if="$pkgname=$pkgver-r$pkgrel mpv wlroots"
+	install -Dm644 "$srcdir"/mpv.conf.wayland \
+		"$subpkgdir"/etc/mpv/mpv.conf
+}
+
+mpv_xorg() {
+	install_if="$pkgname=$pkgver-r$pkgrel mpv xorg-server"
+	install -Dm644 "$srcdir"/mpv.conf.xorg \
+		"$subpkgdir"/etc/mpv/mpv.conf
+}
+
+nonfree_firmware() {
+	pkgdesc="WiFi/BT firmware"
+	depends="linux-firmware-mrvl"
+	mkdir "$subpkgdir"
+}
+
+sway() {
+	install_if="$pkgname=$pkgver-r$pkgrel postmarketos-ui-sway"
+	install -Dm755 "$srcdir"/10-no-hardware-cursor.sh \
+		"$subpkgdir"/etc/tinydm.d/env-wayland.d/10-no-hardware-cursor.sh
+}
+
+sha512sums="
+b3384016cfa7359602b0674110c72f6759d350580cf30b111ac927f4df517bbafc4bdd77c9f338cf1aa7c567f8932302b2570cc207644fa2454a0d92d24edb20  deviceinfo
+e53ca475830930ecfc1fd537702e850e2abcb66fbed521cb6c3a2918d762649254bd0244ec93a47b20dfc593ec3afc9bdebdec1759a7bc96dcbe4800f40893da  90-tap-to-click.conf
+c5fdd5a39a41044343d937a1ad31cc6bb893f19a329beb4ce09249064cac066d643c84ffcbfcd794113c228c5a56e28c82812092751546b49ab31142dc8245b1  mali.conf
+56737f856b252f6d657015ba6510c8e7fa71dc7e4897c10dabe6848ef263336789103a32f6d6189764c261af4e739f4444195c87e97075356f1dbd7f8a0de897  uboot-script.cmd
+2ccec36a88003673471fcec7c0e408c24892e43701d88986c6a85a7882ac275565eb3abf566709306ddc16a62b4558ebceffbc289e7c95336ba28262719c6413  Peach-Pi-I2S-MA.conf
+a95701b30c6b7535a60d0db932d018673a72346974cca86b9a1212fa8c66b1ad5fffaa0c6ac5fe5ead2c91a90375d5d24f74fd571300a21c53e4a2c16953c170  HiFi.conf
+8f9dc3c7caeab6c5321dc2bf498f1a03a793f23cb776763316bc356b9d433d7a3337e61154069464dcda200bf390b99f3be8f657a40c6d2f6be3cbc6fb751080  mpv.conf.wayland
+d6bc39df48ba0e985a796426039205335adf1c91b9c150b05a4239339fc78b1748b3a83c699de69e9a5829f29573a323f40788da58ed15b1951de1eab7e31c3d  mpv.conf.xorg
+78e566bf3a597b9b5f73f686feb93ae61d1bed350366428d74c7735f1f82ab390f47ba9deb9d21e8dfcee251dc6178956838ca1b34838bb0a7d740be0e2c8330  10-no-hardware-cursor.sh
+"
diff --git a/device/testing/device-google-peach-pi/deviceinfo b/device/testing/device-google-peach-pi/deviceinfo
new file mode 100644
index 0000000000000000000000000000000000000000..a1961d1ede265e98febed14dc26b22fb377acc7c
--- /dev/null
+++ b/device/testing/device-google-peach-pi/deviceinfo
@@ -0,0 +1,28 @@
+# Reference: <https://postmarketos.org/deviceinfo>
+# Please use double quotes only. You can source this file in shell
+# scripts.
+
+deviceinfo_format_version="0"
+deviceinfo_name="Samsung Chromebook 2 13.3\""
+deviceinfo_manufacturer="Samsung"
+deviceinfo_codename="google-peach-pi"
+deviceinfo_year="2014"
+deviceinfo_dtb="exynos5800-peach-pi"
+deviceinfo_modules_initfs="drm-dp-aux-bus panel-edp drm-kms-helper cros-ec-keyb sbs-battery tps65090-charger"
+deviceinfo_arch="armv7"
+
+# Device related
+deviceinfo_chassis="laptop"
+deviceinfo_keyboard="true"
+deviceinfo_external_storage="true"
+deviceinfo_screen_width="1920"
+deviceinfo_screen_height="1080"
+
+# DRM is available, so all UIs can work with software rendering
+deviceinfo_gpu_accelerated="true"
+
+# Bootloader related
+deviceinfo_flash_method="none"
+deviceinfo_cgpt_kpart="/usr/share/u-boot/google-peach-pi/u-boot-dtb.img.kpart"
+deviceinfo_cgpt_kpart_start="8192"
+deviceinfo_cgpt_kpart_size="32768"
diff --git a/device/testing/device-google-peach-pi/i3wm/xorg.conf.d/90-tap-to-click.conf b/device/testing/device-google-peach-pi/i3wm/xorg.conf.d/90-tap-to-click.conf
new file mode 100644
index 0000000000000000000000000000000000000000..b068f5c5d3dd226358fd7285fe9dff6d1c0bd112
--- /dev/null
+++ b/device/testing/device-google-peach-pi/i3wm/xorg.conf.d/90-tap-to-click.conf
@@ -0,0 +1,6 @@
+Section "InputClass"
+        Identifier "touchpad"
+        MatchIsTouchpad "on"
+        Driver "libinput"
+        Option "Tapping" "on"
+EndSection
diff --git a/device/testing/device-google-peach-pi/modprobe.d/mali.conf b/device/testing/device-google-peach-pi/modprobe.d/mali.conf
new file mode 100644
index 0000000000000000000000000000000000000000..c12c7fa012d4b95e5224e41c4252c19c379a0ded
--- /dev/null
+++ b/device/testing/device-google-peach-pi/modprobe.d/mali.conf
@@ -0,0 +1 @@
+blacklist panfrost
diff --git a/device/testing/device-google-peach-pi/mpv/mpv.conf.wayland b/device/testing/device-google-peach-pi/mpv/mpv.conf.wayland
new file mode 100644
index 0000000000000000000000000000000000000000..554066f60d4735e32b774f2018326fa50aa2c86f
--- /dev/null
+++ b/device/testing/device-google-peach-pi/mpv/mpv.conf.wayland
@@ -0,0 +1,3 @@
+vo=wlshm
+profile=sw-fast
+ytdl-format="bestvideo[height<=?720]+bestaudio/best"
diff --git a/device/testing/device-google-peach-pi/mpv/mpv.conf.xorg b/device/testing/device-google-peach-pi/mpv/mpv.conf.xorg
new file mode 100644
index 0000000000000000000000000000000000000000..3a7296eaee7c2af57ed72adc90f4406696186517
--- /dev/null
+++ b/device/testing/device-google-peach-pi/mpv/mpv.conf.xorg
@@ -0,0 +1,3 @@
+vo=x11
+profile=sw-fast
+ytdl-format="bestvideo[height<=?720]+bestaudio/best"
diff --git a/device/testing/device-google-peach-pi/sway/tinydm/10-no-hardware-cursor.sh b/device/testing/device-google-peach-pi/sway/tinydm/10-no-hardware-cursor.sh
new file mode 100644
index 0000000000000000000000000000000000000000..4e5253eca3c65b0e2ac0e258fb6e82f942779d42
--- /dev/null
+++ b/device/testing/device-google-peach-pi/sway/tinydm/10-no-hardware-cursor.sh
@@ -0,0 +1,5 @@
+#!/bin/bash
+
+# A workaround for missing cursor issue
+
+export WLR_NO_HARDWARE_CURSORS=1
diff --git a/device/testing/device-google-peach-pi/uboot-script.cmd b/device/testing/device-google-peach-pi/uboot-script.cmd
new file mode 100644
index 0000000000000000000000000000000000000000..ca62f296edfa21c0b3050c597b756ae799674eaf
--- /dev/null
+++ b/device/testing/device-google-peach-pi/uboot-script.cmd
@@ -0,0 +1,27 @@
+if test ${devnum} -eq 2 ; then
+	echo "Booting from SD";
+	setenv pmos_boot_dev 1;
+else
+	echo "Booting from eMMC";
+	setenv pmos_boot_dev 0;
+fi;
+
+setenv bootargs console=null mem=3523M pmos_boot=/dev/mmcblk${pmos_boot_dev}p2 pmos_root=/dev/mmcblk${pmos_boot_dev}p3
+
+echo Loading DTB
+load mmc ${devnum}:2 ${fdt_addr_r} exynos5800-peach-pi.dtb
+
+echo Loading Initramfs
+load mmc ${devnum}:2 ${ramdisk_addr_r} initramfs
+setenv ramdisk_size ${filesize}
+
+echo Loading Kernel
+load mmc ${devnum}:2 ${kernel_addr_r} vmlinuz
+
+echo Resizing FDT
+fdt addr ${fdt_addr_r}
+fdt resize
+
+echo Booting Kernel
+bootz ${kernel_addr_r} ${ramdisk_addr_r}:${ramdisk_size} ${fdt_addr_r}
+
diff --git a/device/testing/device-google-peach-pi/ucm/HiFi.conf b/device/testing/device-google-peach-pi/ucm/HiFi.conf
new file mode 100644
index 0000000000000000000000000000000000000000..58becbadffa86061bc54c8381aca35a5a7b49a9c
--- /dev/null
+++ b/device/testing/device-google-peach-pi/ucm/HiFi.conf
@@ -0,0 +1,139 @@
+SectionVerb {
+	Value {
+		OutputDspName "speaker_eq"
+	}
+
+	EnableSequence [
+		cdev "hw:PeachPiI2SMAX98"
+
+		cset "name='Left Speaker Mixer Left DAC Switch' on"
+		cset "name='Right Speaker Mixer Right DAC Switch' on"
+
+		cset "name='Digital EQ 3 Band Switch' off"
+		cset "name='Digital EQ 5 Band Switch' off"
+		cset "name='Digital EQ 7 Band Switch' off"
+		cset "name='Biquad Switch' off"
+		cset "name='Filter Mode' Music"
+		cset "name='ADC Oversampling Rate' 0"
+
+		cset "name='MIC2 Mux' IN34"
+		cset "name='DMIC Mux' DMIC"
+		cset "name='Left ADC Mixer MIC2 Switch' on"
+		cset "name='Right ADC Mixer MIC2 Switch' on"
+
+		cset "name='ADCR Boost Volume' 4"
+		cset "name='ADCL Boost Volume' 4"
+		cset "name='ADCR Volume' 11"
+		cset "name='ADCL Volume' 11"
+
+		cset "name='Speaker Left Mixer Volume' 2"
+		cset "name='Speaker Right Mixer Volume' 2"
+		cset "name='Record Path DC Blocking' on"
+		cset "name='Playback Path DC Blocking' on"
+
+		cset "name='Speaker Left Switch' off"
+		cset "name='Speaker Right Switch' off"
+
+		cset "name='Headphone Left Switch' off"
+		cset "name='Headphone Right Switch' off"
+	]
+
+	DisableSequence [
+	]
+}
+
+SectionDevice."Speakers" {
+	Comment "Speakers"
+
+	ConflictingDevice [
+		"Headphones"
+	]
+
+	EnableSequence [
+		cset "name='Speaker Left Switch' on"
+		cset "name='Speaker Right Switch' on"
+	]
+
+	DisableSequence [
+		cset "name='Speaker Left Switch' off"
+		cset "name='Speaker Right Switch' off"
+	]
+
+	Value {
+		PlaybackPCM "hw:${CardId}"
+		PlaybackChannels 2
+		PlaybackVolume "Speaker Volume"
+	}
+}
+
+SectionDevice."Headphones" {
+	Comment "Headphones"
+
+	ConflictingDevice [
+		"Speakers"
+	]
+
+	EnableSequence [
+		cset "name='Headphone Left Switch' on"
+		cset "name='Headphone Right Switch' on"
+	]
+
+	DisableSequence [
+		cset "name='Headphone Left Switch' off"
+		cset "name='Headphone Right Switch' off"
+	]
+
+	Value {
+		JackControl "Headphone Jack"
+		PlaybackPCM "hw:${CardId}"
+		PlaybackChannels 2
+		PlaybackVolume "Headphone Volume"
+	}
+}
+
+SectionDevice."InternalMicrophone" {
+	Comment "Internal Microphone"
+
+	ConflictingDevice [
+		"HeadsetMicrophone"
+	]
+
+	EnableSequence [
+		cset "name='DMIC Mux' DMIC"
+	]
+
+	DisableSequence [
+		cset "name='DMIC Mux' ADC"
+	]
+
+	Value {
+		CapturePCM "hw:${CardId}"
+		CaptureChannels 2
+		CaptureVolume "MIC2 Volume"
+		DefaultNodeGain "-500"
+	}
+}
+
+SectionDevice."HeadsetMicrophone" {
+	Comment "Headset Microphone"
+
+	ConflictingDevice [
+		"InternalMicrophone"
+	]
+
+	EnableSequence [
+		cset "name='DMIC Mux' ADC"
+	]
+
+	DisableSequence [
+		cset "name='DMIC Mux' DMIC"
+	]
+
+	Value {
+		JackControl "Mic Jack"
+		CapturePCM "hw:${CardId}"
+		CaptureChannels 2
+		CaptureVolume "MIC2 Volume"
+		DefaultNodeGain "-500"
+	}
+}
diff --git a/device/testing/device-google-peach-pi/ucm/Peach-Pi-I2S-MA.conf b/device/testing/device-google-peach-pi/ucm/Peach-Pi-I2S-MA.conf
new file mode 100644
index 0000000000000000000000000000000000000000..919c94691f4a23825e02d46ddc786e72753e7207
--- /dev/null
+++ b/device/testing/device-google-peach-pi/ucm/Peach-Pi-I2S-MA.conf
@@ -0,0 +1,8 @@
+Syntax 2
+
+Comment "Google Peach Pi internal card (Maxim 98091)"
+
+SectionUseCase."HiFi" {
+	File "HiFi.conf"
+	Comment "Default"
+}
diff --git a/device/testing/linux-postmarketos-exynos5/0028-ARM-dts-exynos-peach-pi-add-mmc-aliases.patch b/device/testing/linux-postmarketos-exynos5/0028-ARM-dts-exynos-peach-pi-add-mmc-aliases.patch
new file mode 100644
index 0000000000000000000000000000000000000000..3be4ce9bec7c507a9c50ea436260ca4bc8ceb03b
--- /dev/null
+++ b/device/testing/linux-postmarketos-exynos5/0028-ARM-dts-exynos-peach-pi-add-mmc-aliases.patch
@@ -0,0 +1,32 @@
+From 12f600476e2525f5d86aedfcb9b5535fb2c6e58a Mon Sep 17 00:00:00 2001
+From: Anton Bambura <jenneron@protonmail.com>
+Date: Mon, 14 Mar 2022 21:44:47 +0200
+Subject: [PATCH 1/4] ARM: dts: exynos: peach-pi: add mmc aliases
+
+Add aliases for eMMC, SD card and WiFi, so nubmers will not be
+changed anymore.
+
+Signed-off-by: Anton Bambura <jenneron@protonmail.com>
+Tested-by: Valentine Iourine <iourine@iourine.msk.su>
+---
+ arch/arm/boot/dts/exynos5800-peach-pi.dts | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/arch/arm/boot/dts/exynos5800-peach-pi.dts b/arch/arm/boot/dts/exynos5800-peach-pi.dts
+index 77013ee58..aa1d14af4 100644
+--- a/arch/arm/boot/dts/exynos5800-peach-pi.dts
++++ b/arch/arm/boot/dts/exynos5800-peach-pi.dts
+@@ -29,6 +29,10 @@ / {
+ 	aliases {
+ 		/* Assign 20 so we don't get confused w/ builtin ones */
+ 		i2c20 = &i2c_tunnel;
++
++		mmc0 = &mmc_0; /* eMMC */
++		mmc1 = &mmc_2; /* SD */
++		mmc2 = &mmc_1; /* WiFi */
+ 	};
+ 
+ 	backlight: backlight {
+-- 
+2.25.1
+
diff --git a/device/testing/linux-postmarketos-exynos5/0029-ARM-dts-exynos-peach-pi-use-num-interpolated-steps-f.patch b/device/testing/linux-postmarketos-exynos5/0029-ARM-dts-exynos-peach-pi-use-num-interpolated-steps-f.patch
new file mode 100644
index 0000000000000000000000000000000000000000..859b8b8912a24bd2655dd8c6609a64ec25c935fe
--- /dev/null
+++ b/device/testing/linux-postmarketos-exynos5/0029-ARM-dts-exynos-peach-pi-use-num-interpolated-steps-f.patch
@@ -0,0 +1,34 @@
+From b82eac19457a7910ac2e955b72e90b41dff6079a Mon Sep 17 00:00:00 2001
+From: Anton Bambura <jenneron@protonmail.com>
+Date: Mon, 14 Mar 2022 21:46:55 +0200
+Subject: [PATCH 2/4] ARM: dts: exynos: peach-pi: use num-interpolated-steps
+ for backlight
+
+Use num-interpolated-steps in backlight node to get more
+brightness levels.
+
+Signed-off-by: Anton Bambura <jenneron@protonmail.com>
+Tested-by: Valentine Iourine <iourine@iourine.msk.su>
+---
+ arch/arm/boot/dts/exynos5800-peach-pi.dts | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/arch/arm/boot/dts/exynos5800-peach-pi.dts b/arch/arm/boot/dts/exynos5800-peach-pi.dts
+index aa1d14af4..f8adbd9ad 100644
+--- a/arch/arm/boot/dts/exynos5800-peach-pi.dts
++++ b/arch/arm/boot/dts/exynos5800-peach-pi.dts
+@@ -38,8 +38,9 @@ aliases {
+ 	backlight: backlight {
+ 		compatible = "pwm-backlight";
+ 		pwms = <&pwm 0 1000000 0>;
+-		brightness-levels = <0 100 500 1000 1500 2000 2500 2800>;
+-		default-brightness-level = <7>;
++		brightness-levels = <1 255>;
++		num-interpolated-steps = <254>;
++		default-brightness-level = <254>;
+ 		enable-gpios = <&gpx2 2 GPIO_ACTIVE_HIGH>;
+ 		power-supply = <&tps65090_fet1>;
+ 		pinctrl-0 = <&pwm0_out>;
+-- 
+2.25.1
+
diff --git a/device/testing/linux-postmarketos-exynos5/0030-HACK-ARM-dts-exynos-peach-pi-disable-HDMI-audio.patch b/device/testing/linux-postmarketos-exynos5/0030-HACK-ARM-dts-exynos-peach-pi-disable-HDMI-audio.patch
new file mode 100644
index 0000000000000000000000000000000000000000..f1675bd5bf44796629ede4a05406c7734d1f0554
--- /dev/null
+++ b/device/testing/linux-postmarketos-exynos5/0030-HACK-ARM-dts-exynos-peach-pi-disable-HDMI-audio.patch
@@ -0,0 +1,32 @@
+From 430c6d2499e7f2450c807ad197a3d6452b0188e6 Mon Sep 17 00:00:00 2001
+From: Anton Bambura <jenneron@protonmail.com>
+Date: Mon, 14 Mar 2022 21:49:18 +0200
+Subject: [PATCH 3/4] HACK: ARM: dts: exynos: peach-pi: disable HDMI audio
+
+When enabling Internal Microphone, HDMI codec results in:
+[  730.054945] hdmi-audio-codec hdmi-audio-codec.14.auto: Only one simultaneous stream supported!
+[  730.054961] hdmi-audio-codec hdmi-audio-codec.14.auto: ASoC: error at snd_soc_dai_startup on i2s-hifi: -22
+[  730.054978]  Primary: soc_pcm_open() failed (-22)
+
+Signed-off-by: Anton Bambura <jenneron@protonmail.com>
+Tested-by: Valentine Iourine <iourine@iourine.msk.su>
+---
+ arch/arm/boot/dts/exynos5800-peach-pi.dts | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/arch/arm/boot/dts/exynos5800-peach-pi.dts b/arch/arm/boot/dts/exynos5800-peach-pi.dts
+index f8adbd9ad..e80e77a58 100644
+--- a/arch/arm/boot/dts/exynos5800-peach-pi.dts
++++ b/arch/arm/boot/dts/exynos5800-peach-pi.dts
+@@ -99,7 +99,7 @@ cpu {
+ 		};
+ 
+ 		codec {
+-			sound-dai = <&max98091>, <&hdmi>;
++			sound-dai = <&max98091>;
+ 		};
+ 	};
+ 
+-- 
+2.25.1
+
diff --git a/device/testing/linux-postmarketos-exynos5/0031-ARM-dts-exynos-peach-pi-add-jack-detection.patch b/device/testing/linux-postmarketos-exynos5/0031-ARM-dts-exynos-peach-pi-add-jack-detection.patch
new file mode 100644
index 0000000000000000000000000000000000000000..dd348d568c3aa30c6d131497993cd61377bae79d
--- /dev/null
+++ b/device/testing/linux-postmarketos-exynos5/0031-ARM-dts-exynos-peach-pi-add-jack-detection.patch
@@ -0,0 +1,53 @@
+From 3248217c4d80e4c851e60aca6176a2e6600dce45 Mon Sep 17 00:00:00 2001
+From: Anton Bambura <jenneron@protonmail.com>
+Date: Mon, 14 Mar 2022 21:57:44 +0200
+Subject: [PATCH 4/4] ARM: dts: exynos: peach-pi: add jack detection
+
+Add GPIOs for headphones and microphone detection.
+
+Signed-off-by: Anton Bambura <jenneron@protonmail.com>
+Tested-by: Valentine Iourine <iourine@iourine.msk.su>
+---
+ arch/arm/boot/dts/exynos5800-peach-pi.dts | 19 +++++++++++++++++++
+ 1 file changed, 19 insertions(+)
+
+diff --git a/arch/arm/boot/dts/exynos5800-peach-pi.dts b/arch/arm/boot/dts/exynos5800-peach-pi.dts
+index e80e77a58..bedfaeff0 100644
+--- a/arch/arm/boot/dts/exynos5800-peach-pi.dts
++++ b/arch/arm/boot/dts/exynos5800-peach-pi.dts
+@@ -93,6 +93,11 @@ sound {
+ 		samsung,model = "Peach-Pi-I2S-MAX98091";
+ 		samsung,i2s-controller = <&i2s0>;
+ 		samsung,audio-codec = <&max98091>;
++		samsung,hp-det-gpios = <&gpx2 1 GPIO_ACTIVE_HIGH>;
++		samsung,mic-det-gpios = <&gpx1 7 GPIO_ACTIVE_LOW>;
++
++		pinctrl-names = "default";
++		pinctrl-0 = <&hp_det_gpio &mic_det_gpio>;
+ 
+ 		cpu {
+ 			sound-dai = <&i2s0 0>;
+@@ -812,6 +817,20 @@ ec_irq: ec-irq {
+ 		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
+ 	};
+ 
++	mic_det_gpio: mic-det-gpio {
++		samsung,pins = "gpx1-7";
++		samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
++		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
++		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
++	};
++
++	hp_det_gpio: hp-det-gpio {
++		samsung,pins = "gpx2-1";
++		samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
++		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
++		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
++	};
++
+ 	tps65090_irq: tps65090-irq {
+ 		samsung,pins = "gpx2-5";
+ 		samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
+-- 
+2.25.1
+
diff --git a/device/testing/linux-postmarketos-exynos5/APKBUILD b/device/testing/linux-postmarketos-exynos5/APKBUILD
index 56e6237205d68c3a6733f78bcb978fe8903e86e8..b843609e38acb164d6a162f352404ca9389016ef 100644
--- a/device/testing/linux-postmarketos-exynos5/APKBUILD
+++ b/device/testing/linux-postmarketos-exynos5/APKBUILD
@@ -4,7 +4,7 @@
 
 pkgname=linux-postmarketos-exynos5
 pkgver=5.16.1
-pkgrel=1
+pkgrel=2
 pkgdesc="Mainline kernel fork for Samsung Exynos5 devices"
 arch="armv7"
 _carch="arm"
@@ -65,6 +65,10 @@ source="
 	0025-WIP-ASoC-samsung-snow-add-jack-detection-support.patch
 	0026-ARM-dts-exynos-snow-add-jack-detection.patch
 	0027-ARM-dts-exynos-peach-pit-add-jack-detection.patch
+	0028-ARM-dts-exynos-peach-pi-add-mmc-aliases.patch
+	0029-ARM-dts-exynos-peach-pi-use-num-interpolated-steps-f.patch
+	0030-HACK-ARM-dts-exynos-peach-pi-disable-HDMI-audio.patch
+	0031-ARM-dts-exynos-peach-pi-add-jack-detection.patch
 "
 builddir="$srcdir/linux-${_kernver//_/-}"
 
@@ -123,4 +127,8 @@ b8d81a436984e8ac820a78c24d800485f845a58c6d3d291a89656b78c00ff4f123006adf0dc66c08
 7e4de24b46abd9b54297592090e8e0f3559563ff48dfa764f937b63982ed338596b891e0a4a546fe8fae5e06992ac62f15b394b52a16d58280d341f0b7ddc5d8  0025-WIP-ASoC-samsung-snow-add-jack-detection-support.patch
 cd6eca38325363eb3dae5adb973624288dce5c6e4c90b14203090fdaec1aa0721384f9bfa7eb5051f5efdc988999ed0acfee23b1d11e5cd91d90a5c227ca5c71  0026-ARM-dts-exynos-snow-add-jack-detection.patch
 8dc11bdb132846bbf59ddd5e2a6e02b3910db5b8cfc58dc4715121afd321427d087537d0640e6ecbd70c36bd4977756e17f0b14b83a480d48622e26a35132d0c  0027-ARM-dts-exynos-peach-pit-add-jack-detection.patch
+a3a6cfec604951daab4017a222db9b873805ce94517a1e5a599a091b9d5832ec1948a113bbd655cac6b1a4280aaf13dc0901ccce770b38cc28775a5b886110d4  0028-ARM-dts-exynos-peach-pi-add-mmc-aliases.patch
+1d29e33d5f3fc192822bb5bf43e8102963ed316c3846f6681e7698ccb85c65a6e8461bd246f61604d1f794c56171ee206b62ab0fea1b5e7c6dd0fbf49d6fb77a  0029-ARM-dts-exynos-peach-pi-use-num-interpolated-steps-f.patch
+5e0bc7073adcd5b89e2475cb9387f994bea335eb89a255090890a8b85612085d317779b551044c6cfc5bf6779e624ce01e0d1074f2126a6bcff0570f6916a782  0030-HACK-ARM-dts-exynos-peach-pi-disable-HDMI-audio.patch
+75223ced245df537b6a0356641956e3eec79fafc48ebad961d8188e23dc730d1ccf534442630804361d26560c7f58da950c38ce04292fe72fd5329c6a858a4bd  0031-ARM-dts-exynos-peach-pi-add-jack-detection.patch
 "
diff --git a/temp/u-boot-peach-pi/APKBUILD b/temp/u-boot-peach-pi/APKBUILD
new file mode 100644
index 0000000000000000000000000000000000000000..f09372dfc10e458320950580d050a7c40bb8e1c3
--- /dev/null
+++ b/temp/u-boot-peach-pi/APKBUILD
@@ -0,0 +1,52 @@
+# Maintainer: Jenneron <jenneron@protonmail.com>
+# Co-Maintainer: Iourine <iourine@iourine.msk.su>
+pkgname=u-boot-peach-pi
+pkgver=2022.01
+pkgrel=0
+pkgdesc="u-boot for Google Peach Pi chromebook"
+url="https://www.denx.de/wiki/U-Boot/"
+arch="armv7"
+license="GPL-2.0-or-later OFL-1.1 BSD-2-Clause BSD-3-Clause eCos-2.0 IBM-pibs
+	ISC LGPL-2.0-only LGPL-2.1-only X11"
+options="!check" # no tests in upstream
+makedepends="$depends_dev bc dtc python3-dev swig bison flex openssl-dev
+	py3-setuptools linux-headers u-boot-tools vboot-utils"
+source="
+	https://ftp.denx.de/pub/u-boot/u-boot-${pkgver//_/-}.tar.bz2
+	cve-2017-5715.patch
+"
+builddir="$srcdir"/u-boot-${pkgver//_/-}
+
+prepare() {
+	default_prepare
+}
+
+build() {
+	make peach-pi_defconfig
+	make
+
+	mkimage -A arm -O linux -T kernel -C none -e 0x23E00000 -a 0x23E00000 -d u-boot-dtb.bin u-boot-dtb.img
+
+	echo -e "\n" > dummy_config
+	echo -e "\n" > dummy_bootloader
+
+	vbutil_kernel \
+		--pack u-boot-dtb.img.kpart \
+		--keyblock /usr/share/vboot/devkeys/kernel.keyblock \
+		--signprivate /usr/share/vboot/devkeys/kernel_data_key.vbprivk \
+		--version 1 \
+		--arch arm \
+		--config dummy_config \
+		--bootloader dummy_bootloader \
+		--vmlinuz u-boot-dtb.img
+}
+
+package() {
+	install -D -m644 "$builddir"/u-boot-dtb.img.kpart \
+		"$pkgdir"/usr/share/u-boot/google-peach-pi/u-boot-dtb.img.kpart
+}
+
+sha512sums="
+d83c62bd8f0f51664d2aca329a3ce1379cfd1dfff439dccd6cfc2cb33cfef89a2b01855c97716f591b5550bfdf99e2f3aef7efa33f2e7834c820648f9eef3825  u-boot-2022.01.tar.bz2
+915a984250e28c7add109f23a33062b66efdb51cd1ba993f789322d6d341cdb30c6f8418cd920e5bb19301a7243699e35ce5662993f41ab2f2575a9fef988515  cve-2017-5715.patch
+"
diff --git a/temp/u-boot-peach-pi/cve-2017-5715.patch b/temp/u-boot-peach-pi/cve-2017-5715.patch
new file mode 100644
index 0000000000000000000000000000000000000000..2dbebcbfec727d560cf6e35efba26a46783bcc78
--- /dev/null
+++ b/temp/u-boot-peach-pi/cve-2017-5715.patch
@@ -0,0 +1,11 @@
+From: jenneron <jenneron@protonmail.com>
+
+diff --git a/configs/peach-pi_defconfig b/configs/peach-pi_defconfig
+index 4259f1416e..9e1d23a8ce 100644
+--- a/configs/peach-pi_defconfig
++++ b/configs/peach-pi_defconfig
+@@ -83,3 +83,4 @@ CONFIG_VIDEO_BRIDGE_PARADE_PS862X=y
+ CONFIG_LCD=y
+ CONFIG_TPM=y
+ CONFIG_ERRNO_STR=y
++CONFIG_ARM_CORTEX_A15_CVE_2017_5715=y