Skip to content

Commit

Permalink
tegra: Add UCM for MAX98089 based LG Optimus 4X HD and Vu
Browse files Browse the repository at this point in the history
Maxim MAX98089 based LG Optimus 4X HD and Vu are powered by
NVIDIA Tegra30 SoC. They feature 2-channel speaker, built-in
stereo microphone and 4-pin 3.5mm jack for headphones and
headset.

Tested-by: Andreas Westman Dorcsak <hedmoo@yahoo.com> # LG P880 T30
Tested-by: Svyatoslav Ryhel <clamor95@gmail.com> # LG P895 T30
Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
  • Loading branch information
clamor-s committed Aug 4, 2023
1 parent f59b47d commit 04dab15
Show file tree
Hide file tree
Showing 5 changed files with 322 additions and 0 deletions.
148 changes: 148 additions & 0 deletions ucm2/Tegra/max98089/lge-x3-HiFi.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,148 @@
# Use case Configuration for MAX98089 on LG Optimus 4X HD/Vu P880/P895

SectionDevice."Speaker" {
Comment "Speaker"

ConflictingDevice [
"Headphones"
]

EnableSequence [
cset "name='Speaker Switch' on"
cset "name='Int Spk Switch' on"

cset "name='Left SPK Mixer Left DAC1 Switch' on"
cset "name='Left SPK Mixer Left DAC2 Switch' on"
cset "name='Left SPK Mixer Right DAC1 Switch' on"
cset "name='Left SPK Mixer Right DAC2 Switch' on"
]

DisableSequence [
cset "name='Speaker Switch' off"
cset "name='Int Spk Switch' off"

cset "name='Left SPK Mixer Left DAC1 Switch' off"
cset "name='Left SPK Mixer Left DAC2 Switch' off"
cset "name='Left SPK Mixer Right DAC1 Switch' off"
cset "name='Left SPK Mixer Right DAC2 Switch' off"
]

Value {
PlaybackPCM "hw:${CardId}"
PlaybackChannels 2
PlaybackPriority 300

PlaybackMixerElem "Speaker"
}
}

SectionDevice."Headphones" {
Comment "Headphones"

ConflictingDevice [
"Speaker"
]

EnableSequence [
cset "name='Headphone Switch' on"

cset "name='Left HP Mixer Left DAC1 Switch' on"
cset "name='Left HP Mixer Left DAC2 Switch' on"
cset "name='Right HP Mixer Right DAC1 Switch' on"
cset "name='Right HP Mixer Right DAC2 Switch' on"
]

DisableSequence [
cset "name='Headphone Switch' off"

cset "name='Left HP Mixer Left DAC1 Switch' off"
cset "name='Left HP Mixer Left DAC2 Switch' off"
cset "name='Right HP Mixer Right DAC1 Switch' off"
cset "name='Right HP Mixer Right DAC2 Switch' off"
]

Value {
PlaybackPCM "hw:${CardId}"
PlaybackChannels 2
PlaybackPriority 100

PlaybackMixerElem "Headphone"

JackControl "Headphone Jack"
}
}

SectionDevice."Mic1" {
Comment "Internal Microphone"

ConflictingDevice [
"Mic2"
]

EnableSequence [
# Main MIC
cset "name='Internal Mic 1 Switch' on"
cset "name='DAI1 ADC Filter' fc=258/fs=16k"

cset "name='Left ADC Mixer MIC1 Switch' on"
cset "name='Right ADC Mixer MIC1 Switch' on"

# Secondary MIC
cset "name='Int Mic Switch' on"
cset "name='Internal Mic 2 Switch' on"

cset "name='Left ADC Mixer MIC2 Switch' on"
cset "name='Right ADC Mixer MIC2 Switch' on"
]

DisableSequence [
# Main MIC
cset "name='Internal Mic 1 Switch' off"
cset "name='DAI1 ADC Filter' off"

cset "name='Left ADC Mixer MIC1 Switch' off"
cset "name='Right ADC Mixer MIC1 Switch' off"

# Secondary MIC
cset "name='Int Mic Switch' off"
cset "name='Internal Mic 2 Switch' off"

cset "name='Left ADC Mixer MIC2 Switch' off"
cset "name='Right ADC Mixer MIC2 Switch' off"
]

Value {
CapturePCM "hw:${CardId}"
CaptureChannels 2
CapturePriority 200
}
}

SectionDevice."Mic2" {
Comment "External Microphone"

ConflictingDevice [
"Mic1"
]

EnableSequence [
cset "name='Mic Jack Switch' on"

cset "name='Left ADC Mixer INA1 Switch' on"
cset "name='Right ADC Mixer INA1 Switch' on"
]

DisableSequence [
cset "name='Mic Jack Switch' off"

cset "name='Left ADC Mixer INA1 Switch' off"
cset "name='Right ADC Mixer INA1 Switch' off"
]

Value {
CapturePCM "hw:${CardId}"
CapturePriority 100

JackControl "Mic Jack"
}
}
125 changes: 125 additions & 0 deletions ucm2/Tegra/max98089/lge-x3-VoiceCall.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,125 @@
# Use case Configuration for MAX98089 on LG Optimus 4X HD/Vu P880/P895

SectionDevice."Speaker" {
Comment "Speaker"

ConflictingDevice [
"Earpiece"
]

EnableSequence [
cset "name='Speaker Switch' on"
cset "name='Int Spk Switch' on"

cset "name='Left SPK Mixer Left DAC1 Switch' on"
cset "name='Left SPK Mixer Left DAC2 Switch' on"
cset "name='Left SPK Mixer Right DAC1 Switch' on"
cset "name='Left SPK Mixer Right DAC2 Switch' on"
]

DisableSequence [
cset "name='Speaker Switch' off"
cset "name='Int Spk Switch' off"

cset "name='Left SPK Mixer Left DAC1 Switch' off"
cset "name='Left SPK Mixer Left DAC2 Switch' off"
cset "name='Left SPK Mixer Right DAC1 Switch' off"
cset "name='Left SPK Mixer Right DAC2 Switch' off"
]

Value {
PlaybackPCM "hw:${CardId}"
PlaybackChannels 2
PlaybackPriority 100

PlaybackMixerElem "Speaker"
}
}

SectionDevice."Earpiece" {
Comment "Earpiece"

ConflictingDevice [
"Speaker"
]

EnableSequence [
cset "name='Receiver Switch' on"
cset "name='Earpiece Switch' on"

cset "name='Left REC Mixer Left DAC1 Switch' on"
cset "name='Left REC Mixer Left DAC2 Switch' on"
cset "name='Left REC Mixer Right DAC1 Switch' on"
cset "name='Left REC Mixer Right DAC2 Switch' on"

cset "name='Right REC Mixer Left DAC1 Switch' on"
cset "name='Right REC Mixer Left DAC2 Switch' on"
cset "name='Right REC Mixer Right DAC1 Switch' on"
cset "name='Right REC Mixer Right DAC2 Switch' on"
]

DisableSequence [
cset "name='Receiver Switch' off"
cset "name='Earpiece Switch' off"

cset "name='Left REC Mixer Left DAC1 Switch' off"
cset "name='Left REC Mixer Left DAC2 Switch' off"
cset "name='Left REC Mixer Right DAC1 Switch' off"
cset "name='Left REC Mixer Right DAC2 Switch' off"

cset "name='Right REC Mixer Left DAC1 Switch' off"
cset "name='Right REC Mixer Left DAC2 Switch' off"
cset "name='Right REC Mixer Right DAC1 Switch' off"
cset "name='Right REC Mixer Right DAC2 Switch' off"
]

Value {
PlaybackPCM "hw:${CardId}"
PlaybackChannels 2
PlaybackPriority 200

PlaybackMixerElem "Receiver"
}
}

SectionDevice."Mic1" {
Comment "Internal Microphone"

EnableSequence [
# Main MIC
cset "name='Internal Mic 1 Switch' on"
cset "name='DAI1 ADC Filter' fc=258/fs=16k"

cset "name='Left ADC Mixer MIC1 Switch' on"
cset "name='Right ADC Mixer MIC1 Switch' on"

# Secondary MIC
cset "name='Int Mic Switch' on"
cset "name='Internal Mic 2 Switch' on"

cset "name='Left ADC Mixer MIC2 Switch' on"
cset "name='Right ADC Mixer MIC2 Switch' on"
]

DisableSequence [
# Main MIC
cset "name='Internal Mic 1 Switch' off"
cset "name='DAI1 ADC Filter' off"

cset "name='Left ADC Mixer MIC1 Switch' off"
cset "name='Right ADC Mixer MIC1 Switch' off"

# Secondary MIC
cset "name='Int Mic Switch' off"
cset "name='Internal Mic 2 Switch' off"

cset "name='Left ADC Mixer MIC2 Switch' off"
cset "name='Right ADC Mixer MIC2 Switch' off"
]

Value {
CapturePCM "hw:${CardId}"
CaptureChannels 2
CapturePriority 200
}
}
47 changes: 47 additions & 0 deletions ucm2/Tegra/max98089/lge-x3.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# Use case Configuration for MAX98089 on LG Optimus 4X HD/Vu P880/P895

Syntax 4

BootSequence [
cset "name='MIC1 Volume' 10"
cset "name='MIC1 Boost Volume' 1"
cset "name='MIC2 Volume' 10"
cset "name='MIC2 Boost Volume' 1"

cset "name='INA Volume' 5"
cset "name='INB Volume' 5"

cset "name='ADCL Volume' 15"
cset "name='ADCR Volume' 15"

cset "name='DAI1 Filter Mode' Music"

cset "name='EQ1 Switch' off"
cset "name='EQ2 Switch' off"

cset "name='Speaker Switch' off"
cset "name='Int Spk Switch' off"
cset "name='Headphone Switch' off"
cset "name='Earpiece Switch' off"
cset "name='Receiver Switch' off"

cset "name='Int Mic Switch' off"
cset "name='Internal Mic 1 Switch' off"
cset "name='Internal Mic 2 Switch' off"
cset "name='Mic Jack Switch' off"

cset "name='Right SPK Mixer Left DAC1 Switch' on"
cset "name='Right SPK Mixer Left DAC2 Switch' on"
cset "name='Right SPK Mixer Right DAC1 Switch' on"
cset "name='Right SPK Mixer Right DAC2 Switch' on"
]

SectionUseCase."HiFi" {
File "/Tegra/max98089/lge-x3-HiFi.conf"
Comment "Play HiFi quality Music"
}

SectionUseCase."Voice Call" {
File "/Tegra/max98089/lge-x3-VoiceCall.conf"
Comment "Make a phone call"
}
1 change: 1 addition & 0 deletions ucm2/conf.d/tegra/LG Optimus 4X HD MAX98089.conf
1 change: 1 addition & 0 deletions ucm2/conf.d/tegra/LG Optimus Vu MAX98089.conf

0 comments on commit 04dab15

Please sign in to comment.