From ca6ff9cd98bd4a765d579f3c53f1ff4f9a1939e7 Mon Sep 17 00:00:00 2001
From: Raymond Hackley <raymondhackley@protonmail.com>
Date: Thu, 23 Feb 2023 09:37:38 +0000
Subject: [PATCH] acer-t01: new device (MR 4488)

---
 device/testing/device-acer-t01/APKBUILD       | 43 +++++++++++++++++++
 device/testing/device-acer-t01/deviceinfo     | 39 +++++++++++++++++
 device/testing/device-acer-t01/modules-initfs |  3 ++
 device/testing/firmware-acer-t01/APKBUILD     | 31 +++++++++++++
 4 files changed, 116 insertions(+)
 create mode 100644 device/testing/device-acer-t01/APKBUILD
 create mode 100644 device/testing/device-acer-t01/deviceinfo
 create mode 100644 device/testing/device-acer-t01/modules-initfs
 create mode 100644 device/testing/firmware-acer-t01/APKBUILD

diff --git a/device/testing/device-acer-t01/APKBUILD b/device/testing/device-acer-t01/APKBUILD
new file mode 100644
index 000000000..178bcc41b
--- /dev/null
+++ b/device/testing/device-acer-t01/APKBUILD
@@ -0,0 +1,43 @@
+# Reference: <https://postmarketos.org/devicepkg>
+pkgname=device-acer-t01
+pkgdesc="Acer Liquid Z330"
+pkgver=1
+pkgrel=0
+url="https://postmarketos.org"
+license="MIT"
+arch="armv7"
+options="!check !archcheck"
+depends="
+	linux-postmarketos-qcom-msm8916
+	mkbootimg
+	postmarketos-base
+	soc-qcom-msm8909
+	soc-qcom-msm8916-rproc
+"
+subpackages="$pkgname-nonfree-firmware:nonfree_firmware"
+makedepends="devicepkg-dev"
+source="deviceinfo modules-initfs"
+_pmb_select="soc-qcom-msm8916-rproc"
+
+build() {
+	devicepkg_build $startdir $pkgname
+}
+
+package() {
+	devicepkg_package $startdir $pkgname
+}
+
+nonfree_firmware() {
+	pkgdesc="GPU/WiFi/BT/Modem/Video firmware"
+	depends="
+		firmware-qcom-adreno-a300
+		msm-firmware-loader
+		firmware-acer-t01-wcnss-nv
+	"
+	mkdir "$subpkgdir"
+}
+
+sha512sums="
+a4ced6d28a2eaba3b67f49aa9765d86dd8a172aa688e959c475540f0a78566bc4fe87546317ae9326134c37a4b9aa78c3c7bff5fd6b0e83ae25a06aba03e03de  deviceinfo
+a0e3f4ca9dd9bb171b021ee07a2aaf3886b3d6376bb38298128b0bf0325a2305e48ba42a37105b13f7f469fb98d8326c8ce95b6259f8974a4f04b09acb3af7f2  modules-initfs
+"
diff --git a/device/testing/device-acer-t01/deviceinfo b/device/testing/device-acer-t01/deviceinfo
new file mode 100644
index 000000000..d0cb8137e
--- /dev/null
+++ b/device/testing/device-acer-t01/deviceinfo
@@ -0,0 +1,39 @@
+# Reference: <https://postmarketos.org/deviceinfo>
+# Please use double quotes only. You can source this file in shell scripts.
+
+deviceinfo_format_version="0"
+deviceinfo_name="Acer Liquid Z330"
+deviceinfo_manufacturer="Acer"
+deviceinfo_codename="acer-t01"
+deviceinfo_year="2015"
+deviceinfo_dtb="qcom-msm8909-acer-t01"
+deviceinfo_append_dtb="true"
+deviceinfo_arch="armv7"
+
+# Device related
+deviceinfo_chassis="handset"
+deviceinfo_keyboard="false"
+deviceinfo_external_storage="true"
+deviceinfo_screen_width="480"
+deviceinfo_screen_height="854"
+deviceinfo_getty="ttyMSM0;115200"
+
+# MSM DRM cannot take over the framebuffer from the bootloader at the moment
+deviceinfo_no_framebuffer="true"
+
+# Bootloader related
+deviceinfo_flash_method="fastboot"
+deviceinfo_kernel_cmdline="earlycon console=ttyMSM0,115200 PMOS_NO_OUTPUT_REDIRECT"
+deviceinfo_generate_bootimg="true"
+deviceinfo_flash_offset_base="0x80000000"
+deviceinfo_flash_offset_kernel="0x00008000"
+deviceinfo_flash_offset_ramdisk="0x01000000"
+deviceinfo_flash_offset_second="0x00f00000"
+deviceinfo_flash_offset_tags="0x01e00000"
+deviceinfo_flash_pagesize="2048"
+deviceinfo_flash_sparse="true"
+
+# Acer, Inc.
+deviceinfo_usb_idVendor="0x0502"
+# Acer Liquid Z330
+deviceinfo_usb_idProduct="0x37c3"
diff --git a/device/testing/device-acer-t01/modules-initfs b/device/testing/device-acer-t01/modules-initfs
new file mode 100644
index 000000000..1fd28fef6
--- /dev/null
+++ b/device/testing/device-acer-t01/modules-initfs
@@ -0,0 +1,3 @@
+pm8916-lbc
+pm8916-bms-vm
+msg2638
diff --git a/device/testing/firmware-acer-t01/APKBUILD b/device/testing/firmware-acer-t01/APKBUILD
new file mode 100644
index 000000000..ddc9d9e74
--- /dev/null
+++ b/device/testing/firmware-acer-t01/APKBUILD
@@ -0,0 +1,31 @@
+pkgname=firmware-acer-t01
+pkgver=1
+pkgrel=0
+_name="Acer Liquid Z330"
+pkgdesc="Firmware for $_name"
+url="https://postmarketos.org"
+subpackages="$pkgname-wcnss-nv:wcnss_nv"
+arch="armv7"
+license="proprietary"
+options="!check !strip !archcheck !tracedeps pmb:cross-native"
+source="$pkgname-WCNSS_qcom_wlan_nv.bin.base64::https://pastebin.com/raw/ebRCebX7"
+
+_fwdir="/lib/firmware/postmarketos"
+
+build() {
+	base64 -d $pkgname-WCNSS_qcom_wlan_nv.bin.base64 > WCNSS_qcom_wlan_nv.bin
+}
+
+package() {
+	# parent package is empty
+	mkdir -p "$pkgdir"
+}
+
+wcnss_nv() {
+	pkgdesc="$_name WiFi/BT firmware configuration"
+	install -Dm644 "$srcdir"/WCNSS_qcom_wlan_nv.bin -t "$subpkgdir/$_fwdir"/wlan/prima
+}
+
+sha512sums="
+8f8d40f4eeb20abefbe607d34e660cbb06db20677ea8780b82fdbc8d69f35d05d8cee2b8ff6f4fde1d8e6270215367f049f4c8a1eb088e09e42447744cb61749  firmware-acer-t01-WCNSS_qcom_wlan_nv.bin.base64
+"