sof-soundwire: Add support for cs42l43/cs35l56 bridge configuration

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>
This commit is contained in:
Charles Keepax 2024-07-08 12:59:19 +01:00 committed by Jaroslav Kysela
commit e4277a204c
2 changed files with 62 additions and 1 deletions

View file

@ -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"
}
}

View 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 {