From 14cf96998c97f4701e5ccfb7fa1fa748a3eb19e5 Mon Sep 17 00:00:00 2001 From: Anton Bambura Date: Sun, 16 Aug 2026 18:54:35 +0300 Subject: [PATCH] ayn-odin-3: new device Part-of: --- .../81-libssc-ayn-odin-3.rules | 2 + device/testing/device-ayn-odin-3/APKBUILD | 58 +++++++++++++++++++ device/testing/device-ayn-odin-3/deviceinfo | 26 +++++++++ .../hexagonrpcd-adsp-sensorspd.service | 10 ++++ .../device-ayn-odin-3/kernel-cmdline.conf | 2 + .../testing/device-ayn-odin-3/modules-initfs | 10 ++++ 6 files changed, 108 insertions(+) create mode 100644 device/testing/device-ayn-odin-3/81-libssc-ayn-odin-3.rules create mode 100644 device/testing/device-ayn-odin-3/APKBUILD create mode 100644 device/testing/device-ayn-odin-3/deviceinfo create mode 100644 device/testing/device-ayn-odin-3/hexagonrpcd-adsp-sensorspd.service create mode 100644 device/testing/device-ayn-odin-3/kernel-cmdline.conf create mode 100644 device/testing/device-ayn-odin-3/modules-initfs diff --git a/device/testing/device-ayn-odin-3/81-libssc-ayn-odin-3.rules b/device/testing/device-ayn-odin-3/81-libssc-ayn-odin-3.rules new file mode 100644 index 000000000..ab67196c0 --- /dev/null +++ b/device/testing/device-ayn-odin-3/81-libssc-ayn-odin-3.rules @@ -0,0 +1,2 @@ +# iio-sensor-proxy with libssc: accelerometer mount matrix +SUBSYSTEM=="misc", KERNEL=="fastrpc-*", ENV{ACCEL_MOUNT_MATRIX}+="-1, 0, 0; 0, 1, 0; 0, 0, -1" diff --git a/device/testing/device-ayn-odin-3/APKBUILD b/device/testing/device-ayn-odin-3/APKBUILD new file mode 100644 index 000000000..0a7814dc7 --- /dev/null +++ b/device/testing/device-ayn-odin-3/APKBUILD @@ -0,0 +1,58 @@ +# Reference: +maintainer="Anton Bambura " +pkgname=device-ayn-odin-3 +pkgdesc="AYN Odin 3" +pkgver=1 +pkgrel=0 +url="https://postmarketos.org" +license="MIT" +arch="aarch64" +options="!check !archcheck" +depends=" + alsa-ucm-conf-ayn + firmware-ayn-audioreach-topology + firmware-ayn-odin-3 + hexagonrpcd + linux-ayn-odin-3 + linux-firmware-ath12k + linux-firmware-qca + linux-firmware-qcom + make-dynpart-mappings + msm-firmware-loader + postmarketos-base + soc-qcom + soc-qcom-qbootctl + systemd-boot + unl0kr-fbforcerefresh +" +makedepends="devicepkg-dev" +source=" + 81-libssc-ayn-odin-3.rules + deviceinfo + kernel-cmdline.conf + hexagonrpcd-adsp-sensorspd.service + modules-initfs +" + +build() { + devicepkg_build $startdir $pkgname +} + +package() { + devicepkg_package $startdir $pkgname + + # replace /dev/fastrpc-adsp with /dev/fastrpc-adsp-secure and firmware path + install -Dm644 "$srcdir"/hexagonrpcd-adsp-sensorspd.service \ + "$pkgdir"/usr/lib/systemd/system/hexagonrpcd-adsp-sensorspd.service.d/10-ayn-odin-3.conf + + install -Dm644 "$srcdir"/81-libssc-ayn-odin-3.rules \ + "$pkgdir"/usr/lib/udev/rules.d/81-libssc-ayn-odin-3.rules +} + +sha512sums=" +2ed6b63c93007be7a095b708a7f771819dc6bdd39d1c4b2e206973eb1816da20d6d5472d781b860764dbb992380f0d15cd2215f9923cc75cd81c9dadd844376c 81-libssc-ayn-odin-3.rules +a59acd172d7f303bcb635e976011ff7d265511d741be340103f6dfb8b9d49fcb35955e6a9170bfb60a14e6587b3665a48fe5670c031d26fff651634a0ab97e39 deviceinfo +cd73a80bea056ae6e8ff13c2509217afab1bb0a3d3724fe0e7764efb3d48791114aba2327cc71191ee3566d431be28a2b74bf5d2aea2a5104f3733fc37e970da kernel-cmdline.conf +e043ac428fa540f5c9095aaa575224da41c97099eadf8bc5d2d0c4e87149f5d869adb896aecd67cb81f869a21ee6b108219a1c86e3d0d9d10d5ac4028a4cd9f5 hexagonrpcd-adsp-sensorspd.service +80590744f7806403c1604f46662a1aa7a756fcb4d94148570cd89d5fd6682c62977c05be0df1a6e219dac7ebef9bd0b4bea82117d7f2ed27028321d604a7addb modules-initfs +" diff --git a/device/testing/device-ayn-odin-3/deviceinfo b/device/testing/device-ayn-odin-3/deviceinfo new file mode 100644 index 000000000..c5fa5ed6d --- /dev/null +++ b/device/testing/device-ayn-odin-3/deviceinfo @@ -0,0 +1,26 @@ +# Reference: +# Please use double quotes only. You can source this file in shell +# scripts. + +deviceinfo_format_version="0" +deviceinfo_name="AYN Odin 3" +deviceinfo_manufacturer="AYN" +deviceinfo_codename="ayn-odin-3" +deviceinfo_year="2025" +deviceinfo_dtb="qcom/cq8725s-ayn-odin3" +deviceinfo_arch="aarch64" + +# Device related +deviceinfo_chassis="tablet" +deviceinfo_external_storage="true" +deviceinfo_drm="true" + +# Bootloader related +deviceinfo_flash_method="fastboot-bootpart" +# This appears to be the best partition for ESP as it's exactly 512MiB. +# (TODO: support splitting ESP from pmOS_boot and use boot_a/boot_b?) +deviceinfo_flash_fastboot_partition_kernel="logdump" +deviceinfo_boot_filesystem="fat32" + +# Required for devices using UFS as storage (instead of e.g. eMMC) +deviceinfo_rootfs_image_sector_size="4096" diff --git a/device/testing/device-ayn-odin-3/hexagonrpcd-adsp-sensorspd.service b/device/testing/device-ayn-odin-3/hexagonrpcd-adsp-sensorspd.service new file mode 100644 index 000000000..c1695f15a --- /dev/null +++ b/device/testing/device-ayn-odin-3/hexagonrpcd-adsp-sensorspd.service @@ -0,0 +1,10 @@ +[Unit] +ConditionPathExists= +ConditionPathExists=!/dev/fastrpc-sdsp +ConditionPathExists=/dev/fastrpc-adsp-secure +Requires=msm-firmware-loader.service +After=msm-firmware-loader.service + +[Service] +ExecStart= +ExecStart=/usr/bin/hexagonrpcd -f /dev/fastrpc-adsp-secure -d adsp -s -R /usr/share/qcom/sm8750/ayn/odin-3 diff --git a/device/testing/device-ayn-odin-3/kernel-cmdline.conf b/device/testing/device-ayn-odin-3/kernel-cmdline.conf new file mode 100644 index 000000000..e0ecaa6a7 --- /dev/null +++ b/device/testing/device-ayn-odin-3/kernel-cmdline.conf @@ -0,0 +1,2 @@ +# device exits deep suspend immediately, force s2idle +mem_sleep_default=s2idle diff --git a/device/testing/device-ayn-odin-3/modules-initfs b/device/testing/device-ayn-odin-3/modules-initfs new file mode 100644 index 000000000..98c1184bf --- /dev/null +++ b/device/testing/device-ayn-odin-3/modules-initfs @@ -0,0 +1,10 @@ +backlight +drm +drm_client_lib +drm_display_helper +drm_kms_helper +msm +panel-chipone-icna35xx +gpi +i2c-qcom-geni +edt-ft5x06