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:
Jorijn van der Graaf 2026-08-08 20:48:28 +02:00
commit 719a10a997
7 changed files with 141 additions and 3 deletions

View 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"
}
}