aboutsummaryrefslogtreecommitdiff
path: root/ucm2/codecs/es8316/MonoSpeaker.conf
blob: 64a7e76046a024966584f419001ebbbd64bff2d4 (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
SectionDevice."Speaker" {
	Comment "Mono Speaker"

	ConflictingDevice [
		"Headphones"
	]

	EnableSequence [
		# BYT/CHT devices with an ES8316 codec use a single speaker
		# connected between the headhpone LOUT and ROUT pins, expecting
		# the output to be in a mono differential mode. Presumably this
		# is done to use the power of both the left and right headphone
		# amplifier channels to allow the speaker to be louder.
		#
		# The ES8316 codec does not have a differential output mode, but
		# we can emulate one by making both channels output the exact
		# same signal by setting the "DAC Mono Mix Switch", combined
		# with setting the "Playback Polarity" control to "R Invert",
		# which applies a 180 degrees phase inversion to the right chan.
		cset "name='DAC Mono Mix Switch' on"
		cset "name='Playback Polarity' 1"

		cset "name='Speaker Switch' on"
	]

	DisableSequence [
		cset "name='Speaker Switch' off"
		# DAC settings back to normal for stereo headphones output
		cset "name='Playback Polarity' 0"
		cset "name='DAC Mono Mix Switch' off"
	]

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