SectionDevice."MonoSpeaker" {
	Comment "Mono Speaker"

	ConflictingDevice [
		"Speaker"
		"Headphones"
	]

	EnableSequence [
		cdev "hw:bytcrrt5651"

		# 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 [
		cdev "hw:bytcrrt5651"
		# 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 {
		PlaybackChannels "2"
	}
}
