From 5fccbeda9f94ebb57f60bdb8fd0bac7e8970711d Mon Sep 17 00:00:00 2001 From: WeirdTreeThing Date: Sun, 8 Oct 2023 15:31:01 -0400 Subject: [PATCH] adl: Add Primus UCM --- adl/sof-rt5682/HiFi.primus.conf | 121 +++++++++++++++++++++++ adl/sof-rt5682/HiFi.primus.rt5682vs.conf | 108 ++++++++++++++++++++ adl/sof-rt5682/sof-rt5682.conf | 27 ++++- 3 files changed, 255 insertions(+), 1 deletion(-) create mode 100644 adl/sof-rt5682/HiFi.primus.conf create mode 100644 adl/sof-rt5682/HiFi.primus.rt5682vs.conf diff --git a/adl/sof-rt5682/HiFi.primus.conf b/adl/sof-rt5682/HiFi.primus.conf new file mode 100644 index 0000000..bb2426a --- /dev/null +++ b/adl/sof-rt5682/HiFi.primus.conf @@ -0,0 +1,121 @@ +SectionVerb { + EnableSequence [ + cset "name='Headphone Jack Switch' off" + cset "name='HPOL Playback Switch' off" + cset "name='HPOR Playback Switch' off" + cset "name='Stereo1 DAC MIXL DAC L1 Switch' 0" + cset "name='Stereo1 DAC MIXR DAC R1 Switch' 0" + cset "name='Stereo1 ADC L Mux' 0" + cset "name='STO1 ADC Capture Switch' on" + cset "name='RECMIX1L CBJ Switch' 1" + cset "name='IF1 01 ADC Swap Mux' 2" + cset "name='CBJ Boost Volume' 3" + cset "name='Stereo1 ADC L1 Mux' 1" + cset "name='Stereo1 ADC R1 Mux' 1" + cset "name='Stereo1 ADC MIXL ADC2 Switch' 0" + cset "name='Stereo1 ADC MIXR ADC2 Switch' 0" + cset "name='Stereo1 ADC MIXL ADC1 Switch' 1" + cset "name='Stereo1 ADC MIXR ADC1 Switch' 1" + ] +} + +# Split 4ch dmic into 2 virtual 2ch mics +Include.pcm_split.File "/conf.d/dmic-common/split.conf" + +Macro [ + { + SplitPCM { + Name "adl_stereo_in" + Direction Capture + Format S32_LE + Channels 2 + HWChannels 4 + HWChannelPos0 FL + HWChannelPos1 FR + HWChannelPos2 FL + HWChannelPos3 FR + } + } +] + +SectionDevice."Speaker" { + Comment "Speaker" + + Value { + PlaybackPriority 100 + PlaybackPCM "hw:${CardId},0" + } + EnableSequence [ + cset "name='Spk Switch' on" + ] + DisableSequence [ + cset "name='Spk Switch' off" + ] +} + +SectionDevice."Headphones" { + Comment "Headphones" + + Value { + PlaybackPriority 200 + PlaybackPCM "hw:${CardId},1" + PlaybackMixerElem "DAC1" + JackControl "Headphone Jack" + } + EnableSequence [ + cset "name='Headphone Jack Switch' on" + cset "name='HPOL Playback Switch' on" + cset "name='HPOR Playback Switch' on" + cset "name='Stereo1 DAC MIXL DAC L1 Switch' 1" + cset "name='Stereo1 DAC MIXR DAC R1 Switch' 1" + + ] + DisableSequence [ + cset "name='Headphone Jack Switch' off" + cset "name='HPOL Playback Switch' off" + cset "name='HPOR Playback Switch' off" + cset "name='Stereo1 DAC MIXL DAC L1 Switch' 0" + cset "name='Stereo1 DAC MIXR DAC R1 Switch' 0" + + ] +} + +SectionDevice."Mic" { + Comment "Internal Microphone" + + Value { + CapturePriority 100 + CapturePCM "hw:${CardId},99" + CaptureChannels 4 + } + Macro.pcm_split.SplitPCMDevice { + Name "adl_stereo_in" + Direction Capture + Device 99 + HWChannels 4 + Channels 2 + Channel0 0 + Channel1 1 + ChannelPos0 FL + ChannelPos1 FR + } +} + +SectionDevice."Headset" { + Comment "Headset Microphone" + + Value { + CapturePriority 200 + CapturePCM "hw:${CardId},1" + CaptureMixerElem "Headset Mic" + JackControl "Headphone Jack" + } + EnableSequence [ + cset "name='Headset Mic Switch' on" + ] + DisableSequence [ + cset "name='Headset Mic Switch' off" + ] +} + +Include.hdmi.File "/conf.d/hdmi-common/hdmi2345.conf" diff --git a/adl/sof-rt5682/HiFi.primus.rt5682vs.conf b/adl/sof-rt5682/HiFi.primus.rt5682vs.conf new file mode 100644 index 0000000..b44aa11 --- /dev/null +++ b/adl/sof-rt5682/HiFi.primus.rt5682vs.conf @@ -0,0 +1,108 @@ +SectionVerb { + EnableSequence [ + cset "name='Stereo1 DAC MIXL DAC L1 Switch' off" + cset "name='Stereo1 DAC MIXR DAC R1 Switch' off" + cset "name='RECMIX1L CBJ Switch' on" + cset "name='IF1 01 ADC Swap Mux' L/L" + cset "name='CBJ Boost Volume' 27" + cset "name='Stereo1 ADC L Mux' ADC1 L" + cset "name='Stereo1 ADC L1 Mux' ADC" + cset "name='Stereo1 ADC MIXL ADC2 Switch' off" + cset "name='Stereo1 ADC MIXL ADC1 Switch' on" + ] +} + +# Split 4ch dmic into 2 virtual 2ch mics +Include.pcm_split.File "/conf.d/dmic-common/split.conf" + +Macro [ + { + SplitPCM { + Name "adl_stereo_in" + Direction Capture + Format S32_LE + Channels 2 + HWChannels 4 + HWChannelPos0 FL + HWChannelPos1 FR + HWChannelPos2 FL + HWChannelPos3 FR + } + } +] + +SectionDevice."Speaker" { + Comment "Speaker" + + Value { + PlaybackPriority 100 + PlaybackPCM "hw:${CardId},0" + } + EnableSequence [ + cset "name='Spk Switch' on" + ] + DisableSequence [ + cset "name='Spk Switch' off" + ] +} + +SectionDevice."Headphones" { + Comment "Headphones" + + Value { + PlaybackPriority 200 + PlaybackPCM "hw:${CardId},1" + PlaybackMixerElem "DAC1" + JackControl "Headphone jack" + } + EnableSequence [ + cset "name='Headphone Jack Switch' on" + cset "name='Stereo1 DAC MIXL DAC L1 Switch' 1" + cset "name='Stereo1 DAC MIXR DAC R1 Switch' 1" + ] + DisableSequence [ + cset "name='Headphone Jack Switch' off" + cset "name='Stereo1 DAC MIXL DAC L1 Switch' 0" + cset "name='Stereo1 DAC MIXR DAC R1 Switch' 0" + ] +} + +SectionDevice."Mic" { + Comment "Internal Microphone" + + Value { + CapturePriority 100 + CapturePCM "hw:${CardId},99" + CaptureChannels 4 + } + Macro.pcm_split.SplitPCMDevice { + Name "adl_stereo_in" + Direction Capture + Device 99 + HWChannels 4 + Channels 2 + Channel0 0 + Channel1 1 + ChannelPos0 FL + ChannelPos1 FR + } +} + +SectionDevice."Headset" { + Comment "Headset Microphone" + + Value { + CapturePriority 200 + CapturePCM "hw:${CardId},1" + CaptureMixerElem "Headset Mic" + JackControl "Headset Jack" + } + EnableSequence [ + cset "name='Headset Mic Switch' on" + ] + DisableSequence [ + cset "name='Headset Mic Switch' off" + ] +} + +Include.hdmi.File "/conf.d/hdmi-common/hdmi2345.conf" diff --git a/adl/sof-rt5682/sof-rt5682.conf b/adl/sof-rt5682/sof-rt5682.conf index 34aa4a3..00e99f3 100644 --- a/adl/sof-rt5682/sof-rt5682.conf +++ b/adl/sof-rt5682/sof-rt5682.conf @@ -10,7 +10,7 @@ If.felwinter { If.rt5682vs { Condition { Type RegexMatch - Regex "^sku(2147483647|524290|524291|524292|524293)$" + Regex "^sku(196865|196866|196867|196868|196869|196870|196871|196872|196873|196874|196875|196876|196877|196878|196879|196880|197121|197122|197123|197124|197125|197126|197127|197128|197129|197130|197131|197132|197133|197134|197135|197136)$" String "${sys:devices/virtual/dmi/id/product_sku}" } True.SectionUseCase."HiFi" { @@ -25,6 +25,31 @@ If.felwinter { } } +If.primus { + Condition { + Type String + Haystack "${sys:devices/virtual/dmi/id/product_name}" + Needle "Primus" + } + True { + If.rt5682vs { + Condition { + Type RegexMatch + Regex "^sku(2147483647|524290|524291|524292|524293)$" + String "${sys:devices/virtual/dmi/id/product_sku}" + } + True.SectionUseCase."HiFi" { + File "HiFi.primus.rt5682vs.conf" + Comment "Default" + } + False.SectionUseCase."HiFi" { + File "HiFi.primus.conf" + Comment "Default" + } + } + } +} + If.banshee { Condition { Type String