aboutsummaryrefslogtreecommitdiff
path: root/ucm2/codecs/rt5651/MonoSpeaker.conf
blob: 9c780a0bbf52fde5ac9e26fa0c7f0916f65c53ee (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
SectionDevice."Speaker" {
	Comment "Mono Speaker"

	ConflictingDevice [
		"Headphones"
	]

	EnableSequence [
		# On most (all?) devices with a single / mono speaker an
		# amplifier with a differential input connected between LOUT
		# right and left is used. We deal with this by silencing the
		# right output and mixing left + right to the left output.
		#
		# An alternative approach for devices using the differential
		# setup would be to set bit 15 of register 5 in the codec,
		# which turns the stereo unbalanced line out into a mono
		# balanced line out.
		#
		# This possibility was discovered after we already shipped the
		# current solution and the current solution has the advantage
		# of also working on devices which only use LOUT left in
		# unbalanced mode. The net result is the same for devices using
		# the differential setup, so we just stick with what we have.
		cset "name='Stereo DAC MIXR DAC R1 Switch' off"
		cset "name='Stereo DAC MIXL DAC R1 Switch' on"

		cset "name='Speaker Switch' on"
		cset "name='LOUT L Playback Switch' on"
		# Done after turning the speaker on to keep the bias and clk on
		cset "name='Headphone Switch' off"
		cset "name='HPO L Playback Switch' off"
		cset "name='HPO R Playback Switch' off"
	]

	DisableSequence [
		# Disabling the  switches is done by the Speaker EnableSeq

		# Undo mono mapping
		cset "name='Stereo DAC MIXL DAC R1 Switch' off"
		cset "name='Stereo DAC MIXR DAC R1 Switch' on"
	]

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