# Use case Configuration for TI SDP4430 HiFi Music
# By Liam Girdwood <lrg@slimlogic.co.uk>

SectionVerb {
  	EnableSequence [
                cdev "hw:SDP4430"
		cset "name='DL1 Mixer Multimedia' 1"
		cset "name='Sidetone Mixer Playback' 1"
                cset "name='DL1 PDM Switch' 1"
		cset "name='DL1 Media Playback Volume' 90,90"
                cset "name='SDT DL Volume' 120"
	]

	DisableSequence [
                cdev "hw:SDP4430"
		cset "name='DL1 Mixer Multimedia' 0"
		cset "name='Sidetone Mixer Playback' 0"
                cset "name='DL1 PDM Switch' 0"
		cset "name='DL1 Media Playback Volume' 0,0"
                cset "name='SDT DL Volume' 0"
	]

	# Optional TQ and ALSA PCMs
	Value {
		TQ "Music"
		PlaybackPCM "hw:0,6"
	}
}

SectionDevice."Headset".0 {
	Comment "SDP4430 3.5mm Headset"
	
	EnableSequence [
                cdev "hw:SDP4430"
                cset "name='HS Left Playback' 1"
                cset "name='HS Right Playback' 1"
                cset "name='Headset Playback Volume' 13"
	]

	DisableSequence [
                cdev "hw:SDP4430"
		cset "name='HS Right Playback' 0"
		cset "name='HS Left Playback' 0"
                cset "name='Headset Playback Volume' 0"
	]
}
