Switched to files not git

This commit is contained in:
Gerben Jan Dijkman 2022-01-20 15:35:18 +01:00
parent f033eda3ce
commit 98711fe174
8 changed files with 881 additions and 8 deletions

View File

@ -1 +0,0 @@
DIST alsa-ucm-pinephone-1.2.6.3.tar.gz 4441 BLAKE2B 5999331e9769c60d1989248749b9c15a6804cf732299d11ea63107fc1afef7715c3ec30e7e1a15ac782e28d72fbb9a6748ae319244cef617ffc5d50d1b54b1b8 SHA512 2ced0519ade14a3865043d4e3cdab58072ab7ec1915f0fcb74dd7ecaa566074fca5f2d63ee9d6e86d013dd45b92da5892f9ec18025855c8d665a327c06212711

View File

@ -7,7 +7,6 @@ COMMIT="ec0ef36b8b897ed1ae6bb0d0de13d5776f5d3659"
DESCRIPTION="ALSA ucm configuration files for the PinePhone (Pro)" DESCRIPTION="ALSA ucm configuration files for the PinePhone (Pro)"
HOMEPAGE="https://gitlab.com/pine64-org/pine64-alsa-ucm" HOMEPAGE="https://gitlab.com/pine64-org/pine64-alsa-ucm"
SRC_URI="https://gitlab.com/pine64-org/pine64-alsa-ucm/-/archive/${COMMIT}.tar.gz -> ${P}.tar.gz"
LICENSE="BSD" LICENSE="BSD"
SLOT="0" SLOT="0"
@ -25,16 +24,14 @@ DEPEND="${RDEPEND}"
BDEPEND="${RDEPEND}" BDEPEND="${RDEPEND}"
S="${WORKDIR}/pine64-alsa-ucm-${COMMIT}"
src_install() { src_install() {
insinto /usr/share/alsa/ucm2/PinePhone insinto /usr/share/alsa/ucm2/PinePhone
#insopts -m644 insopts -m644
doins -r "${S}"/ucm2/PinePhone/*.conf doins -r "${FILESDIR}"/ucm2/PinePhone/*.conf
insinto /usr/share/alsa/ucm2/PinePhonePro insinto /usr/share/alsa/ucm2/PinePhonePro
#insopts -m644 insopts -m644
doins -r "${S}"/ucm2/PinePhonePro/*.conf doins -r "${FILESDIR}"/ucm2/PinePhonePro/*.conf
dosym /usr/share/alsa/ucm2/PinePhone/PinePhone.conf \ dosym /usr/share/alsa/ucm2/PinePhone/PinePhone.conf \
/usr/share/alsa/ucm2/conf.d/simple-card/PinePhone.conf /usr/share/alsa/ucm2/conf.d/simple-card/PinePhone.conf

View File

@ -0,0 +1,146 @@
SectionVerb {
EnableSequence [
cset "name='Headphone Playback Switch' off"
cset "name='Headphone Source Playback Route' DAC"
cset "name='Line In Playback Switch' off"
cset "name='Line Out Playback Switch' off"
cset "name='Line Out Source Playback Route' Mono Differential"
cset "name='Mic1 Playback Switch' off"
cset "name='Mic2 Playback Switch' off"
cset "name='AIF1 DA0 Playback Volume' 160"
cset "name='AIF3 ADC Source Capture Route' None"
cset "name='AIF2 DAC Source Playback Route' None"
cset "name='DAC Playback Switch' on"
cset "name='DAC Playback Volume' 160"
cset "name='ADC Digital DAC Playback Switch' off"
cset "name='AIF1 Slot 0 Digital DAC Playback Switch' on"
cset "name='AIF2 Digital DAC Playback Switch' off"
cset "name='DAC Reversed Playback Switch' off"
cset "name='Earpiece Playback Switch' off"
cset "name='Earpiece Source Playback Route' DACL"
cset "name='Line In Capture Switch' off"
cset "name='Mic1 Capture Switch' off"
cset "name='Mic1 Boost Volume' 7"
cset "name='Mic2 Capture Switch' off"
cset "name='Mic2 Boost Volume' 7"
cset "name='Mixer Capture Switch' off"
cset "name='Mixer Reversed Capture Switch' off"
cset "name='ADC Capture Volume' 160"
cset "name='ADC Gain Capture Volume' 7"
cset "name='AIF1 AD0 Capture Volume' 160"
cset "name='AIF1 Data Digital ADC Capture Switch' on"
cset "name='AIF2 ADC Mixer ADC Capture Switch' off"
cset "name='AIF2 ADC Mixer AIF1 DA0 Capture Switch' off"
cset "name='AIF2 ADC Mixer AIF2 DAC Rev Capture Switch' off"
cset "name='AIF2 ADC Mixer AIF1 DA0 Capture Switch' off"
cset "name='AIF2 ADC Mixer AIF1 DA0 Capture Switch' off"
]
DisableSequence [
]
Value {
}
}
SectionDevice."Speaker" {
Comment "Internal speaker"
EnableSequence [
cset "name='AIF1 DA0 Stereo Playback Route' Mix Mono"
cset "name='Line Out Playback Switch' on"
cset "name='Line Out Playback Volume' 100%"
]
DisableSequence [
cset "name='Line Out Playback Switch' off"
]
Value {
PlaybackVolume "Line Out Playback Volume"
PlaybackSwitch "Line Out Playback Switch"
PlaybackChannels 2
PlaybackPriority 300
PlaybackPCM "hw:${CardId},0"
}
}
SectionDevice."Earpiece" {
Comment "Internal Earpiece"
EnableSequence [
cset "name='AIF1 DA0 Stereo Playback Route' Mix Mono"
cset "name='Earpiece Playback Switch' on"
cset "name='Earpiece Playback Volume' 100%"
]
DisableSequence [
cset "name='Earpiece Playback Switch' off"
]
Value {
PlaybackVolume "Earpiece Playback Volume"
PlaybackSwitch "Earpiece Playback Switch"
PlaybackChannels 2
PlaybackPriority 200
PlaybackPCM "hw:${CardId},0"
}
}
SectionDevice."Mic" {
Comment "Internal Microphone"
ConflictingDevice [
"Headset"
]
EnableSequence [
cset "name='Mic1 Capture Switch' on"
]
DisableSequence [
cset "name='Mic1 Capture Switch' off"
]
Value {
CapturePriority 100
CapturePCM "hw:${CardId},0"
CaptureChannels 2
CaptureVolume "ADC Capture Volume"
CaptureSwitch "Mic1 Capture Switch"
}
}
SectionDevice."Headset" {
Comment "Headset Microphone"
ConflictingDevice [
"Mic"
]
EnableSequence [
cset "name='Mic2 Capture Switch' on"
]
DisableSequence [
cset "name='Mic2 Capture Switch' off"
]
Value {
CapturePriority 500
CapturePCM "hw:${CardId},0"
CaptureChannels 2
CaptureVolume "ADC Capture Volume"
CaptureSwitch "Mic2 Capture Switch"
JackControl "Headset Microphone Jack"
}
}
SectionDevice."Headphones" {
Comment "Headphones"
EnableSequence [
cset "name='AIF1 DA0 Stereo Playback Route' Stereo"
cset "name='Headphone Playback Switch' on"
cset "name='Headphone Playback Volume' 70%"
]
DisableSequence [
cset "name='Headphone Playback Switch' off"
]
Value {
PlaybackVolume "Headphone Playback Volume"
PlaybackSwitch "Headphone Playback Switch"
PlaybackChannels 2
PlaybackPriority 500
PlaybackPCM "hw:${CardId},0"
JackControl "Headphone Jack"
}
}

View File

@ -0,0 +1,151 @@
SectionVerb {
EnableSequence [
cset "name='Headphone Playback Switch' off"
cset "name='Headphone Source Playback Route' DAC"
cset "name='Line In Playback Switch' off"
cset "name='Line Out Playback Switch' off"
cset "name='Line Out Source Playback Route' Mono Differential"
cset "name='Mic1 Playback Switch' off"
cset "name='Mic2 Playback Switch' off"
cset "name='AIF1 DA0 Playback Volume' 160"
cset "name='AIF2 DAC Playback Volume' 160"
cset "name='AIF3 ADC Source Capture Route' None"
cset "name='AIF2 DAC Source Playback Route' None"
cset "name='DAC Playback Switch' on"
cset "name='DAC Playback Volume' 160"
cset "name='ADC Digital DAC Playback Switch' off"
cset "name='AIF1 Slot 0 Digital DAC Playback Switch' on"
cset "name='AIF2 Digital DAC Playback Switch' on"
cset "name='DAC Reversed Playback Switch' off"
cset "name='Earpiece Playback Switch' off"
cset "name='Earpiece Source Playback Route' DACL"
cset "name='Line In Capture Switch' off"
cset "name='Mic1 Capture Switch' off"
cset "name='Mic1 Boost Volume' 0"
cset "name='Mic1 Playback Volume' 7"
cset "name='Mic2 Capture Switch' off"
cset "name='Mic2 Boost Volume' 0"
cset "name='Mic2 Playback Volume' 7"
cset "name='Mixer Capture Switch' off"
cset "name='Mixer Reversed Capture Switch' off"
cset "name='ADC Capture Volume' 160"
cset "name='ADC Gain Capture Volume' 7"
cset "name='AIF1 AD0 Capture Volume' 160"
cset "name='AIF1 Data Digital ADC Capture Switch' on"
cset "name='AIF2 ADC Capture Volume' 160"
cset "name='AIF2 ADC Mixer ADC Capture Switch' on"
cset "name='AIF2 ADC Mixer AIF1 DA0 Capture Switch' off"
cset "name='AIF2 ADC Mixer AIF2 DAC Rev Capture Switch' off"
cset "name='AIF2 ADC Mixer AIF1 DA0 Capture Switch' off"
cset "name='AIF2 ADC Mixer AIF1 DA0 Capture Switch' off"
]
DisableSequence [
]
Value {
PlaybackRate 8000
}
}
SectionDevice."Speaker" {
Comment "Internal speaker"
EnableSequence [
cset "name='AIF1 DA0 Stereo Playback Route' Mix Mono"
cset "name='Line Out Playback Switch' on"
cset "name='Line Out Playback Volume' 100%"
]
DisableSequence [
cset "name='Line Out Playback Switch' off"
]
Value {
PlaybackVolume "Line Out Playback Volume"
PlaybackSwitch "Line Out Playback Switch"
PlaybackChannels 2
PlaybackPriority 300
PlaybackPCM "hw:${CardId},0"
}
}
SectionDevice."Earpiece" {
Comment "Internal Earpiece"
EnableSequence [
cset "name='AIF1 DA0 Stereo Playback Route' Mix Mono"
cset "name='Earpiece Playback Switch' on"
cset "name='Earpiece Playback Volume' 100%"
]
DisableSequence [
cset "name='Earpiece Playback Switch' off"
]
Value {
PlaybackVolume "Earpiece Playback Volume"
PlaybackSwitch "Earpiece Playback Switch"
PlaybackChannels 2
PlaybackPriority 500
PlaybackPCM "hw:${CardId},0"
}
}
SectionDevice."Mic" {
Comment "Internal Microphone"
ConflictingDevice [
"Headset"
]
EnableSequence [
cset "name='Mic1 Capture Switch' on"
]
DisableSequence [
cset "name='Mic1 Capture Switch' off"
]
Value {
CapturePriority 200
CapturePCM "hw:${CardId},0"
CaptureVolume "ADC Capture Volume"
CaptureSwitch "Mic1 Capture Switch"
CaptureChannels 2
}
}
SectionDevice."Headset" {
Comment "Headset Microphone"
ConflictingDevice [
"Mic"
]
EnableSequence [
cset "name='Mic2 Capture Switch' on"
]
DisableSequence [
cset "name='Mic2 Capture Switch' off"
]
Value {
CapturePriority 500
CapturePCM "hw:${CardId},0"
CaptureChannels 2
CaptureVolume "ADC Capture Volume"
CaptureSwitch "Mic2 Capture Switch"
JackControl "Headset Microphone Jack"
}
}
SectionDevice."Headphones" {
Comment "Headphones"
EnableSequence [
cset "name='AIF1 DA0 Stereo Playback Route' Stereo"
cset "name='Headphone Playback Switch' on"
cset "name='Headphone Playback Volume' 100%"
]
DisableSequence [
cset "name='Headphone Playback Switch' off"
]
Value {
PlaybackVolume "Headphone Playback Volume"
PlaybackSwitch "Headphone Playback Switch"
PlaybackChannels 2
PlaybackPriority 500
PlaybackPCM "hw:${CardId},0"
JackControl "Headphone Jack"
}
}

View File

@ -0,0 +1,11 @@
Syntax 2
SectionUseCase."HiFi" {
File "/PinePhone/HiFi.conf"
Comment "Play HiFi quality music"
}
SectionUseCase."Voice Call" {
File "/PinePhone/VoiceCall.conf"
Comment "Make a phone call"
}

View File

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

View File

@ -0,0 +1,275 @@
SectionVerb {
EnableSequence [
# First of all, disable the internal speaker amplifier
cset "name='Internal Speaker Switch' off"
### Based on /codecs/rt5640/EnableSeq.conf ###
# Get audio only from the microphones, not the system
cset "name='DAC MIXL INF1 Switch' off"
cset "name='DAC MIXR INF1 Switch' off"
cset "name='DAC MIXL Stereo ADC Switch' on"
cset "name='DAC MIXR Stereo ADC Switch' on"
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' 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"
# 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 routed to the left channel
cset "name='RECMIXL BST2 Switch' on"
cset "name='RECMIXR BST2 Switch' off"
# IN3 is modem audio, route it to the right channel
cset "name='RECMIXL BST3 Switch' off"
cset "name='RECMIXR BST3 Switch' on"
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"
# Loopback IN3 to earpiece/speaker/headphones
cset "name='OUT MIXR REC MIXR Switch' on"
cset "name='SPK MIXR OUT MIXR Switch' on"
# Send the left channel (microphones) to the modem through DAC L1
cset "name='LOUT MIX DAC L1 Switch' on"
# Don't use DAC R1 nor the OUTVOL blocks as we use them for
# routing audio from the modem
cset "name='LOUT MIX DAC R1 Switch' off"
cset "name='LOUT MIX OUTVOL L Switch' off"
cset "name='LOUT MIX OUTVOL R Switch' off"
# Disable left channel for HP (speaker/headphones) output
# as we're only routing modem audio to the right channel
cset "name='HP L Playback Switch' off"
# 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='Speaker L Playback Switch' off"
cset "name='Speaker R Playback Switch' off"
cset "name='Speaker Channel Switch' off"
# Reset output routing
cset "name='DAC MIXL Stereo ADC Switch' off"
cset "name='DAC MIXR Stereo ADC Switch' off"
cset "name='OUT MIXR REC MIXR Switch' off"
cset "name='SPK MIXR OUT MIXR Switch' off"
cset "name='LOUT MIX DAC L1 Switch' off"
# Reset ADC input routing
cset "name='RECMIXL BST2 Switch' off"
cset "name='RECMIXR BST3 Switch' off"
]
Value {
TQ "VoiceCall"
}
}
SectionDevice."Earpiece" {
Comment "Internal Earpiece"
ConflictingDevice [
"Headphones"
"Speaker"
]
EnableSequence [
cset "name='SPOL MIX SPKVOL L Switch' on"
# Send right channel to left as it's mono only
cset "name='SPOL MIX SPKVOL R Switch' on"
cset "name='Speaker Channel Switch' on"
cset "name='Speaker L Playback Switch' on"
]
DisableSequence [
cset "name='Speaker Channel Switch' off"
cset "name='Speaker L Playback Switch' off"
]
Value {
PlaybackPriority 200
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 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 R Playback Switch' off"
]
Value {
PlaybackPriority 100
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 R Playback Switch' on"
]
DisableSequence [
cset "name='HP Channel 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='Stereo ADC MIXL ADC2 Switch' on"
]
DisableSequence [
cset "name='Stereo ADC MIXL 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='Stereo ADC MIXL ADC1 Switch' on"
]
DisableSequence [
cset "name='Stereo ADC MIXL ADC1 Switch' off"
]
Value {
CapturePriority 200
CapturePCM "hw:${CardId}"
JackControl "Headphones Jack"
CaptureMixerElem "ADC"
CaptureVolume "ADC Capture Volume"
CaptureSwitch "ADC Capture Switch"
}
}

View File

@ -0,0 +1,16 @@
Syntax 4
Comment "PinePhone Pro"
SectionUseCase."HiFi" {
File "/PinePhonePro/HiFi.conf"
Comment "Play HiFi quality music"
}
SectionUseCase."Voice Call" {
File "/PinePhonePro/VoiceCall.conf"
Comment "Make a 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"