# Use case Configuration for Mobile device
# By Inha Song <ideal.song@samsung.com>

SectionVerb {
  EnableSequence [
# Playback
## Gain
# Path
    cset "name='DAC1L Mixer AIF2 Switch' 1"
    cset "name='DAC1R Mixer AIF2 Switch' 1"
    cset "name='DAC1 Switch' 1,1"
    cset "name='AIF2 Mode' 0"
# Capture
    cset "name='DAC2 Switch' 1,1"
  ]
  DisableSequence [
    cset "name='DAC1L Mixer AIF2 Switch' 0"
    cset "name='DAC1R Mixer AIF2 Switch' 0"
    cset "name='DAC1 Switch' 0,0"
    cset "name='DAC2 Switch' 0,0"
  ]

  Value {
    TQ "Voice"
    CaptureCTL "hw:0"
    PlaybackCTL "hw:0"
  }
}

SectionDevice."Earpiece" {
  Comment "wm1811 built-in Earpiece, Receiver"

  EnableSequence [
# Gain
    cset "name='Output Volume' 61,61"
# Path
    cset "name='Left Output Mixer DAC Switch' 1"
    cset "name='Right Output Mixer DAC Switch' 1"
    cset "name='Earpiece Mixer Left Output Switch' 1"
    cset "name='Earpiece Mixer Right Output Switch' 1"
    cset "name='Output Switch' 1,1"
    cset "name='Right Headphone Mux' 1"
    cset "name='Left Headphone Mux' 1"
    cset "name='Earpiece Switch' 1"
    cset "name='RCV Switch' 1"
  ]

  DisableSequence [
# Path
    cset "name='Left Output Mixer DAC Switch' 0"
    cset "name='Right Output Mixer DAC Switch' 0"
    cset "name='Earpiece Mixer Left Output Switch' 0"
    cset "name='Earpiece Mixer Right Output Switch' 0"
    cset "name='Output Switch' 0,0"
    cset "name='Right Headphone Mux' 0"
    cset "name='Left Headphone Mux' 0"
    cset "name='Earpiece Switch' 0"
  ]

  Value {
    PlaybackPCM "hw:0,3"
  }
}

SectionDevice."Headphones" {
  Comment "wm1811 3.5mm Headphones"

  EnableSequence [
# Gain
    cset "name='Headphone Volume' 47,47"
# Path
    cset "name='Right Headphone Mux' 0"
    cset "name='Left Headphone Mux' 0"
    cset "name='Right Output Mixer DAC Switch' 1"
    cset "name='Left Output Mixer DAC Switch' 1"
    cset "name='Headphone Switch' 1,1"
    cset "name='HP Switch' 1"
  ]

  DisableSequence [
    cset "name='Right Output Mixer DAC Switch' 0"
    cset "name='Left Output Mixer DAC Switch' 0"
    cset "name='Headphone Switch' 0,0"
    cset "name='HP Switch' 0"
  ]

  Value {
    PlaybackPCM "hw:0,3"
  }
}

SectionDevice."Speaker" {
  Comment "wm1811 built-in Speaker"

  EnableSequence [
# Gain
    cset "name='Speaker Mixer Volume' 3,3"
    cset "name='Speaker Volume' 62,62"
    cset "name='Speaker Boost Volume' 7,7"
# Path
    cset "name='SPKL DAC1 Switch' 1"
    cset "name='SPKR DAC1 Switch' 1"
    cset "name='SPKL Boost SPKL Switch' 1"
    cset "name='SPKR Boost SPKR Switch' 1"
    cset "name='Speaker Switch' 1,1"
    cset "name='SPK Switch' 1"
  ]

  DisableSequence [
# Path
    cset "name='SPKL DAC1 Switch' 0"
    cset "name='SPKR DAC1 Switch' 0"
    cset "name='SPKL Boost SPKL Switch' 0"
    cset "name='SPKR Boost SPKR Switch' 0"
    cset "name='Speaker Switch' 0,0"
    cset "name='SPK Switch' 0"
  ]

  Value {
    PlaybackPCM "hw:0,3"
  }
}

SectionDevice."Bluetooth" {
  Comment "CP audio via bluetooth sco codec slave"

  EnableSequence [
# Gain
    cset "name='AIF2DAC Volume' 96,96"
    cset "name='DAC2 Volume' 96,96"
    cset "name='AIF2ADC Volume' 96,96"
# Path
    cset "name='AIF2DAC Mux' 0"
    cset "name='AIF2DAC2L Mixer AIF2 Switch' 1"
    cset "name='AIF2DAC2R Mixer AIF2 Switch' 1"
    cset "name='AIF3ADC Mux' 1"
    cset "name='AIF2ADC Mux' 1"
  ]

  DisableSequence [
    cset "name='AIF2DAC2L Mixer AIF2 Switch' 0"
    cset "name='AIF2DAC2R Mixer AIF2 Switch' 0"
    cset "name='AIF3ADC Mux' 0"
    cset "name='AIF2ADC Mux' 0"
  ]

  Value {
    PlaybackPCM "hw:0,3"
    CapturePCM "hw:0,0"
  }
}

SectionDevice."MainMic" {
  Comment "wm1811 built-in main mic"

  EnableSequence [
# Gain
    cset "name='IN1L Volume' 4"
    cset "name='MIXINL IN1L Volume' 1"
    cset "name='DAC2 Left Sidetone Volume' 12"
# Path
    cset "name='Main Mic Switch' 1"
    cset "name='IN1L PGA IN1LN Switch' 1"
    cset "name='IN1L PGA IN1LP Switch' 1"
    cset "name='IN1L Switch' 1"
    cset "name='MIXINL IN1L Switch' 1"
    cset "name='ADCL Mux' 0"
    cset "name='AIF2DAC2L Mixer Left Sidetone Switch' 1"
    cset "name='AIF2ADCL Source' 0"
    cset "name='AIF2ADC Mux' 0"
  ]

  DisableSequence [
# Path
    cset "name='Main Mic Switch' 0"
    cset "name='IN1L PGA IN1LN Switch' 0"
    cset "name='IN1L PGA IN1LP Switch' 0"
    cset "name='IN1L Switch' 0"
    cset "name='MIXINL IN1L Switch' 0"
    cset "name='AIF2DAC2L Mixer Left Sidetone Switch' 0"
  ]

  Value {
    CapturePCM "hw:0,0"
  }
}

SectionDevice."SubMic" {
  Comment "wm1811 built-in sub mic"

  EnableSequence [
# Gain
    cset "name='IN1R Volume' 4"
    cset "name='MIXINR IN1R Volume' 1"
    cset "name='DAC2 Right Sidetone Volume' 12"
# Path
    cset "name='Sub Mic Switch' 1"
    cset "name='IN1R PGA IN1RN Switch' 1"
    cset "name='IN1R PGA IN1RP Switch' 1"
    cset "name='IN1R Switch' 1"
    cset "name='MIXINR IN1R Switch' 1"
    cset "name='ADCR Mux' 0"
    cset "name='AIF2ADCR Source' 1"
    cset "name='AIF2DAC2R Mixer Right Sidetone Switch' 1"
    cset "name='AIF2ADC Mux' 0"
  ]

  DisableSequence [
    cset "name='Sub Mic Switch' 0"
    cset "name='IN1R PGA IN1RN Switch' 0"
    cset "name='IN1R PGA IN1RP Switch' 0"
    cset "name='IN1R Switch' 0"
    cset "name='MIXINR IN1R Switch' 0"
    cset "name='AIF2ADCR Source' 0"
    cset "name='AIF2DAC2R Mixer Right Sidetone Switch' 0"
  ]

  Value {
    CapturePCM "hw:0,0"
  }
}

SectionDevice."HeadsetMic" {
  Comment "wm1811 external headset mic"

  EnableSequence [
# Gain
    cset "name='IN2L Volume' 14"
    cset "name='MIXINL IN2L Volume' 1"
    cset "name='DAC2 Left Sidetone Volume' 12"
# Path
    cset "name='Headset Mic Switch' 1"
    cset "name='IN2L PGA IN2LN Switch' 1"
    cset "name='IN2L PGA IN2LP Switch' 1"
    cset "name='IN2L Switch' 1"
    cset "name='MIXINL IN2L Switch' 1"
    cset "name='ADCL Mux' 0"
    cset "name='AIF2DAC2L Mixer Left Sidetone Switch' 1"
    cset "name='AIF2ADCR Source' 0"
    cset "name='AIF2ADCL Source' 0"
    cset "name='AIF2ADC Mux' 0"
  ]

  DisableSequence [
    cset "name='Headset Mic Switch' 0"
    cset "name='IN2L PGA IN2LN Switch' 0"
    cset "name='IN2L PGA IN2LP Switch' 0"
    cset "name='IN2L Switch' 0"
    cset "name='MIXINL IN2L Switch' 0"
    cset "name='AIF2DAC2L Mixer Left Sidetone Switch' 0"
  ]

  Value {
    CapturePCM "hw:0,0"
  }
}

SectionDevice."Recording" {
  Comment "recording Voice call"

  EnableSequence [
# Gain
    cset "name='AIF2DAC Volume' 96,96"
    csset "name='AIF1ADC1 Volume' 96,96"
# Path
    cset "name='AIF2DAC Mux' 0"
    cset "name='AIF1ADC1L Mixer AIF2 Switch' 1"
    cset "name='AIF1ADC1R Mixer AIF2 Switch' 1"
  ]

  DisableSequence [
    cset "name='AIF1ADC1L Mixer AIF2 Switch' 0"
    cset "name='AIF1ADC1R Mixer AIF2 Switch' 0"
  ]

  Value {
  }
}
