# Use case Configuration for bytcht-da7213

SectionVerb {

	EnableSequence [
		cdev "hw:bytchtda7213"

		# media mixer settings
		#   compress
		cset "name='media0_in Gain 0 Switch' on"
		cset "name='media0_in Gain 0 Volume' 0"

		#   normal
		cset "name='media1_in Gain 0 Switch' on"
		cset "name='media1_in Gain 0 Volume' 0"
		#   swm loopback
		cset "name='media2_in Gain 0 Switch' off"
		cset "name='media2_in Gain 0 Volume' 0%"
		#   deep buffer
		cset "name='media3_in Gain 0 Switch' on"
		cset "name='media3_in Gain 0 Volume' 0"

		cset "name='media0_out mix 0 media0_in Switch' on"
		cset "name='media0_out mix 0 media1_in Switch' on"
		cset "name='media0_out mix 0 media2_in Switch' off"
		cset "name='media0_out mix 0 media3_in Switch' on"

		cset "name='media1_out mix 0 media0_in Switch' off"
		cset "name='media1_out mix 0 media1_in Switch' off"
		cset "name='media1_out mix 0 media2_in Switch' off"
		cset "name='media1_out mix 0 media3_in Switch' off"

		cset "name='pcm0_in Gain 0 Switch' on"
		cset "name='pcm0_in Gain 0 Volume' 0"

		cset "name='pcm1_in Gain 0 Switch' off"
		cset "name='pcm1_in Gain 0 Volume' 0%"

		# codec0_out settings (used if ssp2 is connected to aif1)
		cset "name='codec_out0 mix 0 codec_in0 Switch' off"
		cset "name='codec_out0 mix 0 codec_in1 Switch' off"
		cset "name='codec_out0 mix 0 media_loop1_in Switch' off"
		cset "name='codec_out0 mix 0 media_loop2_in Switch' off"
		cset "name='codec_out0 mix 0 pcm0_in Switch' on"
		cset "name='codec_out0 mix 0 pcm1_in Switch' off"
		cset "name='codec_out0 mix 0 sprot_loop_in Switch' off"
		cset "name='codec_out0 Gain 0 Switch' on"
		cset "name='codec_out0 Gain 0 Volume' 0"

		# modem_out settings (used if ssp0 is connected to aif2)
		cset "name='modem_out mix 0 codec_in0 Switch' off"
		cset "name='modem_out mix 0 codec_in1 Switch' off"
		cset "name='modem_out mix 0 media_loop1_in Switch' off"
		cset "name='modem_out mix 0 media_loop2_in Switch' off"
		cset "name='modem_out mix 0 pcm0_in Switch' on"
		cset "name='modem_out mix 0 pcm1_in Switch' off"
		cset "name='modem_out mix 0 sprot_loop_in Switch' off"
		cset "name='modem_out Gain 0 Switch' on"
		cset "name='modem_out Gain 0 Volume' 0"

		# input settings
		# pcm1_out settings

		# input used when SSP2 is connected
		cset "name='codec_in0 Gain 0 Switch' on"
		cset "name='codec_in0 Gain 0 Volume' 0"

		# input used when SSP0 is connected
		cset "name='modem_in Gain 0 Switch' on"
		cset "name='modem_in Gain 0 Volume' 0"

		cset "name='pcm1_out mix 0 codec_in0 Switch' on"
		cset "name='pcm1_out mix 0 modem_in Switch' on"
		cset "name='pcm1_out mix 0 codec_in1 Switch' off"
		cset "name='pcm1_out mix 0 media_loop1_in Switch' off"
		cset "name='pcm1_out mix 0 media_loop2_in Switch' off"
		cset "name='pcm1_out mix 0 pcm0_in Switch' off"
		cset "name='pcm1_out mix 0 pcm1_in Switch' off"
		cset "name='pcm1_out mix 0 sprot_loop_in Switch' off"

		cset "name='pcm1_out Gain 0 Switch' on"
		cset "name='pcm1_out Gain 0 Volume' 0"

		# disable codec_out1
		cset "name='codec_out1 mix 0 codec_in0 Switch' off"
		cset "name='codec_out1 mix 0 codec_in1 Switch' off"
		cset "name='codec_out1 mix 0 media_loop1_in Switch' off"
		cset "name='codec_out1 mix 0 media_loop2_in Switch' off"
		cset "name='codec_out1 mix 0 pcm0_in Switch' off"
		cset "name='codec_out1 mix 0 pcm1_in Switch' off"
		cset "name='codec_out1 mix 0 sprot_loop_in Switch' off"
		cset "name='codec_out1 Gain 0 Switch' off"
		cset "name='codec_out1 Gain 0 Volume' 0%"

		# disable codec_in1
		cset "name='codec_in1 Gain 0 Switch' off"
		cset "name='codec_in1 Gain 0 Volume' 0%"

		# disable all loops
		cset "name='media_loop1_out mix 0 codec_in0 Switch' off"
		cset "name='media_loop1_out mix 0 codec_in1 Switch' off"
		cset "name='media_loop1_out mix 0 media_loop1_in Switch' off"
		cset "name='media_loop1_out mix 0 media_loop2_in Switch' off"
		cset "name='media_loop1_out mix 0 pcm0_in Switch' off"
		cset "name='media_loop1_out mix 0 pcm1_in Switch' off"
		cset "name='media_loop1_out mix 0 sprot_loop_in Switch' off"

		cset "name='media_loop2_out mix 0 codec_in0 Switch' off"
		cset "name='media_loop2_out mix 0 codec_in1 Switch' off"
		cset "name='media_loop2_out mix 0 media_loop1_in Switch' off"
		cset "name='media_loop2_out mix 0 media_loop2_in Switch' off"
		cset "name='media_loop2_out mix 0 pcm0_in Switch' off"
		cset "name='media_loop2_out mix 0 pcm1_in Switch' off"
		cset "name='media_loop2_out mix 0 sprot_loop_in Switch' off"

		cset "name='sprot_loop_out mix 0 codec_in0 Switch' off"
		cset "name='sprot_loop_out mix 0 codec_in1 Switch' off"
		cset "name='sprot_loop_out mix 0 media_loop1_in Switch' off"
		cset "name='sprot_loop_out mix 0 media_loop2_in Switch' off"
		cset "name='sprot_loop_out mix 0 pcm0_in Switch' off"
		cset "name='sprot_loop_out mix 0 pcm1_in Switch' off"
		cset "name='sprot_loop_out mix 0 sprot_loop_in Switch' off"

		# DA7213 default output routing

		# Ensure stream only goes to DAI
		cset "name='Mixout Left Mixin Left Switch' off"
		cset "name='Mixout Right Mixin Right Switch' off"
		cset "name='Mixout Left Aux Left Switch' off"
		cset "name='Mixout Right Aux Right Switch' off"

	]

	DisableSequence [
	]

	# ALSA PCM
	Value {
		# ALSA PCM device for HiFi
		PlaybackPCM "hw:bytchtda7213"
		CapturePCM "hw:bytchtda7213"
	}
}

SectionDevice."MIC1" {
	Comment "MIC1 capture - headset"

	ConflictingDevice [
		"MIC2"
		"AUX"
	]

	EnableSequence [
		cdev "hw:bytchtda7213"

#		cset "name='Mic 1 Amp Source MUX' Differential"
#		cset "name='Mic 1 Amp Source MUX' MIC_N"

		cset "name='Mic 1 Amp Source MUX' MIC_P"
		cset "name='Mic 1 Volume' 6"
		cset "name='Mixin PGA Volume' 47%"
		cset "name='ADC Volume' 112"

		cset "name='Mixin Left Mic 1 Switch' on"
		cset "name='Mixin Right Mic 1 Switch' on"
		cset "name='Mixin PGA Switch' on"
		cset "name='Mic 1 Switch' on"
		cset "name='ADC Switch' on"
		cset "name='Headset Mic Switch' on"
	]

	DisableSequence [
		cdev "hw:bytchtda7213"

		cset "name='Headset Mic Switch' off"
		cset "name='ADC Switch' off"
		cset "name='Mic 1 Switch' off"
		cset "name='Mixin PGA Switch' off"
		cset "name='Mixin Left Mic 1 Switch' off"
		cset "name='Mixin Right Mic 1 Switch' off"
	]

	Value {
		CaptureChannels 2
	}
}

SectionDevice."MIC2" {
	Comment "MIC2 capture"

	ConflictingDevice [
		"MIC1"
		"AUX"
	]

	EnableSequence [
		cdev "hw:bytchtda7213"

#		cset "name='Mic 2 Amp Source MUX' Differential"
#		cset "name='Mic 2 Amp Source MUX' MIC_N"

		cset "name='Mic 2 Amp Source MUX' MIC_P"
		cset "name='Mic 2 Volume' 6"
		cset "name='Mixin PGA Volume' 47%"
		cset "name='ADC Volume' 112"

		cset "name='Mixin Left Mic 2 Switch' on"
		cset "name='Mixin Right Mic 2 Switch' on"
		cset "name='Mixin PGA Switch' on"
		cset "name='Mic 2 Switch' on"
		cset "name='ADC Switch' on"
		cset "name='Mic Switch' on"

	]

	DisableSequence [
		cdev "hw:bytchtda7213"

		cset "name='Mic Switch' off"
		cset "name='ADC Switch' off"
		cset "name='Mic 1 Switch' off"
		cset "name='Mixin PGA Switch' off"
		cset "name='Mixin Left Mic 1 Switch' off"
		cset "name='Mixin Right Mic 1 Switch' off"
	]

	Value {
		CaptureChannels 2
	}
}

SectionDevice."AUX" {
	Comment "AUX capture"

	ConflictingDevice [
		"MIC1"
		"MIC2"
	]

	EnableSequence [
		cdev "hw:bytchtda7213"

		cset "name='Aux Volume' 78%"
		cset "name='ADC Volume' 76%"
		cset "name='Mixin PGA Volume' 47%"

		cset "name='Mixin Left Aux Left Switch' on"
		cset "name='Mixin Right Aux Right Switch' on"
		cset "name='Mixin PGA Switch' on"
		cset "name='ADC Switch' on"
		cset "name='Aux Switch' on"
	]

	DisableSequence [
		cdev "hw:bytchtda7213"

		cset "name='Aux Switch' off"
		cset "name='ADC Switch' off"
		cset "name='Mixin PGA Switch' off"
		cset "name='Mixin Left Aux Left Switch' off"
		cset "name='Mixin Right Aux Right Switch' off"
	]

	Value {
		CaptureChannels 2
	}
}

SectionDevice."Headphones" {
	Comment "Headphones playback"

	EnableSequence [
		cdev "hw:bytchtda7213"

		cset "name='Headphone Volume' 50%"
		cset "name='Mixout Left DAC Left Switch' on"
		cset "name='Mixout Right DAC Right Switch' on"
		cset "name='Headphone Switch' on"
		cset "name='Headphone Jack Switch' on"

	]

	DisableSequence [
		cdev "hw:bytchtda7213"

		cset "name='Headphone Jack Switch' off"
		cset "name='Headphone Switch' off"
		cset "name='Mixout Left DAC Left Switch' off"
		cset "name='Mixout Right DAC Right Switch' off"
	]

	Value {
		PlaybackChannels "2"
	}
}

