forked from alsa-project/alsa-ucm-conf
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
ucm2: add profile for the PinePhonePro
* imported from: https://gitlab.com/pine64-org/pine64-alsa-ucm/-/commit/ec0ef36b8b897ed1ae6bb0d0de13d5776f5d3659 * fixes: alsa-project#125 Signed-off-by: Arnaud Ferraris <[email protected]> Signed-off-by: Martin Jansa <[email protected]>
- Loading branch information
1 parent
d42e1d1
commit b0dca4a
Showing
4 changed files
with
570 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,278 @@ | ||
SectionVerb { | ||
EnableSequence [ | ||
# First of all, disable the internal speaker amplifier | ||
cset "name='Internal Speaker Switch' off" | ||
|
||
### Based on /codecs/rt5640/EnableSeq.conf ### | ||
|
||
# RT5640 default output routing | ||
cset "name='DAC MIXL INF1 Switch' on" | ||
cset "name='DAC MIXR INF1 Switch' on" | ||
cset "name='DAC MIXL Stereo ADC Switch' off" | ||
cset "name='DAC MIXR Stereo ADC Switch' off" | ||
cset "name='Stereo DAC MIXL DAC L1 Switch' on" | ||
cset "name='Stereo DAC MIXR DAC R1 Switch' on" | ||
cset "name='Stereo DAC MIXL DAC L2 Switch' on" | ||
cset "name='Stereo DAC MIXR DAC R2 Switch' on" | ||
cset "name='OUT MIXL DAC L1 Switch' on" | ||
cset "name='OUT MIXR DAC R1 Switch' on" | ||
cset "name='SPK MIXL DAC L1 Switch' on" | ||
cset "name='SPK MIXR DAC R1 Switch' on" | ||
|
||
# uncomment to enable swap between AIF1 and AIF2 | ||
# warning: can only work with SSP0 firmware enabled | ||
cset "name='SDI select' 0" | ||
cset "name='DAI select' 0" | ||
#cset "name='SDI select' 1" | ||
#cset "name='DAI select' 1" | ||
|
||
cset "name='DAC2 Playback Switch' on" | ||
|
||
# Input Configuration | ||
cset "name='Stereo ADC1 Mux' ADC" | ||
cset "name='Stereo ADC2 Mux' DMIC1" | ||
cset "name='ADC Capture Switch' on" | ||
|
||
cset "name='Mono ADC L1 Mux' ADCL" | ||
cset "name='Mono ADC R1 Mux' ADCR" | ||
cset "name='Mono ADC L2 Mux' DMIC L1" | ||
cset "name='Mono ADC R2 Mux' DMIC R1" | ||
cset "name='Mono ADC Capture Switch' on" | ||
|
||
# Set capture volume to 0dB so modem audio doesn't overdrive the ADC | ||
cset "name='ADC Capture Volume' 47" | ||
cset "name='Mono ADC Capture Volume' 47" | ||
|
||
# The second 'Mono ADC' path does not have a 'Boost Gain', | ||
# set this to 0dB so that the volume of the AIF1 and AIF2 paths is equal. | ||
cset "name='ADC Boost Gain' 0" | ||
|
||
# Set IN1 internal mic boost to 8 (max) | ||
# Set IN2 headset-mic boost to 1, headset mics are quite loud | ||
# Set IN3 (modem audio) boost to 0 as it's already loud enough | ||
cset "name='IN1 Boost' 8" | ||
cset "name='IN2 Boost' 1" | ||
cset "name='IN3 Boost' 0" | ||
|
||
# Start with all controls which are used by the individual | ||
# input/output Enable/DisableSequences off | ||
|
||
cset "name='RECMIXL BST1 Switch' off" | ||
cset "name='RECMIXR BST1 Switch' off" | ||
# IN2 is headset mic, make sure its route is enabled | ||
cset "name='RECMIXL BST2 Switch' on" | ||
cset "name='RECMIXR BST2 Switch' on" | ||
cset "name='RECMIXL BST3 Switch' off" | ||
cset "name='RECMIXR BST3 Switch' off" | ||
|
||
cset "name='Stereo ADC MIXL ADC1 Switch' off" | ||
cset "name='Stereo ADC MIXR ADC1 Switch' off" | ||
cset "name='Stereo ADC MIXL ADC2 Switch' off" | ||
cset "name='Stereo ADC MIXR ADC2 Switch' off" | ||
cset "name='Mono ADC MIXL ADC1 Switch' off" | ||
cset "name='Mono ADC MIXR ADC1 Switch' off" | ||
cset "name='Mono ADC MIXL ADC2 Switch' off" | ||
cset "name='Mono ADC MIXR ADC2 Switch' off" | ||
|
||
# Limit amplification factor of earpiece amplifier so sound stays clear | ||
cset "name='Class D SPK Ratio Control' 1.66x" | ||
|
||
# Turn off playback switches by default, otherwise both Speaker | ||
# and headphones are playing audio initially until headphones are | ||
# re-inserted. | ||
cset "name='HP L Playback Switch' off" | ||
cset "name='HP R Playback Switch' off" | ||
cset "name='Speaker L Playback Switch' off" | ||
cset "name='Speaker R Playback Switch' off" | ||
|
||
# MONO output is used as IN3 here, so make sure it's disabled | ||
cset "name='Mono Playback Switch' off" | ||
|
||
# Set playback volumes to 0dB | ||
cset "name='HP Playback Volume' 31" | ||
cset "name='Speaker Playback Volume' 31" | ||
] | ||
|
||
DisableSequence [ | ||
# Turn off all output channels | ||
cset "name='HP L Playback Switch' off" | ||
cset "name='HP R Playback Switch' off" | ||
cset "name='HP Channel Switch' off" | ||
cset "name='HPO MIX HPVOL Switch' off" | ||
cset "name='Speaker L Playback Switch' off" | ||
cset "name='Speaker R Playback Switch' off" | ||
cset "name='Speaker Channel Switch' off" | ||
cset "name='SPOL MIX SPKVOL L Switch' off" | ||
cset "name='SPOL MIX SPKVOL R Switch' off" | ||
|
||
|
||
# Reset output routing | ||
cset "name='DAC MIXL INF1 Switch' off" | ||
cset "name='DAC MIXR INF1 Switch' off" | ||
cset "name='OUT MIXL DAC L1 Switch' off" | ||
cset "name='OUT MIXR DAC R1 Switch' off" | ||
cset "name='SPK MIXL DAC L1 Switch' off" | ||
cset "name='SPK MIXR DAC R1 Switch' off" | ||
] | ||
|
||
Value { | ||
TQ "HiFi" | ||
} | ||
} | ||
|
||
SectionDevice."Earpiece" { | ||
Comment "Internal Earpiece" | ||
|
||
ConflictingDevice [ | ||
"Headphones" | ||
"Speaker" | ||
] | ||
|
||
EnableSequence [ | ||
cset "name='SPOL MIX SPKVOL L Switch' on" | ||
# for mono speaker we apply left on right | ||
# cset "name='SPOR MIX SPKVOL R Switch' on" | ||
cset "name='SPOL MIX SPKVOL R Switch' on" | ||
cset "name='Speaker Channel Switch' on" | ||
cset "name='Speaker L Playback Switch' on" | ||
cset "name='Speaker R Playback Switch' on" | ||
] | ||
|
||
DisableSequence [ | ||
cset "name='Speaker Channel Switch' off" | ||
cset "name='Speaker L Playback Switch' off" | ||
cset "name='Speaker R Playback Switch' off" | ||
] | ||
|
||
Value { | ||
PlaybackPriority 100 | ||
PlaybackPCM "hw:${CardId}" | ||
PlaybackMixerElem "Speaker" | ||
PlaybackVolume "Speaker Playback Volume" | ||
PlaybackMasterElem "DAC1" | ||
} | ||
} | ||
|
||
SectionDevice."Speaker" { | ||
Comment "Internal Speaker" | ||
|
||
ConflictingDevice [ | ||
"Earpiece" | ||
"Headphones" | ||
] | ||
|
||
EnableSequence [ | ||
cset "name='HPO MIX HPVOL Switch' on" | ||
cset "name='HP Channel Switch' on" | ||
cset "name='HP L Playback Switch' on" | ||
cset "name='HP R Playback Switch' on" | ||
cset "name='Internal Speaker Switch' on" | ||
] | ||
|
||
DisableSequence [ | ||
cset "name='Internal Speaker Switch' off" | ||
cset "name='HP Channel Switch' off" | ||
cset "name='HP L Playback Switch' off" | ||
cset "name='HP R Playback Switch' off" | ||
] | ||
|
||
Value { | ||
PlaybackPriority 200 | ||
PlaybackPCM "hw:${CardId}" | ||
PlaybackMixerElem "HP" | ||
PlaybackVolume "HP Playback Volume" | ||
PlaybackMasterElem "DAC1" | ||
} | ||
} | ||
|
||
SectionDevice."Headphones" { | ||
Comment "Headphones" | ||
|
||
ConflictingDevice [ | ||
"Earpiece" | ||
"Speaker" | ||
] | ||
|
||
EnableSequence [ | ||
cset "name='HPO MIX HPVOL Switch' on" | ||
cset "name='HP Channel Switch' on" | ||
cset "name='HP L Playback Switch' on" | ||
cset "name='HP R Playback Switch' on" | ||
] | ||
|
||
DisableSequence [ | ||
cset "name='HP Channel Switch' off" | ||
cset "name='HP L Playback Switch' off" | ||
cset "name='HP R Playback Switch' off" | ||
] | ||
|
||
Value { | ||
PlaybackPriority 300 | ||
PlaybackPCM "hw:${CardId}" | ||
JackControl "Headphones Jack" | ||
PlaybackMixerElem "HP" | ||
PlaybackVolume "HP Playback Volume" | ||
PlaybackMasterElem "DAC1" | ||
} | ||
} | ||
|
||
SectionDevice."Mic" { | ||
Comment "Internal Microphone" | ||
|
||
ConflictingDevice [ | ||
"Headset" | ||
] | ||
|
||
EnableSequence [ | ||
cset "name='Mono ADC MIXL ADC2 Switch' on" | ||
cset "name='Mono ADC MIXR ADC2 Switch' on" | ||
cset "name='Stereo ADC MIXL ADC2 Switch' on" | ||
cset "name='Stereo ADC MIXR ADC2 Switch' on" | ||
] | ||
|
||
DisableSequence [ | ||
cset "name='Mono ADC MIXL ADC2 Switch' off" | ||
cset "name='Mono ADC MIXR ADC2 Switch' off" | ||
cset "name='Stereo ADC MIXL ADC2 Switch' off" | ||
cset "name='Stereo ADC MIXR ADC2 Switch' off" | ||
] | ||
|
||
Value { | ||
CapturePriority 100 | ||
CapturePCM "hw:${CardId}" | ||
CaptureMixerElem "ADC" | ||
CaptureVolume "ADC Capture Volume" | ||
CaptureSwitch "ADC Capture Switch" | ||
} | ||
} | ||
|
||
SectionDevice."Headset" { | ||
Comment "Headset Microphone" | ||
|
||
ConflictingDevice [ | ||
"Mic" | ||
] | ||
|
||
EnableSequence [ | ||
cset "name='Mono ADC MIXL ADC1 Switch' on" | ||
cset "name='Mono ADC MIXR ADC1 Switch' on" | ||
cset "name='Stereo ADC MIXL ADC1 Switch' on" | ||
cset "name='Stereo ADC MIXR ADC1 Switch' on" | ||
] | ||
|
||
DisableSequence [ | ||
cset "name='Mono ADC MIXL ADC1 Switch' off" | ||
cset "name='Mono ADC MIXR ADC1 Switch' off" | ||
cset "name='Stereo ADC MIXL ADC1 Switch' off" | ||
cset "name='Stereo ADC MIXR ADC1 Switch' off" | ||
] | ||
|
||
Value { | ||
CapturePriority 200 | ||
CapturePCM "hw:${CardId}" | ||
JackControl "Headphones Jack" | ||
CaptureMixerElem "ADC" | ||
CaptureVolume "ADC Capture Volume" | ||
CaptureSwitch "ADC Capture Switch" | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
Syntax 4 | ||
Comment "PinePhone Pro" | ||
|
||
SectionUseCase."HiFi" { | ||
File "HiFi.conf" | ||
Comment "Default" | ||
} | ||
|
||
SectionUseCase."Voice Call" { | ||
File "VoiceCall.conf" | ||
Comment "Phone call" | ||
} | ||
|
||
Include.card-init.File "/lib/card-init.conf" | ||
Include.ctl-remap.File "/lib/ctl-remap.conf" | ||
Include.codec-init.File "/codecs/rt5640/init.conf" |
Oops, something went wrong.