From b57f2a06ac700bf574fc92909abe04fcf18bb537 Mon Sep 17 00:00:00 2001 From: Jorijn van der Graaf Date: Thu, 16 Jul 2026 17:24:43 +0200 Subject: [PATCH] ucm2: Qualcomm: add Fairphone (Gen. 6) (milos) profile Add a UCM profile for the Fairphone (Gen. 6) (SM7635 "milos") as used on postmarketOS mainline: Speaker (2x Awinic AW88261 on Senary MI2S, MultiMedia1 playback) and the handset microphone (WCD9378 AMIC1 via the TX macro, MultiMedia2 capture). Tested on the phone with PipeWire in a Plasma Mobile session. The layout follows conf.d/qcm6490: real files under Qualcomm/milos/Fairphone-Gen6/, a card-name symlink in conf.d/milos/. Content is identical to the files tested on the device except the verb File path, which follows the new location. Assisted-by: Claude:claude-fable-5 Signed-off-by: Jorijn van der Graaf --- .../milos/Fairphone-Gen6/Fairphone-Gen6.conf | 11 ++++ ucm2/Qualcomm/milos/Fairphone-Gen6/HiFi.conf | 59 +++++++++++++++++++ ucm2/conf.d/milos/Fairphone (Gen. 6).conf | 1 + 3 files changed, 71 insertions(+) create mode 100644 ucm2/Qualcomm/milos/Fairphone-Gen6/Fairphone-Gen6.conf create mode 100644 ucm2/Qualcomm/milos/Fairphone-Gen6/HiFi.conf create mode 120000 ucm2/conf.d/milos/Fairphone (Gen. 6).conf diff --git a/ucm2/Qualcomm/milos/Fairphone-Gen6/Fairphone-Gen6.conf b/ucm2/Qualcomm/milos/Fairphone-Gen6/Fairphone-Gen6.conf new file mode 100644 index 0000000..c66b5a0 --- /dev/null +++ b/ucm2/Qualcomm/milos/Fairphone-Gen6/Fairphone-Gen6.conf @@ -0,0 +1,11 @@ +Syntax 4 + +SectionUseCase."HiFi" { + File "/Qualcomm/milos/Fairphone-Gen6/HiFi.conf" + Comment "HiFi quality Music" +} + +BootSequence [ + cset "name='Amplifier L PCM Playback Volume' 352" + cset "name='Amplifier R PCM Playback Volume' 352" +] diff --git a/ucm2/Qualcomm/milos/Fairphone-Gen6/HiFi.conf b/ucm2/Qualcomm/milos/Fairphone-Gen6/HiFi.conf new file mode 100644 index 0000000..6332fac --- /dev/null +++ b/ucm2/Qualcomm/milos/Fairphone-Gen6/HiFi.conf @@ -0,0 +1,59 @@ +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. + 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" + ] + + Value { + CapturePriority 100 + CapturePCM "hw:${CardId},1" + } +} diff --git a/ucm2/conf.d/milos/Fairphone (Gen. 6).conf b/ucm2/conf.d/milos/Fairphone (Gen. 6).conf new file mode 120000 index 0000000..8e43deb --- /dev/null +++ b/ucm2/conf.d/milos/Fairphone (Gen. 6).conf @@ -0,0 +1 @@ +../../Qualcomm/milos/Fairphone-Gen6/Fairphone-Gen6.conf \ No newline at end of file