sof-soundwire: Add basic support for cs42l43
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>
This commit is contained in:
parent
a0856afae4
commit
e87dde51d6
4 changed files with 87 additions and 1 deletions
14
ucm2/codecs/cs42l43/init.conf
Normal file
14
ucm2/codecs/cs42l43/init.conf
Normal file
|
|
@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
26
ucm2/sof-soundwire/cs42l43-dmic.conf
Normal file
26
ucm2/sof-soundwire/cs42l43-dmic.conf
Normal file
|
|
@ -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"
|
||||
}
|
||||
}
|
||||
46
ucm2/sof-soundwire/cs42l43.conf
Normal file
46
ucm2/sof-soundwire/cs42l43.conf
Normal file
|
|
@ -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"
|
||||
}
|
||||
}
|
||||
|
|
@ -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"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue