# command-line sequence to switch playback/capture
# alsaucm -c sof-chtmax98090 set _verb HiFi set _enadev Headphone
# alsaucm -c sof-chtmax98090 set _verb HiFi set _enadev Speakers
# alsaucm -c sof-chtmax98090 set _verb HiFi set _enadev HeadsetMic
# alsaucm -c sof-chtmax98090 set _verb HiFi set _enadev InternalMic


SectionVerb {

	EnableSequence [
		cdev "hw:sofchtmax98090"

		cset "name='Left Speaker Mixer Left DAC Switch' on"
		cset "name='Right Speaker Mixer Right DAC Switch' on"
		cset "name='Digital EQ 3 Band Switch' off"
		cset "name='Digital EQ 5 Band Switch' off"
		cset "name='Digital EQ 7 Band Switch' off"
		cset "name='Biquad Switch' off"
		cset "name='Filter Mode' Music"
		cset "name='ADC Oversampling Rate' 0"

		cset "name='DMIC Mux' DMIC"
		cset "name='MIC2 Mux' IN34"
		cset "name='MIC2 Volume' 10"
		cset "name='MIC2 Boost Volume' 0"

		cset "name='ADCR Boost Volume' 4"
		cset "name='ADCL Boost Volume' 4"
		cset "name='ADCR Volume' 11"
		cset "name='ADCL Volume' 11"

		cset "name='Headphone Volume' 10"
		cset "name='Speaker Volume' 10"

		cset "name='Speaker Left Mixer Volume' 3"
		cset "name='Speaker Right Mixer Volume' 3"
		cset "name='Record Path DC Blocking' on"
		cset "name='Playback Path DC Blocking' on"

		cset "name='Headphone Left Switch' off"
		cset "name='Headphone Right Switch' off"
		cset "name='Headphone Switch' off"

		cset "name='Speaker Left Switch' off"
		cset "name='Speaker Right Switch' off"
		cset "name='Ext Spk Switch' off"

		cset "name='Headset Mic Switch' off"
		cset "name='Int Mic Switch' off"
	]

	DisableSequence [
	]

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

SectionDevice."Headphone" {
	Comment "Headphone"

	ConflictingDevice [
		"Speakers"
	]

	Value {
		JackControl "Headphone Jack"
		JackHWMute "Speakers"
	}

	EnableSequence [
		cdev "hw:sofchtmax98090"

		cset "name='Headphone Left Switch' on"
		cset "name='Headphone Right Switch' on"
		cset "name='Headphone Switch' on"
	]
	DisableSequence [
		cdev "hw:sofchtmax98090"

		cset "name='Headphone Left Switch' off"
		cset "name='Headphone Right Switch' off"
		cset "name='Headphone Switch' off"
	]

	Value {
		PlaybackChannels 2
	}
}

SectionDevice."Speakers" {
        Comment "Speakers"

	ConflictingDevice [
		"Headphone"
	]

	EnableSequence [
		cdev "hw:sofchtmax98090"

		cset "name='Speaker Left Switch' on"
		cset "name='Speaker Right Switch' on"
		cset "name='Ext Spk Switch' on"
	]
	DisableSequence [
		cdev "hw:sofchtmax98090"

		cset "name='Speaker Left Switch' off"
		cset "name='Speaker Right Switch' off"
		cset "name='Ext Spk Switch' off"
	]

	Value {
		PlaybackChannels 2
	}
}

SectionDevice."HeadsetMic" {
         Comment "Headset Mic"

	 Value {
		JackControl "Headset Mic Jack"
		#FIXME CaptureControl "MIC2"
	}

	ConflictingDevice [
		"InternalMic"
	]

	EnableSequence [
		cdev "hw:sofchtmax98090"

		cset "name='Headset Mic Switch' on"
		cset "name='DMIC Mux' ADC"
		cset "name='Record Path DC Blocking' on"
	]

	DisableSequence [
		cdev "hw:sofchtmax98090"

		cset "name='Headset Mic Switch' off"
		cset "name='DMIC Mux' DMIC"
		cset "name='Record Path DC Blocking' off"
	]

	Value {
		CaptureChannels 2
	}
}

SectionDevice."InternalMic" {
	Comment "Internal Mic"

	Value {
		#FIXME CaptureControl "MIC2"
	}

	ConflictingDevice [
		"HeadsetMic"
	]

	EnableSequence [
		cdev "hw:sofchtmax98090"

		cset "name='Int Mic Switch' on"
		cset "name='DMIC Mux' DMIC"
		cset "name='Record Path DC Blocking' off"
	]

	DisableSequence [
		cdev "hw:sofchtmax98090"

		cset "name='Int Mic Switch' off"
		cset "name='DMIC Mux' ADC"
		cset "name='Record Path DC Blocking' on"
	]

	Value {
		CaptureChannels 2
	}
}
