From 46222753fdddc86d6a0b92c465875f71c628a779 Mon Sep 17 00:00:00 2001 From: Pierre-Louis Bossart Date: Thu, 27 Feb 2020 12:40:20 -0600 Subject: [PATCH 1/3] sof-bdw-rt5677: initial port to UCM2 Tested on Pixel 2015/SAMUS Chromebook. Known limitations: Left/Right confusion (probably a firmware issue) PulseAudio does not switch capture devices on headset plug Signed-off-by: Pierre-Louis Bossart Signed-off-by: Jaroslav Kysela --- ucm2/sof-bdw-rt5677/HiFi.conf | 194 ++++++++++++++++++++++++++++++++ ucm2/sof-bdw-rt5677/sof-bdw-rt5677.conf | 6 + 2 files changed, 200 insertions(+) create mode 100644 ucm2/sof-bdw-rt5677/HiFi.conf create mode 100644 ucm2/sof-bdw-rt5677/sof-bdw-rt5677.conf diff --git a/ucm2/sof-bdw-rt5677/HiFi.conf b/ucm2/sof-bdw-rt5677/HiFi.conf new file mode 100644 index 000000000000..f4b144996d37 --- /dev/null +++ b/ucm2/sof-bdw-rt5677/HiFi.conf @@ -0,0 +1,194 @@ +# Use case Configuration for sof-bdw-rt5677 +# command-line sequence to switch playback/capture +# alsaucm -c sof-bdw-rt5677 set _verb HiFi +# alsaucm -c sof-bdw-rt5677 set _verb HiFi set _enadev Headphones + + +SectionVerb { + + EnableSequence [ + + cset "name='PDM1 L Mux' STO1 DAC MIX" + cset "name='PDM1 R Mux' STO1 DAC MIX" + + # Adjust Master Playback volume if needed + # cset "name='Master Playback Volume' 30" + + cset "name='OUT1 Playback Switch' off" + cset "name='OUT2 Playback Switch' off" + + cset "name='DAC1 Playback Volume' 175" + cset "name='DAC2 Playback Volume' 175" + cset "name='DAC12 SRC Mux' STO1 DAC MIX" + + cset "name='Stereo DAC MIXL ST L Switch' off" + cset "name='Stereo DAC MIXL DAC1 L Switch' off" + cset "name='Stereo DAC MIXL DAC2 L Switch' off" + cset "name='Stereo DAC MIXL DAC1 R Switch' on" + + cset "name='Stereo DAC MIXR ST R Switch' off" + cset "name='Stereo DAC MIXR DAC1 R Switch' off" + cset "name='Stereo DAC MIXR DAC2 R Switch' off" + cset "name='Stereo DAC MIXR DAC1 L Switch' on" + + cset "name='DAC1 MIXL Stereo ADC Switch' off" + cset "name='DAC1 MIXL DAC1 Switch' on" + + cset "name='DAC1 MIXR Stereo ADC Switch' off" + cset "name='DAC1 MIXR DAC1 Switch' on" + + cset "name='DAC1 Mux' IF1 DAC 01" + + cset "name='Stereo1 DMIC Mux' DMIC1" + cset "name='Stereo1 ADC2 Mux' DMIC" + cset "name='Stereo1 ADC1 Mux' ADC1/2" + + cset "name='Sto1 ADC MIXL ADC1 Switch' off" + cset "name='Sto1 ADC MIXL ADC2 Switch' off" + cset "name='Sto1 ADC MIXL ADC2 Switch' on" + + cset "name='Sto1 ADC MIXR ADC1 Switch' off" + cset "name='Sto1 ADC MIXR ADC2 Switch' off" + cset "name='Sto1 ADC MIXR ADC2 Switch' on" + + cset "name='IF1 ADC1 Mux' STO1 ADC MIX" + cset "name='IF1 ADC1 Swap Mux' L/R" + + # Adjust Mic Capture Volume if needed + # cset "name='Mic Capture Volume' 30" + + cset "name='ADC1 Capture Switch' on" + cset "name='ADC1 Capture Volume' 31" + cset "name='STO1 ADC Boost Volume' 2" + + cset "name='Headphone Switch' off" + cset "name='Speaker Switch' on" + + cset "name='Remote DMICs Switch' on" + cset "name='Mono DMIC L Mux' DMIC1" + cset "name='Mono ADC2 L Mux' DMIC" + cset "name='Mono ADC MIXL ADC1 Switch' off" + cset "name='Mono ADC MIXL ADC2 Switch' on" + cset "name='VAD ADC Mux' MONO ADC MIX L" + cset "name='IB01 Mux' VAD ADC/DAC1 FS" + cset "name='IB01 Bypass Mux' Bypass" + cset "name='Mono ADC Boost Volume' 2" + ] + + DisableSequence [ + ] +} + +SectionDevice."Speaker" { + Comment "Speakers" + + ConflictingDevice [ + "Headphones" + ] + + EnableSequence [ + ] + + DisableSequence [ + ] + + Value { + PlaybackPriority 100 + PlaybackPCM "hw:${CardId}" + } +} + + +SectionDevice."Headphones" { + Comment "Headphones" + + ConflictingDevice [ + "Speaker" + ] + + EnableSequence [ + cset "name='Speaker Switch' off" + cset "name='Stereo DAC MIXL DAC1 R Switch' off" + cset "name='Stereo DAC MIXR DAC1 L Switch' off" + cset "name='Stereo DAC MIXL DAC1 L Switch' on" + cset "name='Stereo DAC MIXR DAC1 R Switch' on" + cset "name='OUT1 Playback Switch' on" + cset "name='OUT2 Playback Switch' on" + cset "name='Headphone Switch' on" + ] + + DisableSequence [ + cset "name='Headphone Switch' off" + cset "name='OUT1 Playback Switch' off" + cset "name='OUT2 Playback Switch' off" + cset "name='Stereo DAC MIXL DAC1 L Switch' off" + cset "name='Stereo DAC MIXR DAC1 R Switch' off" + cset "name='Stereo DAC MIXL DAC1 R Switch' on" + cset "name='Stereo DAC MIXR DAC1 L Switch' on" + cset "name='Speaker Switch' on" + ] + + Value { + PlaybackPriority 300 + PlaybackPCM "hw:${CardId}" + JackControl "Headphone Jack" + JackHWMute "Speakers" + } +} + +SectionDevice."Mic" { + Comment "Internal Microphone" + + ConflictingDevice [ + "Headset" + ] + + EnableSequence [ + ] + + DisableSequence [ + ] + + Value { + CapturePriority 100 + CapturePCM "hw:${CardId}" + } +} + +SectionDevice."Headset" { + Comment "Headset Microphone" + + ConflictingDevice [ + "Mic" + ] + + EnableSequence [ + cset "name='Sto1 ADC MIXL ADC2 Switch' off" + cset "name='Sto1 ADC MIXR ADC2 Switch' off" + cset "name='Local DMICs Switch' off" + + cset "name='IF1 ADC1 Swap Mux' L/L" + + cset "name='Sto1 ADC MIXL ADC1 Switch' on" + cset "name='Sto1 ADC MIXR ADC1 Switch' on" + cset "name='Headset Mic Switch' on" + ] + + DisableSequence [ + cset "name='Sto1 ADC MIXL ADC1 Switch' off" + cset "name='Sto1 ADC MIXR ADC1 Switch' off" + cset "name='Headset Mic Switch' off" + + cset "name='IF1 ADC1 Swap Mux' L/R" + + cset "name='Sto1 ADC MIXL ADC2 Switch' on" + cset "name='Sto1 ADC MIXR ADC2 Switch' on" + cset "name='Local DMICs Switch' on" + ] + + Value { + CapturePriority 300 + CapturePCM "hw:${CardId}" + JackControl "Mic Jack" + } +} diff --git a/ucm2/sof-bdw-rt5677/sof-bdw-rt5677.conf b/ucm2/sof-bdw-rt5677/sof-bdw-rt5677.conf new file mode 100644 index 000000000000..d672df281af8 --- /dev/null +++ b/ucm2/sof-bdw-rt5677/sof-bdw-rt5677.conf @@ -0,0 +1,6 @@ +Syntax 2 + +SectionUseCase."HiFi" { + File "HiFi.conf" + Comment "Default" +} -- 2.16.4