Skip to content

Commit

Permalink
sof-soundwire: Use one file for speaker codec initialization
Browse files Browse the repository at this point in the history
Use macros to minimize configuration blocks.

Signed-off-by: Jaroslav Kysela <[email protected]>
  • Loading branch information
perexg committed Dec 6, 2023
1 parent 23adf5a commit 6e34e88
Show file tree
Hide file tree
Showing 10 changed files with 156 additions and 189 deletions.
2 changes: 1 addition & 1 deletion ucm2/sof-soundwire/HiFi.conf
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ If.spkdev {
Type String
Empty "${var:SpeakerCodec1}"
}
False.Include.spkdev.File "/sof-soundwire/${var:SpeakerCodec1}-${var:SpeakerAmps1}.conf"
False.Include.spkdev.File "/sof-soundwire/${var:SpeakerCodec1}.conf"
}

If.micdev {
Expand Down
22 changes: 0 additions & 22 deletions ucm2/sof-soundwire/rt1308-1.conf

This file was deleted.

29 changes: 0 additions & 29 deletions ucm2/sof-soundwire/rt1308-2.conf

This file was deleted.

46 changes: 46 additions & 0 deletions ucm2/sof-soundwire/rt1308.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# Use case Configuration for sof-soundwire card

#
# Arguments:
# ForAmps - regex filter for var:SpeakerAmps
# Amp - amplifier number (1,2 etc.)
# Sel - channel selection (LR LL RL RR)
#
DefineMacro.rt1308spk.If.0 {
Condition {
Type RegexMatch
Regex "${var:__ForAmps}"
String "${var:SpeakerAmps}"
}
True {
EnableSequence [
cset "name='rt1308-${var:__Amp} RX Channel Select' ${var:__Sel}"
cset "name='rt1308-${var:__Amp} DAC L Switch' 1"
cset "name='rt1308-${var:__Amp} DAC R Switch' 1"
]
DisableSequence [
cset "name='rt1308-${var:__Amp} DAC L Switch' 0"
cset "name='rt1308-${var:__Amp} DAC R Switch' 0"
]
}
}

SectionDevice."Speaker" {
Comment "Speaker"

Macro.num1.rt1308spk { ForAmps "[12]" Amp 1 Sel LL }
Macro.num2.rt1308spk { ForAmps "2" Amp 2 Sel RR }

EnableSequence [
cset "name='Speaker Switch' on"
]

DisableSequence [
cset "name='Speaker Switch' off"
]

Value {
PlaybackPriority 100
PlaybackPCM "hw:${CardId},2"
}
}
41 changes: 0 additions & 41 deletions ucm2/sof-soundwire/rt1316-1.conf

This file was deleted.

51 changes: 0 additions & 51 deletions ucm2/sof-soundwire/rt1316-2.conf

This file was deleted.

65 changes: 65 additions & 0 deletions ucm2/sof-soundwire/rt1316.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
# Use case Configuration for sof-soundwire card

#
# Arguments:
# ForAmps - regex filter for var:SpeakerAmps
# Amp - amplifier number (1,2 etc.)
# Sel - channel selection (L,R L,L L,R L,L+R R,L R,R R,L+R L+R,L L+R,R L+R,L+R)
#
DefineMacro.rt1316spk.If.0 {
Condition {
Type RegexMatch
Regex "${var:__ForAmps}"
String "${var:SpeakerAmps}"
}
True {
EnableSequence [
cset "name='rt1316-${var:__Amp} RX Channel Select' ${var:__Sel}"
]
If.lrswitch {
Condition {
Type ControlExists
Control "name='rt1316-${var:__Amp} DAC L Switch'"
}
True {
EnableSequence [
cset "name='rt1316-${var:__Amp} DAC L Switch' 1"
cset "name='rt1316-${var:__Amp} DAC R Switch' 1"
]
DisableSequence [
cset "name='rt1316-${var:__Amp} DAC L Switch' 0"
cset "name='rt1316-${var:__Amp} DAC R Switch' 0"
]
}
False {
EnableSequence [
cset "name='rt1316-${var:__Amp} DAC Switch' 1"
]

DisableSequence [
cset "name='rt1316-${var:__Amp} DAC Switch' 0"
]
}
}
}
}

SectionDevice."Speaker" {
Comment "Speaker"

Macro.num1.rt1316spk { ForAmps "[12]" Amp 1 Sel "L,L" }
Macro.num2.rt1316spk { ForAmps "2" Amp 2 Sel "R,R" }

EnableSequence [
cset "name='Speaker Switch' on"
]

DisableSequence [
cset "name='Speaker Switch' off"
]

Value {
PlaybackPriority 100
PlaybackPCM "hw:${CardId},2"
}
}
20 changes: 0 additions & 20 deletions ucm2/sof-soundwire/rt1318-1.conf

This file was deleted.

25 changes: 0 additions & 25 deletions ucm2/sof-soundwire/rt1318-2.conf

This file was deleted.

44 changes: 44 additions & 0 deletions ucm2/sof-soundwire/rt1318.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# Use case Configuration for sof-soundwire card

#
# Arguments:
# ForAmps - regex filter for var:SpeakerAmps
# Amp - amplifier number (1,2 etc.)
# Sel - channel selection (L,R L,L L,R L,L+R R,L R,R R,L+R L+R,L L+R,R L+R,L+R)
#
DefineMacro.rt1318spk.If.0 {
Condition {
Type RegexMatch
Regex "${var:__RegEx}"
String "${var:SpeakerAmps}"
}
True {
EnableSequence [
cset "name='rt1308-${var:__Amp} RX Channel Select' ${var:__Sel}"
cset "name='rt1308-${var:__Amp} DAC Switch' 1"
]
DisableSequence [
cset "name='rt1308-${var:__Amp} DAC Switch' 0"
]
}
}

SectionDevice."Speaker" {
Comment "Speaker"

Macro.num1.rt1318spk { ForAmps "[12]" Amp 1 Sel "L,L" }
Macro.num2.rt1318spk { ForAmps "2" Amp 2 Sel "R,R" }

EnableSequence [
cset "name='Speaker Switch' on"
]

DisableSequence [
cset "name='Speaker Switch' off"
]

Value {
PlaybackPriority 100
PlaybackPCM "hw:${CardId},2"
}
}

0 comments on commit 6e34e88

Please sign in to comment.