]> git.alsa-project.org Git - alsa-ucm-conf.git/commitdiff
sof-soundwire: Add support for cs42l43/cs35l56 bridge configuration
authorCharles Keepax <ckeepax@opensource.cirrus.com>
Mon, 8 Jul 2024 11:59:19 +0000 (12:59 +0100)
committerJaroslav Kysela <perex@perex.cz>
Mon, 8 Jul 2024 18:44:38 +0000 (20:44 +0200)
The cs42l43 has both a SPI master and an I2S interface, in some
configurations 2 cs35l56 amplifiers are connected to these to provide
bass speakers whilst the cs42l43's internal speaker drivers are used for
the tweeters. Add UCM configuration for this type of system.

Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
ucm2/sof-soundwire/cs35l56-bridge.conf [new file with mode: 0644]
ucm2/sof-soundwire/sof-soundwire.conf

diff --git a/ucm2/sof-soundwire/cs35l56-bridge.conf b/ucm2/sof-soundwire/cs35l56-bridge.conf
new file mode 100644 (file)
index 0000000..5435b11
--- /dev/null
@@ -0,0 +1,61 @@
+# Use case Configuration for sof-soundwire card
+
+LibraryConfig.remap.Config {
+       ctl.default.map {
+               "name='Speaker Digital Switch'" {
+                       "name='AMPL Speaker Switch'".vindex.0 0
+                       "name='AMPR Speaker Switch'".vindex.1 0
+               }
+               "name='Speaker Digital Volume'" {
+                       "name='AMPL Speaker Volume'".vindex.0 0
+                       "name='AMPR Speaker Volume'".vindex.1 0
+               }
+       }
+}
+
+SectionDevice."Speaker" {
+       Comment "Speaker"
+
+       ConflictingDevice [
+               "Headphones"
+       ]
+
+       EnableSequence [
+               cset "name='cs42l43 Speaker L Input 1' 'ASPRX1'"
+               cset "name='cs42l43 Speaker R Input 1' 'ASPRX2'"
+               cset "name='cs42l43 ASPTX1 Input' 'DP5RX1'"
+               cset "name='cs42l43 ASPTX2 Input' 'DP5RX2'"
+
+               cset "name='AMPL ASP1 TX1 Source' 'DSP1TX1'"
+               cset "name='AMPL ASP1 TX2 Source' 'None'"
+               cset "name='AMPL ASP1 TX3 Source' 'None'"
+               cset "name='AMPL ASP1 TX4 Source' 'None'"
+
+               cset "name='AMPR ASP1 TX1 Source' 'None'"
+               cset "name='AMPR ASP1 TX2 Source' 'DSP1TX1'"
+               cset "name='AMPR ASP1 TX3 Source' 'None'"
+               cset "name='AMPR ASP1 TX4 Source' 'None'"
+
+               cset "name='cs42l43 Speaker Digital Switch' 1"
+               cset "name='cs42l43 Speaker Digital Volume' 128"
+       ]
+
+       DisableSequence [
+               cset "name='cs42l43 Speaker Digital Switch' 0"
+
+               cset "name='AMPL ASP1 TX2 Source' 'None'"
+               cset "name='AMPR ASP1 TX1 Source' 'None'"
+
+               cset "name='cs42l43 ASPTX1 Input' 'None'"
+               cset "name='cs42l43 ASPTX2 Input' 'None'"
+               cset "name='cs42l43 Speaker L Input 1' 'None'"
+               cset "name='cs42l43 Speaker R Input 1' 'None'"
+       ]
+
+       Value {
+               PlaybackPriority 100
+               PlaybackPCM "hw:${CardId},0"
+               PlaybackMixer "default:${CardId}"
+               PlaybackMixerElem "Speaker Digital"
+       }
+}
index 2f61d111a7b28648468d2126ecc2833d152a5b51..2ede1cd2898a619251c77a80512b6d417f26a04c 100644 (file)
@@ -21,7 +21,7 @@ Define {
 
 DefineRegex {
        SpeakerCodec {
-               Regex " spk:([a-z0-9]+((-sdca)|(-spk))?)"
+               Regex " spk:([a-z0-9]+((-sdca)|(-spk)|(-bridge))?)"
                String "${CardComponents}"
        }
        SpeakerChannels {