pmaports/device/testing/device-samsung-m0/ucm/HiFi.conf
Newbyte a23582e15c
samsung-m0: add initial audio support (MR 2992)
This is missing some functionality, notably input from the main
microphone and headset audio out. But, it should be better than
nothing.

Relates to https://gitlab.com/postmarketOS/pmaports/-/issues/1281
2022-03-13 18:02:45 +01:00

238 lines
6.4 KiB
Text

# Based on https://github.com/Midas-Mainline/android_device_midas_common/blob/lineage-18.1/configs/audio.i9300.xml
SectionVerb {
EnableSequence [
cdev "hw:Midas"
# do not change the adc & dac source of AIF2
cset "name='AIF2DACL Source' 0"
cset "name='AIF2DACR Source' 0"
cset "name='AIF2ADCL Source' 0"
cset "name='AIF2ADCR Source' 1"
# AIF1->DAC1
cset "name='DAC1 Switch' 1"
# general
cset "name='IN1L ZC Switch' 0"
cset "name='IN1R ZC Switch' 0"
cset "name='IN2L ZC Switch' 0"
cset "name='IN2R ZC Switch' 0"
cset "name='Output ZC Switch' 0"
cset "name='Speaker ZC Switch' 0"
cset "name='Headphone ZC Switch' 0"
# AIF1->DAC1
cset "name='DAC1L Mixer AIF1.1 Switch' 1"
cset "name='DAC1R Mixer AIF1.1 Switch' 1"
cset "name='DAC1 Switch' 1"
# ADC->AIF2
cset "name='AIF2DAC2L Mixer Left Sidetone Switch' 1"
cset "name='AIF2DAC2L Mixer Right Sidetone Switch' 0"
cset "name='AIF2DAC2R Mixer Left Sidetone Switch' 0"
cset "name='AIF2DAC2R Mixer Right Sidetone Switch' 1"
cset "name='DAC2 Left Sidetone Volume' 12"
cset "name='DAC2 Right Sidetone Volume' 12"
cset "name='DAC2 Switch' 1"
# DAC1->HP
cset "name='Left Headphone Mux' Mixer"
cset "name='Right Headphone Mux' Mixer"
# DAC1->SPKL/R->SPKL/R Boost->SPK
cset "name='SPKL DAC1 Switch' 1"
cset "name='SPKR DAC1 Switch' 1"
cset "name='SPKL Boost SPKL Switch' 1"
cset "name='SPKL Boost SPKR Switch' 1"
cset "name='SPKR Boost SPKL Switch' 0"
cset "name='SPKR Boost SPKR Switch' 0"
cset "name='Speaker Mixer Volume' 3"
# DAC->Output mixer->Earpiece
cset "name='Left Output Mixer DAC Switch' 1"
cset "name='Right Output Mixer DAC Switch' 1"
cset "name='Earpiece Mixer Left Output Switch' 1"
cset "name='Earpiece Mixer Right Output Switch' 1"
cset "name='Earpiece Switch' 1"
# LINEOUT
cset "name='LINEOUT2N Mixer Left Output Switch' 1"
cset "name='LINEOUT2P Mixer Right Output Switch' 1"
cset "name='LINEOUT1N Mixer Right Output Switch' 1"
cset "name='LINEOUT1P Mixer Left Output Switch' 1"
# Input mixer->ADC->AIF1.1
cset "name='AIF1ADC1L Mixer ADC/DMIC Switch' 1"
cset "name='AIF1ADC1R Mixer ADC/DMIC Switch' 1"
# Main Mic->IN1LP/N->Input Mixer with +30dB at mixer
cset "name='IN1L PGA IN1LP Switch' 1"
cset "name='IN1L PGA IN1LN Switch' 1"
cset "name='MIXINL IN1L Volume' 1"
cset "name='IN1L Switch' 1"
# Sub Mic->IN1RP/N->Input Mixer with +30dB at mixer
cset "name='IN1R PGA IN1RP Switch' 1"
cset "name='IN1R PGA IN1RN Switch' 1"
cset "name='MIXINR IN1R Volume' 1"
cset "name='IN1R Switch' 1"
# FM Radio->IN2RP/N->Input Mixer with +30dB at mixer
cset "name='IN2R PGA IN2RP Switch' 1"
cset "name='IN2R PGA IN2RN Switch' 1"
cset "name='MIXINR IN2R Volume' 1"
cset "name='IN2R Switch' 1"
# Ear Mic->IN2LP/N->Input Mixer with +30dB at mixer
cset "name='IN2L PGA IN2LP Switch' 1"
cset "name='IN2L PGA IN2LN Switch' 1"
cset "name='MIXINL IN2L Volume' 1"
cset "name='IN2L Switch' 1"
# Input mixer->ADC->AIF1
cset "name='AIF1ADC1L Mixer ADC/DMIC Switch' 1"
cset "name='AIF1ADC1R Mixer ADC/DMIC Switch' 1"
cset "name='ADCL Mux' ADC"
# HPF on to take out some bounce
cset "name='Sidetone HPF Switch' 0"
# Work around core issue
cset "name='ADCL Mux' DMIC"
cset "name='ADCL Mux' ADC"
cset "name='ADCR Mux' DMIC"
cset "name='ADCR Mux' ADC"
# AIF2ADCDAT to AIF3ADC mux
cset "name='AIF3ADC Mux' 1"
# Default all outputs off
cset "name='HP Switch' 0"
cset "name='SPK Switch' 0"
cset "name='RCV Switch' 0"
cset "name='LINE Switch' 0"
cset "name='HDMI Switch' 0"
# Default all inputs off
cset "name='Main Mic Switch' 0"
cset "name='Sub Mic Switch' 0"
cset "name='Headset Mic Switch' 0"
cset "name='FM In Switch' 0"
# EQ Switches
cset "name='AIF1DAC1 EQ Switch' 1"
cset "name='AIF1DAC1 EQ1 Volume' 9"
cset "name='AIF1DAC1 EQ2 Volume' 7"
cset "name='AIF1DAC1 EQ3 Volume' 10"
cset "name='AIF1DAC1 EQ4 Volume' 13"
cset "name='AIF1DAC1 EQ5 Volume' 12"
cset "name='Headphone Volume' 50"
cset "name='AIF1DAC1 Volume' 96"
cset "name='AIF1 Boost Volume' 0"
cset "name='DAC1 Volume' 96"
cset "name='Left Output Mixer DAC Volume' 7"
cset "name='Right Output Mixer DAC Volume' 7"
]
DisableSequence [
]
}
SectionDevice."Speaker" {
Comment "Built-in speaker"
EnableSequence [
cset "name='SPK Switch' 1"
cset "name='AIF1DAC1 Volume' 96"
cset "name='AIF1 Boost Volume' 0"
cset "name='DAC1 Volume' 96"
cset "name='Left Output Mixer DAC Volume' 7"
cset "name='Right Output Mixer DAC Volume' 7"
cset "name='SPKL DAC1 Volume' 1"
cset "name='SPKR DAC1 Volume' 1"
cset "name='Speaker Mixer Volume' 3"
cset "name='Speaker Boost Volume' 4"
cset "name='Speaker Volume' 57"
]
DisableSequence [
cset "name='SPK Switch' 0"
cset "name='Speaker Mixer Volume' 1"
cset "name='Speaker Volume' 0"
]
Value {
PlaybackVolume "Speaker Volume"
PlaybackSwitch "SPK Switch"
PlaybackChannels 2
PlaybackPCM "hw:${CardId}"
}
}
SectionDevice."BackInternalMicrophone" {
Comment "Back Internal Microphone"
EnableSequence [
cset "name='Sub Mic Switch' 1"
cset "name='IN1R Volume' 22"
cset "name='MIXINR IN1R Switch' 1"
cset "name='MIXINR IN1R Volume' 1"
cset "name='AIF1ADCR Source' 1"
cset "name='AIF2ADCR Source' 1"
cset "name='AIF1ADC1 HPF Mode' 1"
cset "name='AIF1ADC1 HPF Switch' 1"
cset "name='AIF1ADC1 Volume' 96"
]
DisableSequence [
cset "name='Sub Mic Switch' 0"
cset "name='MIXINR IN1R Switch' 0"
cset "name='IN1R Volume' 10"
]
Value {
CapturePCM "hw:${CardId}"
CaptureChannels 2
CaptureVolume "IN1R Volume"
}
}
SectionDevice."HeadsetIn" {
Comment "Headset Input"
EnableSequence [
cset "name='MIXINL IN1L Switch' 0"
cset "name='MIXINR IN1R Switch' 0"
cset "name='Headset Mic Switch' 1"
cset "name='IN2L Volume' 22"
cset "name='MIXINL IN2L Switch' 1"
cset "name='MIXINL IN2L Volume' 1"
cset "name='AIF1ADC1 HPF Mode' 1"
cset "name='AIF1ADC1 HPF Switch' 1"
cset "name='AIF1ADC1 Volume' 96"
cset "name='AIF1ADCL Source' 0"
cset "name='AIF1ADCR Source' 0"
cset "name='AIF2ADCL Source' 0"
]
DisableSequence [
cset "name='Headset Mic Switch' 0"
cset "name='IN2L Volume' 10"
cset "name='MIXINL IN2L Switch' 0"
cset "name='MIXINL IN2L Volume' 0"
cset "name='AIF1ADC1 HPF Mode' 0"
cset "name='AIF1ADC1 HPF Switch' 0"
cset "name='AIF1ADC1 Volume' 96"
]
Value {
CapturePCM "hw:${CardId}"
CaptureChannels 2
CaptureVolume "IN2L Volume"
}
}