device-xiaomi-pipa: add vendor firmware and config files

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7987>
This commit is contained in:
bluebunny 2026-02-11 05:55:46 +09:00 committed by The Friendly Meow (merge) Bot
parent 6dfc392214
commit 3fa7cb93fc
No known key found for this signature in database
8 changed files with 298 additions and 2 deletions

View file

@ -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"

View file

@ -2,8 +2,8 @@
maintainer="bluebunny <kalorin.bok084@passinbox.com>"
pkgname=device-xiaomi-pipa
pkgdesc="Xiaomi Pad 6"
pkgver=2
pkgrel=1
pkgver=3
pkgrel=0
url="https://postmarketos.org"
license="MIT"
arch="aarch64"
@ -21,11 +21,25 @@ depends="
makedepends="devicepkg-dev"
_pmb_recommends="
firmware-qcom-adreno-a650
firmware-xiaomi-pipa-adreno
firmware-xiaomi-pipa-adsp
firmware-xiaomi-pipa-awinic
firmware-xiaomi-pipa-cdsp
firmware-xiaomi-pipa-hexagonfs
firmware-xiaomi-pipa-novatek
firmware-xiaomi-pipa-nuvolta
firmware-xiaomi-pipa-slpi
firmware-xiaomi-pipa-venus
linux-firmware-ath11k
linux-firmware-qca
"
source="
81-libssc-xiaomi-pipa.rules
HiFi.conf
deviceinfo
hexagonrpcd-sdsp.conf
modules-initfs
pipa.conf
"
build() {
@ -34,8 +48,29 @@ build() {
package() {
devicepkg_package $startdir $pkgname
install -Dm644 "$srcdir"/81-libssc-xiaomi-pipa.rules -t \
"$pkgdir/usr/lib/udev/rules.d/"
install -Dm644 "$srcdir"/hexagonrpcd-sdsp.conf -t \
"$pkgdir/usr/share/hexagonrpcd/"
install -Dm644 "$srcdir"/pipa.conf -t \
"$pkgdir/usr/share/alsa/ucm2/Xiaomi/pipa/"
install -Dm644 "$srcdir"/HiFi.conf -t \
"$pkgdir/usr/share/alsa/ucm2/Xiaomi/pipa/"
mkdir -p "$pkgdir/usr/share/alsa/ucm2/conf.d/sm8250"
ln -s ../../Xiaomi/pipa/pipa.conf \
"$pkgdir/usr/share/alsa/ucm2/conf.d/sm8250/Xiaomi Pad 6.conf"
}
sha512sums="
d0e8f2e378130130ac72703aed957f7638e2dd75acf4aa421e1b4592c6cb6d296b652db0d9c242be4e56326760ce18d28c1e36ae553d0b7a7f91e12ab0353f22 81-libssc-xiaomi-pipa.rules
1c8cef1f2de5fd7e734796dfffc684255b047bdb07a0965676a4d8d512aee4963ce91aeabf8627ce3aea72aeade776a3529f205badd2ed27ba072cadc38f9918 HiFi.conf
4e7afb0c324daed0679d8152d83a5de89357ef92c3152342db21179f5d71f18caae6464b121fe5e93e80430949f7be47e5ea67f1177549bbd0891017f458315a deviceinfo
7f9d9760791639fdd5606070d6a3bd9a5e2d8fdadff0af380b847c7eaf28131000f4909b99e866eafb77272a4fe20ed0c35d5a4f64bb7d16e2dbf82612aa8b22 hexagonrpcd-sdsp.conf
5f82a7f3cd485a947700a8fa02a360679536ddf3c577b13e381810fcb8ebf146925dfac931bd53b9e784ce23158d1da96aa8579a3e6221b4c9bcc94e4818476c modules-initfs
007908c49db107dd8289a96049ed4d77a55c7846e21f76fa7f97306df953ccdec7d821cbc7732a3ff7c532285175ebf0d6a4e3f224740ac002b23f3608cbf76d pipa.conf
"

View file

@ -0,0 +1,111 @@
Syntax 3
SectionVerb {
EnableSequence [
cset "name='TERT_TDM_RX_0 Audio Mixer MultiMedia1' 1"
cset "name='MultiMedia3 Mixer TX_CODEC_DMA_TX_3' 1"
]
DisableSequence [
cset "name='TERT_TDM_RX_0 Audio Mixer MultiMedia1' 0"
cset "name='MultiMedia3 Mixer TX_CODEC_DMA_TX_3' 0"
]
Value {
TQ "HiFi"
}
}
SectionDevice."Speaker" {
Comment "Speaker playback"
Value {
PlaybackPriority 200
PlaybackPCM "hw:${CardId},0"
}
}
SectionDevice."Mic" {
Comment "Top-side Microphones"
EnableSequence [
cset "name='TX DEC0 MUX' SWR_MIC"
cset "name='TX DEC1 MUX' SWR_MIC"
cset "name='TX SMIC MUX0' ADC3"
cset "name='TX SMIC MUX1' ADC1"
cset "name='ADC2 Switch' 1"
cset "name='ADC4 Switch' 1"
cset "name='ADC2_MIXER Switch' 1"
cset "name='ADC4_MIXER Switch' 1"
cset "name='HDR34 MUX' NO_HDR34"
cset "name='HDR12 MUX' NO_HDR34"
cset "name='ADC2 Volume' 12"
cset "name='ADC4 Volume' 12"
cset "name='ADC2 MUX' INP3"
cset "name='ADC4 MUX' INP5"
cset "name='TX_AIF1_CAP Mixer DEC0' 1"
cset "name='TX_AIF1_CAP Mixer DEC1' 1"
cset "name='TX_AIF1_CAP Mixer DEC2' 1"
cset "name='TX_AIF1_CAP Mixer DEC3' 1"
cset "name='TX_AIF2_CAP Mixer DEC0' 1"
cset "name='TX_AIF2_CAP Mixer DEC1' 1"
cset "name='TX_AIF2_CAP Mixer DEC2' 1"
cset "name='TX_AIF2_CAP Mixer DEC3' 1"
cset "name='TX_AIF2_CAP Mixer DEC4' 1"
cset "name='TX_AIF3_CAP Mixer DEC1' 1"
cset "name='TX_AIF3_CAP Mixer DEC2' 1"
cset "name='TX_AIF3_CAP Mixer DEC3' 1"
cset "name='TX_AIF3_CAP Mixer DEC4' 1"
cset "name='TX_AIF3_CAP Mixer DEC5' 1"
cset "name='TX_AIF3_CAP Mixer DEC6' 1"
cset "name='TX_AIF3_CAP Mixer DEC7' 1"
cset "name='TX_DEC0 Volume' 124"
cset "name='TX_DEC1 Volume' 124"
]
DisableSequence [
cset "name='TX DEC0 MUX' ZERO"
cset "name='TX DEC1 MUX' ZERO"
cset "name='TX SMIC MUX0' ZERO"
cset "name='TX SMIC MUX1' ZERO"
cset "name='ADC2 Switch' 0"
cset "name='ADC4 Switch' 0"
cset "name='ADC2_MIXER Switch' 0"
cset "name='ADC4_MIXER Switch' 0"
cset "name='TX_AIF1_CAP Mixer DEC0' 0"
cset "name='TX_AIF1_CAP Mixer DEC1' 0"
cset "name='TX_AIF1_CAP Mixer DEC2' 0"
cset "name='TX_AIF1_CAP Mixer DEC3' 0"
cset "name='TX_AIF2_CAP Mixer DEC0' 0"
cset "name='TX_AIF2_CAP Mixer DEC1' 0"
cset "name='TX_AIF2_CAP Mixer DEC2' 0"
cset "name='TX_AIF2_CAP Mixer DEC3' 0"
cset "name='TX_AIF2_CAP Mixer DEC4' 0"
cset "name='TX_AIF3_CAP Mixer DEC1' 0"
cset "name='TX_AIF3_CAP Mixer DEC2' 0"
cset "name='TX_AIF3_CAP Mixer DEC3' 0"
cset "name='TX_AIF3_CAP Mixer DEC4' 0"
cset "name='TX_AIF3_CAP Mixer DEC5' 0"
cset "name='TX_AIF3_CAP Mixer DEC6' 0"
cset "name='TX_AIF3_CAP Mixer DEC7' 0"
]
Value {
CapturePriority 100
CapturePCM "hw:${CardId},2"
}
}

View file

@ -0,0 +1,3 @@
# Xiaomi Pad 6 specific hexagonrpcd firmware directory
hexagonrpcd_fw_dir="/usr/share/qcom/sm8250/Xiaomi/pipa/"

View file

@ -0,0 +1,7 @@
nt36523_ts
qcom_common
qcom_pil_info
qcom_q6v5
qcom_q6v5_pas
spi-geni-qcom

View file

@ -0,0 +1,11 @@
Syntax 3
SectionUseCase."HiFi" {
File "/Xiaomi/pipa/HiFi.conf"
Comment "HiFi quality Music."
}
SectionUseCase."HDMI" {
File "/Qualcomm/sm8250/HDMI.conf"
Comment "HDMI output."
}

View file

@ -0,0 +1,3 @@
/usr/lib/firmware/novatek/nt36532_csot.bin
/usr/lib/firmware/novatek/nt36532_tianma.bin

View file

@ -0,0 +1,124 @@
maintainer="bluebunny <kalorin.bok084@passinbox.com>"
pkgname=firmware-xiaomi-pipa
pkgver=1
pkgrel=0
pkgdesc="Firmware for Xiaomi Pad 6"
subpackages="
$pkgname-adreno
$pkgname-adsp
$pkgname-awinic
$pkgname-cdsp
$pkgname-hexagonfs
$pkgname-novatek
$pkgname-nuvolta
$pkgname-slpi
$pkgname-venus
"
_repo="xiaomi-pipa-firmware"
url="https://github.com/pipa-mainline/$_repo"
arch="aarch64"
license="proprietary"
options="!check !strip !archcheck !tracedeps pmb:cross-native"
_commit="842d35beffeda8c6d1b0e611b335543bf0e6b41e"
source="
$url/archive/$_commit/$_repo-$_commit.tar.gz
50-novatek-touchscreen.files
"
builddir="$srcdir/$_repo-$_commit"
package() {
# parent package is empty
mkdir -p "$pkgdir"
}
adreno() {
pkgdesc="Xiaomi Pad 6 adreno firmware"
install -Dm644 "$builddir"/lib/firmware/sm8250/xiaomi/pipa/a650_zap.mbn -t \
"$subpkgdir/usr/lib/firmware/qcom/sm8250/xiaomi/pipa/"
}
adsp() {
pkgdesc="Xiaomi Pad 6 adsp firmware"
install -Dm644 "$builddir"/lib/firmware/sm8250/xiaomi/pipa/adsp.mbn -t \
"$subpkgdir/usr/lib/firmware/qcom/sm8250/xiaomi/pipa/"
install -Dm644 "$builddir"/lib/firmware/sm8250/xiaomi/pipa/adspr.jsn -t \
"$subpkgdir/usr/lib/firmware/qcom/sm8250/xiaomi/pipa/"
install -Dm644 "$builddir"/lib/firmware/sm8250/xiaomi/pipa/adspua.jsn -t \
"$subpkgdir/usr/lib/firmware/qcom/sm8250/xiaomi/pipa/"
}
awinic() {
pkgdesc="Xiaomi Pad 6 awinic firmware"
install -Dm644 "$builddir"/lib/firmware/awinic/aw88230_2113_pipa.bin -t \
"$subpkgdir/usr/lib/firmware/awinic/"
}
cdsp() {
pkgdesc="Xiaomi Pad 6 cdsp firmware"
install -Dm644 "$builddir"/lib/firmware/sm8250/xiaomi/pipa/cdsp.mbn -t \
"$subpkgdir/usr/lib/firmware/qcom/sm8250/xiaomi/pipa/"
install -Dm644 "$builddir"/lib/firmware/sm8250/xiaomi/pipa/cdspr.jsn -t \
"$subpkgdir/usr/lib/firmware/qcom/sm8250/xiaomi/pipa/"
}
hexagonfs() {
pkgdesc="Xiaomi Pad 6 hexagonfs files"
mkdir -p "$subpkgdir"/usr/share/qcom/sm8250/Xiaomi/
cp -r "$builddir"/usr/share/qcom/sm8250/Xiaomi/pipa/ \
"$subpkgdir"/usr/share/qcom/sm8250/Xiaomi/
# Remove files that we don't need - for now
rm -r "$subpkgdir"/usr/share/qcom/sm8250/Xiaomi/pipa/acdb/
rm -r "$subpkgdir"/usr/share/qcom/sm8250/Xiaomi/pipa/dsp/
find "$subpkgdir/usr/share/qcom/sm8250/Xiaomi/pipa/" \
-type f -exec chmod 0644 {} \;
}
novatek() {
pkgdesc="Xiaomi Pad 6 novatek firmware"
install -Dm644 "$builddir"/lib/firmware/novatek/nt36532_csot.bin -t \
"$subpkgdir/usr/lib/firmware/novatek/"
install -Dm644 "$builddir"/lib/firmware/novatek/nt36532_tianma.bin -t \
"$subpkgdir/usr/lib/firmware/novatek/"
install -Dm644 "$srcdir"/50-novatek-touchscreen.files -t \
"$subpkgdir/usr/share/mkinitfs/files/"
}
nuvolta() {
pkgdesc="Xiaomi Pad 6 nuvolta firmware"
install -Dm644 "$builddir"/lib/firmware/nuvolta/rx1665.bin -t \
"$subpkgdir/usr/lib/firmware/nuvolta/"
}
slpi() {
pkgdesc="Xiaomi Pad 6 slpi firmware"
install -Dm644 "$builddir"/lib/firmware/sm8250/xiaomi/pipa/slpi.mbn -t \
"$subpkgdir/usr/lib/firmware/qcom/sm8250/xiaomi/pipa/"
install -Dm644 "$builddir"/lib/firmware/sm8250/xiaomi/pipa/slpir.jsn -t \
"$subpkgdir/usr/lib/firmware/qcom/sm8250/xiaomi/pipa/"
install -Dm644 "$builddir"/lib/firmware/sm8250/xiaomi/pipa/slpius.jsn -t \
"$subpkgdir/usr/lib/firmware/qcom/sm8250/xiaomi/pipa/"
}
venus() {
pkgdesc="Xiaomi Pad 6 venus firmware"
install -Dm644 "$builddir"/lib/firmware/sm8250/xiaomi/pipa/venus.mbn -t \
"$subpkgdir/usr/lib/firmware/qcom/sm8250/xiaomi/pipa/"
}
sha512sums="
cbd61052dd5ddc54ed9290547ab4a63eca59cf113d5b3b0f5d64248b48e3e5616a12bc1296abe05d3ab3556054c3541b2cd5b6fa9d797bc49a5e6f32d5bea961 xiaomi-pipa-firmware-842d35beffeda8c6d1b0e611b335543bf0e6b41e.tar.gz
0036dfc52d9de2b1be8b275b36401d1c60a8b8531ce26edd59ac86e3c1dc3aa7f37944916a7b502f7e585d285cc59048a7322f8f46064c191ef732ea77733a52 50-novatek-touchscreen.files
"