From d1076340afce508e403e5ab54bfd6d35dcf9f613 Mon Sep 17 00:00:00 2001 From: Neil Armstrong Date: Mon, 4 Dec 2023 11:58:04 +0100 Subject: [PATCH] codecs: wcd939x: Add wcd939x configs Add UCM2 configs for the Qualcomm WCD939x codecs: - Analog Microphones - Headphones Speaker and Microphone Linux accepted Codec patchset: https://lore.kernel.org/all/20231219-topic-sm8650-upstream-wcd939x-codec-v4-0-1c3bbff2d7ab@linaro.org/ Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/390 Signed-off-by: Neil Armstrong Signed-off-by: Jaroslav Kysela --- ucm2/codecs/wcd939x/AnalogMic1EnableSeq.conf | 7 +++++++ ucm2/codecs/wcd939x/AnalogMic3EnableSeq.conf | 7 +++++++ ucm2/codecs/wcd939x/AnalogMic4EnableSeq.conf | 7 +++++++ ucm2/codecs/wcd939x/AnalogMic5EnableSeq.conf | 7 +++++++ ucm2/codecs/wcd939x/AnalogMicDisableSeq.conf | 5 +++++ ucm2/codecs/wcd939x/DefaultEnableSeq.conf | 4 ++++ ucm2/codecs/wcd939x/HeadphoneDisableSeq.conf | 9 +++++++++ ucm2/codecs/wcd939x/HeadphoneEnableSeq.conf | 9 +++++++++ .../codecs/wcd939x/HeadphoneMicDisableSeq.conf | 6 ++++++ ucm2/codecs/wcd939x/HeadphoneMicEnableSeq.conf | 8 ++++++++ ucm2/codecs/wcd939x/init.conf | 18 ++++++++++++++++++ 11 files changed, 87 insertions(+) create mode 100644 ucm2/codecs/wcd939x/AnalogMic1EnableSeq.conf create mode 100644 ucm2/codecs/wcd939x/AnalogMic3EnableSeq.conf create mode 100644 ucm2/codecs/wcd939x/AnalogMic4EnableSeq.conf create mode 100644 ucm2/codecs/wcd939x/AnalogMic5EnableSeq.conf create mode 100644 ucm2/codecs/wcd939x/AnalogMicDisableSeq.conf create mode 100644 ucm2/codecs/wcd939x/DefaultEnableSeq.conf create mode 100644 ucm2/codecs/wcd939x/HeadphoneDisableSeq.conf create mode 100644 ucm2/codecs/wcd939x/HeadphoneEnableSeq.conf create mode 100644 ucm2/codecs/wcd939x/HeadphoneMicDisableSeq.conf create mode 100644 ucm2/codecs/wcd939x/HeadphoneMicEnableSeq.conf create mode 100644 ucm2/codecs/wcd939x/init.conf diff --git a/ucm2/codecs/wcd939x/AnalogMic1EnableSeq.conf b/ucm2/codecs/wcd939x/AnalogMic1EnableSeq.conf new file mode 100644 index 0000000..ed51c68 --- /dev/null +++ b/ucm2/codecs/wcd939x/AnalogMic1EnableSeq.conf @@ -0,0 +1,7 @@ +EnableSequence [ + cset "name='ADC1_MIXER Switch' 1" + cset "name='ADC1 MUX' CH1_AMIC1" + cset "name='ADC1 Switch' 1" + cset "name='ADC1 Volume' 10" + cset "name='TX0 MODE' ADC_ULP" +] diff --git a/ucm2/codecs/wcd939x/AnalogMic3EnableSeq.conf b/ucm2/codecs/wcd939x/AnalogMic3EnableSeq.conf new file mode 100644 index 0000000..b104bd6 --- /dev/null +++ b/ucm2/codecs/wcd939x/AnalogMic3EnableSeq.conf @@ -0,0 +1,7 @@ +EnableSequence [ + cset "name='ADC1_MIXER Switch' 1" + cset "name='ADC1 MUX' CH1_AMIC3" + cset "name='ADC1 Switch' 1" + cset "name='ADC1 Volume' 10" + cset "name='TX0 MODE' ADC_ULP" +] diff --git a/ucm2/codecs/wcd939x/AnalogMic4EnableSeq.conf b/ucm2/codecs/wcd939x/AnalogMic4EnableSeq.conf new file mode 100644 index 0000000..2c5d021 --- /dev/null +++ b/ucm2/codecs/wcd939x/AnalogMic4EnableSeq.conf @@ -0,0 +1,7 @@ +EnableSequence [ + cset "name='ADC1_MIXER Switch' 1" + cset "name='ADC1 MUX' CH1_AMIC4" + cset "name='ADC1 Switch' 1" + cset "name='ADC1 Volume' 10" + cset "name='TX0 MODE' ADC_ULP" +] diff --git a/ucm2/codecs/wcd939x/AnalogMic5EnableSeq.conf b/ucm2/codecs/wcd939x/AnalogMic5EnableSeq.conf new file mode 100644 index 0000000..fd45b6e --- /dev/null +++ b/ucm2/codecs/wcd939x/AnalogMic5EnableSeq.conf @@ -0,0 +1,7 @@ +EnableSequence [ + cset "name='ADC1_MIXER Switch' 1" + cset "name='ADC1 MUX' CH1_AMIC5" + cset "name='ADC1 Switch' 1" + cset "name='ADC1 Volume' 10" + cset "name='TX0 MODE' ADC_ULP" +] diff --git a/ucm2/codecs/wcd939x/AnalogMicDisableSeq.conf b/ucm2/codecs/wcd939x/AnalogMicDisableSeq.conf new file mode 100644 index 0000000..e002bb8 --- /dev/null +++ b/ucm2/codecs/wcd939x/AnalogMicDisableSeq.conf @@ -0,0 +1,5 @@ +DisableSequence [ + cset "name='ADC1_MIXER Switch' 0" + cset "name='ADC1 MUX' CH1_AMIC_DISABLE" + cset "name='ADC1 Switch' 0" +] diff --git a/ucm2/codecs/wcd939x/DefaultEnableSeq.conf b/ucm2/codecs/wcd939x/DefaultEnableSeq.conf new file mode 100644 index 0000000..5da6717 --- /dev/null +++ b/ucm2/codecs/wcd939x/DefaultEnableSeq.conf @@ -0,0 +1,4 @@ +EnableSequence [ + cset "name='HPHR Volume' 20" + cset "name='HPHL Volume' 20" +] diff --git a/ucm2/codecs/wcd939x/HeadphoneDisableSeq.conf b/ucm2/codecs/wcd939x/HeadphoneDisableSeq.conf new file mode 100644 index 0000000..37b1faf --- /dev/null +++ b/ucm2/codecs/wcd939x/HeadphoneDisableSeq.conf @@ -0,0 +1,9 @@ +DisableSequence [ + cset "name='HPHL_RDAC Switch' 0" + cset "name='HPHR_RDAC Switch' 0" + cset "name='HPHL_COMP Switch' 0" + cset "name='HPHR_COMP Switch' 0" + cset "name='HPHL Switch' 0" + cset "name='HPHR Switch' 0" + cset "name='CLSH Switch' 0" +] diff --git a/ucm2/codecs/wcd939x/HeadphoneEnableSeq.conf b/ucm2/codecs/wcd939x/HeadphoneEnableSeq.conf new file mode 100644 index 0000000..dd8260b --- /dev/null +++ b/ucm2/codecs/wcd939x/HeadphoneEnableSeq.conf @@ -0,0 +1,9 @@ +EnableSequence [ + cset "name='HPHL_RDAC Switch' 1" + cset "name='HPHR_RDAC Switch' 1" + cset "name='HPHR_COMP Switch' 1" + cset "name='HPHL_COMP Switch' 1" + cset "name='HPHL Switch' 1" + cset "name='HPHR Switch' 1" + cset "name='CLSH Switch' 1" +] diff --git a/ucm2/codecs/wcd939x/HeadphoneMicDisableSeq.conf b/ucm2/codecs/wcd939x/HeadphoneMicDisableSeq.conf new file mode 100644 index 0000000..05e3d77 --- /dev/null +++ b/ucm2/codecs/wcd939x/HeadphoneMicDisableSeq.conf @@ -0,0 +1,6 @@ +DisableSequence [ + cset "name='MBHC Switch' 0" + cset "name='ADC2_MIXER Switch' 0" + cset "name='ADC2 MUX' CH2_AMIC_DISABLE" + cset "name='ADC2 Switch' 0" +] diff --git a/ucm2/codecs/wcd939x/HeadphoneMicEnableSeq.conf b/ucm2/codecs/wcd939x/HeadphoneMicEnableSeq.conf new file mode 100644 index 0000000..b421c90 --- /dev/null +++ b/ucm2/codecs/wcd939x/HeadphoneMicEnableSeq.conf @@ -0,0 +1,8 @@ +EnableSequence [ + cset "name='ADC2_MIXER Switch' 1" + cset "name='ADC2 MUX' CH2_AMIC2" + cset "name='ADC2 Switch' 1" + cset "name='ADC2 Volume' 10" + cset "name='TX1 MODE' ADC_LP" + cset "name='MBHC Switch' 1" +] diff --git a/ucm2/codecs/wcd939x/init.conf b/ucm2/codecs/wcd939x/init.conf new file mode 100644 index 0000000..9fb98aa --- /dev/null +++ b/ucm2/codecs/wcd939x/init.conf @@ -0,0 +1,18 @@ +# WCD939X specific volume control settings + +BootSequence [ + cset "name='ADC1 Volume' 12" + cset "name='ADC2 Volume' 12" +] + +LibraryConfig.remap.Config { + + ctl.default.map { + # Merge two mono controls into one stereo + "name='HP Volume'" { + "name='HPHL Volume'".vindex.0 0 + "name='HPHR Volume'".vindex.1 0 + } + } +} + -- 2.47.1