aports: add soc-fairphone-fp6-audio (topology, amp config, UCM)
Files copied byte-identical from the tested dev phone; installed to the exact deployed paths (the spaced tplg/UCM filenames come from the machine driver's card name). Wired into the image via extra_packages. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
939e2b84ba
commit
719a10a997
7 changed files with 141 additions and 3 deletions
|
|
@ -73,8 +73,9 @@ with the `aports/` overlay in this repository:
|
||||||
|
|
||||||
## Roadmap
|
## Roadmap
|
||||||
|
|
||||||
- [ ] End-to-end pipeline validation (`build.sh` has TODO(validate) markers)
|
- [x] End-to-end pipeline validation (first complete image built 2026-08-08)
|
||||||
- [ ] Speaker-audio userspace files (AudioReach topology + UCM; firmware
|
- [x] Speaker-audio userspace files (`soc-fairphone-fp6-audio`: topology,
|
||||||
redistribution being sorted out)
|
amp config, UCM — byte-identical to the tested dev-phone set; blob
|
||||||
|
provenance to be settled before this repo goes public)
|
||||||
- [ ] imsd 0.3.0 tag (aport currently needs it published)
|
- [ ] imsd 0.3.0 tag (aport currently needs it published)
|
||||||
- [ ] Nightly schedule once the first dispatched run is green
|
- [ ] Nightly schedule once the first dispatched run is green
|
||||||
|
|
|
||||||
38
aports/device/soc-fairphone-fp6-audio/APKBUILD
Normal file
38
aports/device/soc-fairphone-fp6-audio/APKBUILD
Normal file
|
|
@ -0,0 +1,38 @@
|
||||||
|
# Audio userspace files for the Fairphone 6 that no upstream package ships
|
||||||
|
# yet: the AudioReach topology (built from Catcrafts/audioreach-topology
|
||||||
|
# branch fp6), the AW88261 amp config blob, and the UCM profile. Files are
|
||||||
|
# byte-identical to the ones deployed and tested on the development FP6.
|
||||||
|
# The tplg/UCM target filenames contain spaces, hence the safe source names.
|
||||||
|
maintainer="Jorijn van der Graaf <jorijnvdgraaf@catcrafts.net>"
|
||||||
|
pkgname=soc-fairphone-fp6-audio
|
||||||
|
pkgver=1
|
||||||
|
pkgrel=0
|
||||||
|
pkgdesc="Fairphone 6 audio topology, amp firmware and UCM profile"
|
||||||
|
url="https://forgejo.catcrafts.net/Catcrafts/audioreach-topology"
|
||||||
|
arch="noarch"
|
||||||
|
license="BSD-3-Clause"
|
||||||
|
options="!check"
|
||||||
|
source="
|
||||||
|
fp6-tplg.bin
|
||||||
|
aw88261_acf.bin
|
||||||
|
ucm-milos-fp6.conf
|
||||||
|
HiFi.conf
|
||||||
|
"
|
||||||
|
|
||||||
|
package() {
|
||||||
|
install -Dm644 "$srcdir"/fp6-tplg.bin \
|
||||||
|
"$pkgdir/usr/lib/firmware/qcom/milos/Fairphone (Gen. 6)-tplg.bin"
|
||||||
|
install -Dm644 "$srcdir"/aw88261_acf.bin \
|
||||||
|
"$pkgdir"/usr/lib/firmware/qcom/milos/fairphone/fp6/aw88261_acf.bin
|
||||||
|
install -Dm644 "$srcdir"/ucm-milos-fp6.conf \
|
||||||
|
"$pkgdir/usr/share/alsa/ucm2/conf.d/milos/Fairphone (Gen. 6).conf"
|
||||||
|
install -Dm644 "$srcdir"/HiFi.conf \
|
||||||
|
"$pkgdir"/usr/share/alsa/ucm2/Fairphone/fp6/HiFi.conf
|
||||||
|
}
|
||||||
|
|
||||||
|
sha512sums="
|
||||||
|
51071c574b9f5899c78ba9fe1b6f3bbda2195e6d274014a05869ae56ed0ff18e15678bd7d78cd68846900d3c579556328e229842152cffd943186d43344ed33c fp6-tplg.bin
|
||||||
|
a84b0595ae71b0bb594034a9f5fd77b984c9086cd917f32524c4b5172bc72a426e5d188d18dbccdb587f66d60fa15cad441fffcd48a3a1ce66335199b61e0350 aw88261_acf.bin
|
||||||
|
3bb268f9fcb8d1c0b42741b67da42b6361bab259e7211d9930919995ebe7dcf67826e6d4f00ff5e4fe5b52067fe90d00212158c3b4879d1bee481e87f0623206 ucm-milos-fp6.conf
|
||||||
|
2a189c3141fedc43f8eb19f4df1e43487223d524e27da3f948556d224cca1f493f6815ada191953fb79a19d5c5abadb21de7b3ece7b74b0929338c216e21e84a HiFi.conf
|
||||||
|
"
|
||||||
86
aports/device/soc-fairphone-fp6-audio/HiFi.conf
Normal file
86
aports/device/soc-fairphone-fp6-audio/HiFi.conf
Normal file
|
|
@ -0,0 +1,86 @@
|
||||||
|
SectionVerb {
|
||||||
|
Value {
|
||||||
|
TQ "HiFi"
|
||||||
|
}
|
||||||
|
EnableSequence [
|
||||||
|
cset "name='SEN_MI2S_RX Audio Mixer MultiMedia1' 1"
|
||||||
|
cset "name='MultiMedia2 Mixer TX_CODEC_DMA_TX_3' 1"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
SectionDevice."Speaker" {
|
||||||
|
Comment "Internal stereo speakers (2x AW88261)"
|
||||||
|
|
||||||
|
EnableSequence [
|
||||||
|
cset "name='Amplifier L PCM Playback Volume' 352"
|
||||||
|
cset "name='Amplifier R PCM Playback Volume' 352"
|
||||||
|
]
|
||||||
|
|
||||||
|
DisableSequence [
|
||||||
|
cset "name='Amplifier L PCM Playback Volume' 0"
|
||||||
|
cset "name='Amplifier R PCM Playback Volume' 0"
|
||||||
|
]
|
||||||
|
|
||||||
|
Value {
|
||||||
|
PlaybackPriority 100
|
||||||
|
PlaybackPCM "hw:${CardId},0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
SectionDevice."Mic" {
|
||||||
|
Comment "Handset microphone (AMIC1, bottom edge)"
|
||||||
|
|
||||||
|
# WCD9378 ADC1 -> SoundWire -> TX macro DEC0 -> TX_CODEC_DMA_TX_3.
|
||||||
|
# 'TX SMIC MUX0' takes the mux item name SWR_MIC0, not the
|
||||||
|
# SWR_INPUT0 widget it routes from.
|
||||||
|
#
|
||||||
|
# The codec-side controls only exist when the stock wcd9378
|
||||||
|
# driver owns the TX slave. With the SDCA-class prototype driver
|
||||||
|
# (sdca-mobile branch) the codec bring-up happens in the kernel
|
||||||
|
# on PDE power-up and the card exposes no codec controls; only
|
||||||
|
# the TX macro half of the sequence applies then.
|
||||||
|
If.codec {
|
||||||
|
Condition {
|
||||||
|
Type ControlExists
|
||||||
|
Control "name='ADC1 MUX'"
|
||||||
|
}
|
||||||
|
True {
|
||||||
|
EnableSequence [
|
||||||
|
cset "name='ADC1 MUX' CH1_AMIC1"
|
||||||
|
cset "name='ADC1 Switch' 1"
|
||||||
|
cset "name='ADC1 Volume' 12"
|
||||||
|
cset "name='TX0 MODE' ADC_NORMAL"
|
||||||
|
cset "name='TX0 SEQUENCER Switch' 1"
|
||||||
|
cset "name='TX SMIC MUX0' SWR_MIC0"
|
||||||
|
cset "name='TX DEC0 MUX' SWR_MIC"
|
||||||
|
cset "name='TX_DEC0 Volume' 84"
|
||||||
|
cset "name='TX_AIF1_CAP Mixer DEC0' 1"
|
||||||
|
]
|
||||||
|
|
||||||
|
DisableSequence [
|
||||||
|
cset "name='TX_AIF1_CAP Mixer DEC0' 0"
|
||||||
|
cset "name='TX0 SEQUENCER Switch' 0"
|
||||||
|
cset "name='ADC1 Switch' 0"
|
||||||
|
cset "name='TX SMIC MUX0' ZERO"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
False {
|
||||||
|
EnableSequence [
|
||||||
|
cset "name='TX SMIC MUX0' SWR_MIC0"
|
||||||
|
cset "name='TX DEC0 MUX' SWR_MIC"
|
||||||
|
cset "name='TX_DEC0 Volume' 84"
|
||||||
|
cset "name='TX_AIF1_CAP Mixer DEC0' 1"
|
||||||
|
]
|
||||||
|
|
||||||
|
DisableSequence [
|
||||||
|
cset "name='TX_AIF1_CAP Mixer DEC0' 0"
|
||||||
|
cset "name='TX SMIC MUX0' ZERO"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Value {
|
||||||
|
CapturePriority 100
|
||||||
|
CapturePCM "hw:${CardId},1"
|
||||||
|
}
|
||||||
|
}
|
||||||
BIN
aports/device/soc-fairphone-fp6-audio/aw88261_acf.bin
Normal file
BIN
aports/device/soc-fairphone-fp6-audio/aw88261_acf.bin
Normal file
Binary file not shown.
BIN
aports/device/soc-fairphone-fp6-audio/fp6-tplg.bin
Normal file
BIN
aports/device/soc-fairphone-fp6-audio/fp6-tplg.bin
Normal file
Binary file not shown.
11
aports/device/soc-fairphone-fp6-audio/ucm-milos-fp6.conf
Normal file
11
aports/device/soc-fairphone-fp6-audio/ucm-milos-fp6.conf
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
Syntax 4
|
||||||
|
|
||||||
|
SectionUseCase."HiFi" {
|
||||||
|
File "/Fairphone/fp6/HiFi.conf"
|
||||||
|
Comment "HiFi quality Music"
|
||||||
|
}
|
||||||
|
|
||||||
|
BootSequence [
|
||||||
|
cset "name='Amplifier L PCM Playback Volume' 352"
|
||||||
|
cset "name='Amplifier R PCM Playback Volume' 352"
|
||||||
|
]
|
||||||
2
build.sh
2
build.sh
|
|
@ -75,6 +75,7 @@ git clone -q --depth=1 "$PMAPORTS_REPO" "$WORK/pmaports"
|
||||||
rm -rf "$WORK/pmaports/device/testing/linux-postmarketos-qcom-milos" \
|
rm -rf "$WORK/pmaports/device/testing/linux-postmarketos-qcom-milos" \
|
||||||
"$WORK/pmaports/main/postmarketos-config-nftables"
|
"$WORK/pmaports/main/postmarketos-config-nftables"
|
||||||
cp -r aports/device/linux-postmarketos-qcom-milos "$WORK/pmaports/device/testing/"
|
cp -r aports/device/linux-postmarketos-qcom-milos "$WORK/pmaports/device/testing/"
|
||||||
|
cp -r aports/device/soc-fairphone-fp6-audio "$WORK/pmaports/device/"
|
||||||
cp -r aports/main/postmarketos-config-nftables "$WORK/pmaports/main/"
|
cp -r aports/main/postmarketos-config-nftables "$WORK/pmaports/main/"
|
||||||
cp -r aports/modem/imsd "$WORK/pmaports/modem/"
|
cp -r aports/modem/imsd "$WORK/pmaports/modem/"
|
||||||
|
|
||||||
|
|
@ -109,6 +110,7 @@ aports = $WORK/pmaports
|
||||||
device = fairphone-fp6
|
device = fairphone-fp6
|
||||||
ui = plasma-mobile
|
ui = plasma-mobile
|
||||||
systemd = always
|
systemd = always
|
||||||
|
extra_packages = soc-fairphone-fp6-audio
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
pmbootstrap checksum linux-postmarketos-qcom-milos
|
pmbootstrap checksum linux-postmarketos-qcom-milos
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue