]> git.alsa-project.org Git - alsa-ucm-conf.git/commitdiff
sof-soundwire: Add basic support for cs42l43
authorCharles Keepax <ckeepax@opensource.cirrus.com>
Wed, 17 Jan 2024 14:21:25 +0000 (14:21 +0000)
committerJaroslav Kysela <perex@perex.cz>
Wed, 17 Jan 2024 14:26:06 +0000 (15:26 +0100)
cs42l43 is a codec device, add basic support for it. Including a dual
channel DMIC input, stereo headphones, and a mono headset microphone.

Link: https://lore.kernel.org/alsa-devel/20240117142125.1080500-1-ckeepax@opensource.cirrus.com/
Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
ucm2/codecs/cs42l43/init.conf [new file with mode: 0644]
ucm2/sof-soundwire/cs42l43-dmic.conf [new file with mode: 0644]
ucm2/sof-soundwire/cs42l43.conf [new file with mode: 0644]
ucm2/sof-soundwire/sof-soundwire.conf

diff --git a/ucm2/codecs/cs42l43/init.conf b/ucm2/codecs/cs42l43/init.conf
new file mode 100644 (file)
index 0000000..10a6e1f
--- /dev/null
@@ -0,0 +1,14 @@
+# cs42l43 specific control settings
+
+LibraryConfig.remap.Config {
+       ctl.default.map {
+               "name='cs42l43 PDM2 Switch'" {
+                       "name='cs42l43 Decimator 3 Switch'".vindex.0 0
+                       "name='cs42l43 Decimator 4 Switch'".vindex.1 0
+               }
+               "name='cs42l43 PDM2 Volume'" {
+                       "name='cs42l43 Decimator 3 Volume'".vindex.0 0
+                       "name='cs42l43 Decimator 4 Volume'".vindex.1 0
+               }
+       }
+}
diff --git a/ucm2/sof-soundwire/cs42l43-dmic.conf b/ucm2/sof-soundwire/cs42l43-dmic.conf
new file mode 100644 (file)
index 0000000..d5f895d
--- /dev/null
@@ -0,0 +1,26 @@
+# Use case Configuration for sof-soundwire card
+
+SectionDevice."Mic" {
+       Comment "Microphones"
+
+       ConflictingDevice [
+               "Headset"
+       ]
+
+       EnableSequence [
+               cset "name='cs42l43 DP1TX1 Input' 'Decimator 3'"
+               cset "name='cs42l43 DP1TX2 Input' 'Decimator 4'"
+       ]
+
+       DisableSequence [
+               cset "name='cs42l43 DP1TX1 Input' 'None'"
+               cset "name='cs42l43 DP1TX2 Input' 'None'"
+       ]
+
+       Value {
+               CapturePriority 100
+               CapturePCM "hw:${CardId},4"
+               CaptureMixer "default:${CardId}"
+               CaptureMixerElem "cs42l43 PDM2"
+       }
+}
diff --git a/ucm2/sof-soundwire/cs42l43.conf b/ucm2/sof-soundwire/cs42l43.conf
new file mode 100644 (file)
index 0000000..1702cf0
--- /dev/null
@@ -0,0 +1,46 @@
+# Use case Configuration for sof-soundwire card
+
+SectionDevice."Headphones" {
+       Comment "Headphones"
+
+       EnableSequence [
+               cset "name='cs42l43 Headphone L Input 1' 'DP5RX1'"
+               cset "name='cs42l43 Headphone R Input 1' 'DP5RX2'"
+       ]
+
+       DisableSequence [
+               cset "name='cs42l43 Headphone L Input 1' 'None'"
+               cset "name='cs42l43 Headphone R Input 1' 'None'"
+       ]
+
+       Value {
+               PlaybackPriority 200
+               PlaybackPCM "hw:${CardId},0"
+               PlaybackVolume "cs42l43 Headphone Digital Volume"
+               JackControl "Headphone Jack"
+       }
+}
+
+SectionDevice."Headset" {
+       Comment "Headset Microphone"
+
+       EnableSequence [
+               cset "name='cs42l43 ADC1 Input' 'IN1'"
+               cset "name='cs42l43 Decimator 1 Mode' 'ADC'"
+
+               cset "name='cs42l43 DP1TX1 Input' 'Decimator 1'"
+               cset "name='cs42l43 DP1TX2 Input' 'Decimator 1'"
+       ]
+
+       DisableSequence [
+               cset "name='cs42l43 DP1TX1 Input' 'None'"
+               cset "name='cs42l43 DP1TX2 Input' 'None'"
+       ]
+
+       Value {
+               CapturePriority 200
+               CapturePCM "hw:${CardId},4"
+               CaptureMixerElem "cs42l43 Decimator 1"
+               JackControl "Headset Mic Jack"
+       }
+}
index 18b1bf8b3a0fcfe29fe188266c1f026c9914203d..35a262c46d38b20230ab02231fddb90597af88fc 100644 (file)
@@ -47,7 +47,7 @@ DefineRegex {
 If.hs_init {
        Condition {
                Type RegexMatch
-               Regex "(rt5682|rt700|rt711|rt713(-sdca)?)"
+               Regex "(cs42l43|rt5682|rt700|rt711|rt713(-sdca)?)"
                String "${var:HeadsetCodec1}"
        }
        True.Include.hs_init.File "/codecs/${var:HeadsetCodec1}/init.conf"